Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 38409 Details for
Bug 136313
Open Type is case-sensitive
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Patch to fix this issue
v00.txt (text/plain), 7.19 KB, created by
Frederic Fusier
on 2006-04-12 10:49:49 EDT
(
hide
)
Description:
Patch to fix this issue
Filename:
MIME Type:
Creator:
Frederic Fusier
Created:
2006-04-12 10:49:49 EDT
Size:
7.19 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: search/org/eclipse/jdt/internal/core/search/BasicSearchEngine.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/BasicSearchEngine.java,v >retrieving revision 1.32 >diff -u -r1.32 BasicSearchEngine.java >--- search/org/eclipse/jdt/internal/core/search/BasicSearchEngine.java 29 Mar 2006 03:14:01 -0000 1.32 >+++ search/org/eclipse/jdt/internal/core/search/BasicSearchEngine.java 12 Apr 2006 14:40:31 -0000 >@@ -237,6 +237,9 @@ > * @param matchRule > */ > public static String getMatchRuleString(final int matchRule) { >+ if (matchRule == 0) { >+ return "R_EXACT_MATCH"; //$NON-NLS-1$ >+ } > StringBuffer buffer = new StringBuffer(); > for (int i=1; i<=8; i++) { > int bit = matchRule & (1<<(i-1)); >Index: search/org/eclipse/jdt/core/search/SearchPattern.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchPattern.java,v >retrieving revision 1.57 >diff -u -r1.57 SearchPattern.java >--- search/org/eclipse/jdt/core/search/SearchPattern.java 11 Apr 2006 15:38:24 -0000 1.57 >+++ search/org/eclipse/jdt/core/search/SearchPattern.java 12 Apr 2006 14:40:30 -0000 >@@ -1853,21 +1853,20 @@ > } > > // Verify Pattern match rule >+ int starIndex = stringPattern.indexOf('*'); >+ int questionIndex = stringPattern.indexOf('?'); >+ if (starIndex < 0 && questionIndex < 0) { >+ // reset pattern match bit if any >+ matchRule &= ~R_PATTERN_MATCH; >+ } else { >+ matchRule |= R_PATTERN_MATCH; >+ // Remove Camel Case match when there's '*' or '?' characters >+ matchRule &= ~R_CAMELCASE_MATCH; >+ } > if ((matchRule & R_PATTERN_MATCH) != 0) { > if ((matchRule & R_PREFIX_MATCH) != 0) { > matchRule &= ~R_PREFIX_MATCH; > } >- int starIndex = stringPattern.indexOf('*'); >- int questionIndex = stringPattern.indexOf('?'); >- if (starIndex < 0 && questionIndex < 0) { >- // No need to have pattern match >- matchRule &= ~R_PATTERN_MATCH; >- } else { >- // Remove Camel Case match when there's '*' or '?' characters >- if ((matchRule & R_CAMELCASE_MATCH) != 0) { >- matchRule &= ~R_CAMELCASE_MATCH; >- } >- } > } > > // Verify Camel Case match rule >@@ -1875,10 +1874,15 @@ > // Verify sting pattern validity > int length = stringPattern.length(); > boolean validCamelCase = true; >+ boolean uppercase = false; > for (int i=0; i<length && validCamelCase; i++) { > char ch = stringPattern.charAt(i++); > validCamelCase = ScannerHelper.isJavaIdentifierStart(ch); >+ // at least one uppercase character is need in CamelCase pattern >+ // (see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=136313) >+ if (!uppercase) uppercase = ScannerHelper.isUpperCase(ch); > } >+ validCamelCase = validCamelCase && uppercase; > // Verify bits compatibility > if (validCamelCase) { > if ((matchRule & R_PREFIX_MATCH) != 0) { >#P org.eclipse.jdt.core.tests.model >Index: src/org/eclipse/jdt/core/tests/model/SearchTests.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/SearchTests.java,v >retrieving revision 1.33 >diff -u -r1.33 SearchTests.java >--- src/org/eclipse/jdt/core/tests/model/SearchTests.java 29 Mar 2006 04:03:07 -0000 1.33 >+++ src/org/eclipse/jdt/core/tests/model/SearchTests.java 12 Apr 2006 14:40:32 -0000 >@@ -18,22 +18,15 @@ > import org.eclipse.core.resources.IResource; > import org.eclipse.core.resources.IWorkspaceRunnable; > import org.eclipse.core.runtime.*; >-import org.eclipse.core.runtime.CoreException; >-import org.eclipse.core.runtime.IProgressMonitor; >-import org.eclipse.core.runtime.Path; > import org.eclipse.jdt.core.*; >-import org.eclipse.jdt.core.IJavaProject; >-import org.eclipse.jdt.core.JavaCore; >-import org.eclipse.jdt.core.JavaModelException; > import org.eclipse.jdt.core.compiler.CharOperation; > import org.eclipse.jdt.core.search.*; >-import org.eclipse.jdt.core.search.IJavaSearchConstants; >-import org.eclipse.jdt.core.search.SearchEngine; > import org.eclipse.jdt.core.tests.model.Semaphore.TimeOutException; > import org.eclipse.jdt.core.tests.util.Util; > import org.eclipse.jdt.internal.core.JavaElement; > import org.eclipse.jdt.internal.core.JavaModelManager; > import org.eclipse.jdt.internal.core.LocalVariable; >+import org.eclipse.jdt.internal.core.search.BasicSearchEngine; > import org.eclipse.jdt.internal.core.search.indexing.IndexManager; > import org.eclipse.jdt.internal.core.search.processing.IJob; > >@@ -182,6 +175,23 @@ > expected, > actual); > } >+protected void assertValidMatchRule(String pattern, int rule) { >+ assertValidMatchRule(pattern, rule, rule); >+} >+protected void assertValidMatchRule(String pattern, int rule, int expected) { >+ int validated = SearchPattern.validateMatchRule(pattern, rule); >+ String validatedRule = BasicSearchEngine.getMatchRuleString(validated); >+ String expectedRule = BasicSearchEngine.getMatchRuleString(expected); >+ if (!validatedRule.equals(expectedRule)) { >+ System.out.println("Test "+getName()); >+ System.out.print(" assertValidMatchRule(\""); >+ System.out.print(pattern); >+ System.out.print("\", "); >+ System.out.print(validatedRule); >+ System.out.println(");"); >+ assertEquals(pattern+"' does not match expected match rule!", expectedRule, validatedRule); >+ } >+} > public void setUpSuite() throws Exception { > super.setUpSuite(); > createJavaProject("P"); >@@ -978,4 +988,30 @@ > "TypeReferencePattern: qualification<X.*>, type<Y>, exact match, case sensitive", > searchPattern); > } >+/** >+ * Test CamelCase validation >+ */ >+public void testSearchPatternValidMatchRule01() { >+ assertValidMatchRule("foo", SearchPattern.R_EXACT_MATCH, SearchPattern.R_EXACT_MATCH); >+ assertValidMatchRule("foo", SearchPattern.R_PREFIX_MATCH, SearchPattern.R_PREFIX_MATCH); >+ assertValidMatchRule("foo", SearchPattern.R_PATTERN_MATCH, SearchPattern.R_EXACT_MATCH); >+ assertValidMatchRule("foo", SearchPattern.R_PATTERN_MATCH|SearchPattern.R_PREFIX_MATCH, SearchPattern.R_PREFIX_MATCH); >+ assertValidMatchRule("foo", SearchPattern.R_CAMELCASE_MATCH, SearchPattern.R_PREFIX_MATCH|SearchPattern.R_CASE_SENSITIVE); >+} >+public void testSearchPatternValidMatchRule02() { >+ assertValidMatchRule("CP*P", SearchPattern.R_EXACT_MATCH, SearchPattern.R_PATTERN_MATCH); >+ assertValidMatchRule("CP*P", SearchPattern.R_PREFIX_MATCH, SearchPattern.R_PATTERN_MATCH); >+ assertValidMatchRule("CP*P", SearchPattern.R_PATTERN_MATCH, SearchPattern.R_PATTERN_MATCH); >+ assertValidMatchRule("CP*P", SearchPattern.R_PATTERN_MATCH|SearchPattern.R_PREFIX_MATCH, SearchPattern.R_PATTERN_MATCH); >+ assertValidMatchRule("CP*P", SearchPattern.R_CAMELCASE_MATCH, SearchPattern.R_PATTERN_MATCH); >+} >+public void testSearchPatternValidMatchRule03() { >+ assertValidMatchRule("NPE", SearchPattern.R_CAMELCASE_MATCH); >+} >+public void testSearchPatternValidMatchRule04() { >+ assertValidMatchRule("nPE", SearchPattern.R_CAMELCASE_MATCH); >+} >+public void testSearchPatternValidMatchRule05() { >+ assertValidMatchRule("NuPoEx", SearchPattern.R_CAMELCASE_MATCH); >+} > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 136313
: 38409