String getSystemEnv(String key, Set<String> visited) { String value = getenv(key); if (value == null || !iswindows) { return value; } if (visited == null) { visited = new HashSet<>(); } else if (visited.contains(key)) return key; visited.add(key); StringBuffer sb = new StringBuffer(); Matcher matcher = WINDOWS_MACROS.matcher(value); int append = 0; while (matcher.find(append)) { String name = matcher.group(1); String replacement = getSystemEnv(name, visited); while (append < matcher.start()) { sb.append(value.charAt(append)); append++; } sb.append(replacement); append = matcher.end(); } while (append < value.length()) { sb.append(value.charAt(append)); append++; } return sb.toString(); }
String getSystemEnv(String key, Set<String> visited) { String value = getenv(key); if (value == null || !iswindows) { return value; } if (visited == null) { visited = new HashSet<>(); } else if (visited.contains(key)) return key; visited.add(key); StringBuffer sb = new StringBuffer(); Matcher matcher = WINDOWS_MACROS.matcher(value); int append = 0; while (matcher.find(append)) { String name = matcher.group(1); String replacement = getSystemEnv(name, visited); while (append < matcher.start()) { sb.append(value.charAt(append)); append++; } sb.append(replacement); append = matcher.end(); } while (append < value.length()) { sb.append(value.charAt(append)); append++; } return sb.toString(); }
String getSystemEnv(String key, Set<String> visited) { String value = getenv(key); if (value == null || !iswindows) { return value; } if (visited == null) { visited = new HashSet<>(); } else if (visited.contains(key)) return key; visited.add(key); StringBuffer sb = new StringBuffer(); Matcher matcher = WINDOWS_MACROS.matcher(value); int append = 0; while (matcher.find(append)) { String name = matcher.group(1); String replacement = getSystemEnv(name, visited); while (append < matcher.start()) { sb.append(value.charAt(append)); append++; } sb.append(replacement); append = matcher.end(); } while (append < value.length()) { sb.append(value.charAt(append)); append++; } return sb.toString(); }
String getSystemEnv(String key, Set<String> visited) { String value = getenv(key); if (value == null || !iswindows) { return value; } if (visited == null) { visited = new HashSet<>(); } else if (visited.contains(key)) return key; visited.add(key); StringBuffer sb = new StringBuffer(); Matcher matcher = WINDOWS_MACROS.matcher(value); int append = 0; while (matcher.find(append)) { String name = matcher.group(1); String replacement = getSystemEnv(name, visited); while (append < matcher.start()) { sb.append(value.charAt(append)); append++; } sb.append(replacement); append = matcher.end(); } while (append < value.length()) { sb.append(value.charAt(append)); append++; } return sb.toString(); }
String getSystemEnv(String key, Set<String> visited) { String value = getenv(key); if (value == null || !iswindows) { return value; } if (visited == null) { visited = new HashSet<>(); } else if (visited.contains(key)) return key; visited.add(key); StringBuffer sb = new StringBuffer(); Matcher matcher = WINDOWS_MACROS.matcher(value); int append = 0; while (matcher.find(append)) { String name = matcher.group(1); String replacement = getSystemEnv(name, visited); while (append < matcher.start()) { sb.append(value.charAt(append)); append++; } sb.append(replacement); append = matcher.end(); } while (append < value.length()) { sb.append(value.charAt(append)); append++; } return sb.toString(); }
String getSystemEnv(String key, Set<String> visited) { String value = getenv(key); if (value == null || !iswindows) { return value; } if (visited == null) { visited = new HashSet<>(); } else if (visited.contains(key)) return key; visited.add(key); StringBuffer sb = new StringBuffer(); Matcher matcher = WINDOWS_MACROS.matcher(value); int append = 0; while (matcher.find(append)) { String name = matcher.group(1); String replacement = getSystemEnv(name, visited); while (append < matcher.start()) { sb.append(value.charAt(append)); append++; } sb.append(replacement); append = matcher.end(); } while (append < value.length()) { sb.append(value.charAt(append)); append++; } return sb.toString(); }