summaryrefslogtreecommitdiffstats
path: root/Essentials/src/com/earth2me/essentials/Util.java
diff options
context:
space:
mode:
Diffstat (limited to 'Essentials/src/com/earth2me/essentials/Util.java')
-rw-r--r--Essentials/src/com/earth2me/essentials/Util.java24
1 files changed, 19 insertions, 5 deletions
diff --git a/Essentials/src/com/earth2me/essentials/Util.java b/Essentials/src/com/earth2me/essentials/Util.java
index 34e5c6420..12f5c9da6 100644
--- a/Essentials/src/com/earth2me/essentials/Util.java
+++ b/Essentials/src/com/earth2me/essentials/Util.java
@@ -23,16 +23,20 @@ public class Util
private final static Logger logger = Logger.getLogger("Minecraft");
private final static Pattern INVALIDFILECHARS = Pattern.compile("[^a-z0-9]");
private final static Pattern INVALIDCHARS = Pattern.compile("[^\t\n\r\u0020-\u007E\u0085\u00A0-\uD7FF\uE000-\uFFFC]");
- private final static Pattern BADFILENAMES = Pattern.compile("^(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(\\.(.+))?$", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.COMMENTS);
+ //Used to clean file names before saving to disk
public static String sanitizeFileName(final String name)
{
- String newName = INVALIDFILECHARS.matcher(name.toLowerCase(Locale.ENGLISH)).replaceAll("_");
- if(BADFILENAMES.matcher(newName).matches())
- newName = "_" + newName;
- return newName;
+ return safeString(name);
}
+ //Used to clean strings/names before saving as filenames/permissions
+ public static String safeString(final String string)
+ {
+ return INVALIDFILECHARS.matcher(string.toLowerCase(Locale.ENGLISH)).replaceAll("_");
+ }
+
+ //Less restrictive string sanitizing, when not used as perm or filename
public static String sanitizeString(final String string)
{
return INVALIDCHARS.matcher(string).replaceAll("");
@@ -601,6 +605,7 @@ public class Util
}
private static transient final Pattern URL_PATTERN = Pattern.compile("((?:(?:https?)://)?[\\w-_\\.]{2,})\\.([a-z]{2,3}(?:/\\S+)?)");
private static transient final Pattern VANILLA_PATTERN = Pattern.compile("\u00A7+[0-9A-FK-ORa-fk-or]");
+ private static transient final Pattern LOGCOLOR_PATTERN = Pattern.compile("\\x1B\\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]");
private static transient final Pattern REPLACE_PATTERN = Pattern.compile("&([0-9a-fk-or])");
private static transient final Pattern VANILLA_COLOR_PATTERN = Pattern.compile("\u00A7+[0-9A-Fa-f]");
private static transient final Pattern VANILLA_MAGIC_PATTERN = Pattern.compile("\u00A7+[Kk]");
@@ -618,6 +623,15 @@ public class Util
return VANILLA_PATTERN.matcher(input).replaceAll("");
}
+ public static String stripLogColorFormat(final String input)
+ {
+ if (input == null)
+ {
+ return null;
+ }
+ return LOGCOLOR_PATTERN.matcher(input).replaceAll("");
+ }
+
public static String replaceFormat(final String input)
{
if (input == null)