James Moger
2012-11-23 4ad1ebce249519369d24b4ea7da1da62a685627a
src/com/gitblit/utils/StringUtils.java
@@ -263,13 +263,25 @@
    */
   public static String getMD5(String string) {
      try {
         MessageDigest md = MessageDigest.getInstance("MD5");
         md.reset();
         md.update(string.getBytes("iso-8859-1"));
         byte[] digest = md.digest();
         return toHex(digest);
         return getMD5(string.getBytes("iso-8859-1"));
      } catch (UnsupportedEncodingException u) {
         throw new RuntimeException(u);
      }
   }
   /**
    * Calculates the MD5 of the string.
    *
    * @param string
    * @return md5 of the string
    */
   public static String getMD5(byte [] bytes) {
      try {
         MessageDigest md = MessageDigest.getInstance("MD5");
         md.reset();
         md.update(bytes);
         byte[] digest = md.digest();
         return toHex(digest);
      } catch (NoSuchAlgorithmException t) {
         throw new RuntimeException(t);
      }
@@ -315,11 +327,16 @@
    * @return the relative path
    */
   public static String getRelativePath(String basePath, String fullPath) {
      String relativePath = fullPath.substring(basePath.length()).replace('\\', '/');
      if (relativePath.charAt(0) == '/') {
         relativePath = relativePath.substring(1);
      String bp = basePath.replace('\\', '/').toLowerCase();
      String fp = fullPath.replace('\\', '/').toLowerCase();
      if (fp.startsWith(bp)) {
         String relativePath = fullPath.substring(basePath.length()).replace('\\', '/');
         if (relativePath.charAt(0) == '/') {
            relativePath = relativePath.substring(1);
         }
         return relativePath;
      }
      return relativePath;
      return fullPath;
   }
   /**
@@ -422,6 +439,8 @@
   public static int compareRepositoryNames(String r1, String r2) {
      // sort root repositories first, alphabetically
      // then sort grouped repositories, alphabetically
      r1 = r1.toLowerCase();
      r2 = r2.toLowerCase();
      int s1 = r1.indexOf('/');
      int s2 = r2.indexOf('/');
      if (s1 == -1 && s2 == -1) {
@@ -687,4 +706,17 @@
      }
      return path;
   }
   /**
    * Variation of String.matches() which disregards case issues.
    *
    * @param regex
    * @param input
    * @return true if the pattern matches
    */
   public static boolean matchesIgnoreCase(String input, String regex) {
      Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
      Matcher m = p.matcher(input);
      return m.matches();
   }
}