James Moger
2012-09-07 13a3f5bc3e2d25fc76850f86070dc34efe60d77a
src/com/gitblit/utils/StringUtils.java
@@ -33,6 +33,8 @@
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
/**
@@ -76,7 +78,7 @@
    * @return plain text escaped for html
    */
   public static String escapeForHtml(String inStr, boolean changeSpace) {
      StringBuffer retStr = new StringBuffer();
      StringBuilder retStr = new StringBuilder();
      int i = 0;
      while (i < inStr.length()) {
         if (inStr.charAt(i) == '&') {
@@ -117,7 +119,7 @@
    * @return properly escaped url
    */
   public static String encodeURL(String inStr) {
      StringBuffer retStr = new StringBuffer();
      StringBuilder retStr = new StringBuilder();
      int i = 0;
      while (i < inStr.length()) {
         if (inStr.charAt(i) == '/') {
@@ -592,11 +594,34 @@
            // ignore unsupported charsets
         }
      }
      value = new String(content, Charset.forName("UTF-8"));
      if (value.startsWith("\uFEFF")) {
         // strip UTF-8 BOM
            return value.substring(1);
        }
      return value;
   }
   /**
    * Attempt to extract a repository name from a given url using regular
    * expressions.  If no match is made, then return whatever trails after
    * the final / character.
    *
    * @param regexUrls
    * @return a repository path
    */
   public static String extractRepositoryPath(String url, String... urlpatterns) {
      for (String urlPattern : urlpatterns) {
         Pattern p = Pattern.compile(urlPattern);
         Matcher m = p.matcher(url);
         while (m.find()) {
            String repositoryPath = m.group(1);
            return repositoryPath;
         }
      }
      // last resort
      if (url.lastIndexOf('/') > -1) {
         return url.substring(url.lastIndexOf('/') + 1);
      }
      return url;
   }
}