James Moger
2012-04-24 0cb7a9c08cfaebeace058dc806099051f163f172
src/com/gitblit/utils/StringUtils.java
@@ -327,20 +327,24 @@
    * @return list of strings
    */
   public static List<String> getStringsFromValue(String value, String separator) {
      List<String> strings = new ArrayList<String>();
      try {
         String[] chunks = value.split(separator);
         for (String chunk : chunks) {
            chunk = chunk.trim();
            if (chunk.length() > 0) {
               strings.add(chunk);
            }
         }
      } catch (PatternSyntaxException e) {
         throw new RuntimeException(e);
      }
      return strings;
   }
        List<String> strings = new ArrayList<String>();
        try {
            String[] chunks = value.split(separator + "(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
            for (String chunk : chunks) {
                chunk = chunk.trim();
                if (chunk.length() > 0) {
                    if (chunk.charAt(0) == '"' && chunk.charAt(chunk.length() - 1) == '"') {
                        // strip double quotes
                        chunk = chunk.substring(1, chunk.length() - 1).trim();
                    }
                    strings.add(chunk);
                }
            }
        } catch (PatternSyntaxException e) {
            throw new RuntimeException(e);
        }
        return strings;
    }
   /**
    * Validates that a name is composed of letters, digits, or limited other
@@ -518,4 +522,32 @@
      }
      return "";
   }
   /**
    * Replace all occurences of a substring within a string with
    * another string.
    *
    * From Spring StringUtils.
    *
    * @param inString String to examine
    * @param oldPattern String to replace
    * @param newPattern String to insert
    * @return a String with the replacements
    */
   public static String replace(String inString, String oldPattern, String newPattern) {
      StringBuilder sb = new StringBuilder();
      int pos = 0; // our position in the old string
      int index = inString.indexOf(oldPattern);
      // the index of an occurrence we've found, or -1
      int patLen = oldPattern.length();
      while (index >= 0) {
         sb.append(inString.substring(pos, index));
         sb.append(newPattern);
         pos = index + patLen;
         index = inString.indexOf(oldPattern, pos);
      }
      sb.append(inString.substring(pos));
      // remember to append any characters to the right of a match
      return sb.toString();
   }
}