mrbytes
2012-08-14 975f7c55eea0c20a686d860b67b9a0d5fc3130bb
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;
/**
@@ -575,13 +577,15 @@
      if (!ArrayUtils.isEmpty(charsets)) {
         sets.addAll(Arrays.asList(charsets));
      }
      String value = null;
      sets.addAll(Arrays.asList("UTF-8", "ISO-8859-1", Charset.defaultCharset().name()));
      for (String charset : sets) {
         try {
            Charset cs = Charset.forName(charset);
            CharsetDecoder decoder = cs.newDecoder();
            CharBuffer buffer = decoder.decode(ByteBuffer.wrap(content));
            return buffer.toString();
            value = buffer.toString();
            break;
         } catch (CharacterCodingException e) {
            // ignore and advance to the next charset
         } catch (IllegalCharsetNameException e) {
@@ -590,6 +594,35 @@
            // ignore unsupported charsets
         }
      }
      return new String(content, Charset.forName("UTF-8"));
      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;
   }
}