James Moger
2014-03-07 4affd0a3a4fe086b31a87d56616f74093d2ac715
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", "\\");
   }
}