package mekhq;
public class MhqFileUtil {
public static String escapeReservedCharacters (String text) {
final char[] WIN_RESERVED = new char[]{'<', '>', ':', '"', '/', '\\', '|', '?', '*'};
final char[] LIN_RESERVED = new char[]{'<', '>', ':', '/', '|', '&'};
final char[] MAC_RESERVED = new char[]{':', '/', '.'};
char[] restricted;
String osName = System.getProperty("os.name");
if (osName.toLowerCase().contains("win")) {
restricted = WIN_RESERVED;
} else if (osName.toLowerCase().contains("linux")) {
restricted = LIN_RESERVED;
} else {
restricted = MAC_RESERVED;
}
char[] textArray = text.toCharArray();
for (int i = 0; i < textArray.length; i++) {
char c = textArray[i];
textArray[i] = escapeChar(c, restricted);
}
return new String(textArray);
}
private static char escapeChar(char esc, char[] restricted) {
for (char c : restricted) {
if (c == esc) {
return '_';
}
}
return esc;
}
}