From 06131ad0609599d9420d3cfb01ba9385617b7230 Mon Sep 17 00:00:00 2001 From: kohsuke Date: Fri, 30 May 2008 23:25:15 +0000 Subject: [PATCH] relaxing the rule further. git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@9725 71c3de6d-444a-0410-be80-ed276b4c234a --- core/src/main/java/hudson/Functions.java | 21 +++++++++++++++++++++ core/src/main/java/hudson/model/Hudson.java | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index 948680a04e..a03585a34c 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -837,5 +837,26 @@ public class Functions { return Stapler.getCurrentRequest().getContextPath()+'/'+itUrl+urlName; } + /** + * Escapes the character unsafe for e-mail address. + * See http://en.wikipedia.org/wiki/E-mail_address for the details, + * but here the vocabulary is even more restricted. + */ + public static String toEmailSafeString(String projectName) { + // TODO: escape non-ASCII characters + StringBuilder buf = new StringBuilder(projectName.length()); + for( int i=0; i=0) + buf.append(ch); + else + buf.append('_'); // escape + } + return projectName; + } + private static final Pattern SCHEME = Pattern.compile("[a-z]+://.+"); } diff --git a/core/src/main/java/hudson/model/Hudson.java b/core/src/main/java/hudson/model/Hudson.java index e9c4fd8062..b31d2f8837 100644 --- a/core/src/main/java/hudson/model/Hudson.java +++ b/core/src/main/java/hudson/model/Hudson.java @@ -1057,7 +1057,7 @@ public final class Hudson extends View implements ItemGroup, Node, */ public TopLevelItem getJobCaseInsensitive(String name) { for (Entry e : items.entrySet()) { - if(e.getKey().equalsIgnoreCase(name)) + if(Functions.toEmailSafeString(e.getKey()).equalsIgnoreCase(Functions.toEmailSafeString(name))) return e.getValue(); } return null; -- GitLab