From 23c416f30f4a1e69e76b70d71f6a9a7da4a020f1 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 10 Apr 2014 18:58:09 -0400 Subject: [PATCH] Hook-up comprensive command cleanup (destroy) --- src/main/java/com/gitblit/utils/StringUtils.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 49 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gitblit/utils/StringUtils.java b/src/main/java/com/gitblit/utils/StringUtils.java index 5e62778..5813c3a 100644 --- a/src/main/java/com/gitblit/utils/StringUtils.java +++ b/src/main/java/com/gitblit/utils/StringUtils.java @@ -127,12 +127,26 @@ retStr.append("%2F"); } else if (inStr.charAt(i) == ' ') { retStr.append("%20"); + } else if (inStr.charAt(i) == '&') { + retStr.append("%26"); } else { retStr.append(inStr.charAt(i)); } i++; } return retStr.toString(); + } + + /** + * Flatten the list of strings into a single string with the specified + * separator. + * + * @param values + * @param separator + * @return flattened list + */ + public static String flattenStrings(String[] values, String separator) { + return flattenStrings(Arrays.asList(values), separator); } /** @@ -556,6 +570,20 @@ } /** + * Returns the file extension of a path. + * + * @param path + * @return a blank string or a file extension + */ + public static String stripFileExtension(String path) { + int lastDot = path.lastIndexOf('.'); + if (lastDot > -1) { + return path.substring(0, lastDot); + } + return path; + } + + /** * Replace all occurences of a substring within a string with * another string. * @@ -733,4 +761,25 @@ } return input.replace('\n',' ').replace('\r', ' ').trim(); } + + + /** + * Encode the username for user in an url. + * + * @param name + * @return the encoded name + */ + public static String encodeUsername(String name) { + return name.replace("@", "%40").replace(" ", "%20").replace("\\", "%5C"); + } + + /** + * Decode a username from an encoded url. + * + * @param name + * @return the decoded name + */ + public static String decodeUsername(String name) { + return name.replace("%40", "@").replace("%20", " ").replace("%5C", "\\"); + } } \ No newline at end of file -- Gitblit v1.9.1