From b718540114103aaad2fd2554745fdb61d1e6cd17 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 28 Nov 2012 17:08:19 -0500 Subject: [PATCH] Added groovy and scala extensions to default pretty print list --- src/com/gitblit/utils/StringUtils.java | 50 +++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 41 insertions(+), 9 deletions(-) diff --git a/src/com/gitblit/utils/StringUtils.java b/src/com/gitblit/utils/StringUtils.java index 0711338..8684004 100644 --- a/src/com/gitblit/utils/StringUtils.java +++ b/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(); + } } \ No newline at end of file -- Gitblit v1.9.1