From de6f6625cb96775b640240ed2e57499743670fe2 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gmail.com>
Date: Sat, 03 Jan 2015 09:34:45 -0500
Subject: [PATCH] Merge pull request #240 from steveno/develop
---
src/main/java/com/gitblit/utils/StringUtils.java | 22 +++++++++++++++++++---
1 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/gitblit/utils/StringUtils.java b/src/main/java/com/gitblit/utils/StringUtils.java
index ed10eb6..087de54 100644
--- a/src/main/java/com/gitblit/utils/StringUtils.java
+++ b/src/main/java/com/gitblit/utils/StringUtils.java
@@ -127,12 +127,28 @@
retStr.append("%2F");
} else if (inStr.charAt(i) == ' ') {
retStr.append("%20");
+ } else if (inStr.charAt(i) == '&') {
+ retStr.append("%26");
+ } else if (inStr.charAt(i) == '+') {
+ retStr.append("%2B");
} 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);
}
/**
@@ -293,7 +309,7 @@
* @param bytes
* @return byte array as hex string
*/
- private static String toHex(byte[] bytes) {
+ public static String toHex(byte[] bytes) {
StringBuilder sb = new StringBuilder(bytes.length * 2);
for (int i = 0; i < bytes.length; i++) {
if ((bytes[i] & 0xff) < 0x10) {
@@ -384,7 +400,7 @@
* @return the first invalid character found or null if string is acceptable
*/
public static Character findInvalidCharacter(String name) {
- char[] validChars = { '/', '.', '_', '-', '~' };
+ char[] validChars = { '/', '.', '_', '-', '~', '+' };
for (char c : name.toCharArray()) {
if (!Character.isLetterOrDigit(c)) {
boolean ok = false;
@@ -628,7 +644,7 @@
// ignore unsupported charsets
}
}
- if (value.startsWith("\uFEFF")) {
+ if (value != null && value.startsWith("\uFEFF")) {
// strip UTF-8 BOM
return value.substring(1);
}
--
Gitblit v1.9.1