- Update ecj [] patch to upstream version from 3.3.
This commit is contained in:
parent
ac6938fdb7
commit
d519d4f94e
|
@ -4,186 +4,105 @@ RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/c
|
||||||
retrieving revision 1.254.4.1
|
retrieving revision 1.254.4.1
|
||||||
diff -u -r1.254.4.1 Main.java
|
diff -u -r1.254.4.1 Main.java
|
||||||
--- batch/org/eclipse/jdt/internal/compiler/batch/Main.java 2 Jul 2006 10:11:58 -0000 1.254.4.1
|
--- batch/org/eclipse/jdt/internal/compiler/batch/Main.java 2 Jul 2006 10:11:58 -0000 1.254.4.1
|
||||||
+++ batch/org/eclipse/jdt/internal/compiler/batch/Main.java 19 Jan 2007 19:22:57 -0000
|
+++ batch/org/eclipse/jdt/internal/compiler/batch/Main.java 1 Feb 2007 21:04:52 -0000
|
||||||
@@ -28,9 +28,11 @@
|
@@ -2989,6 +2989,10 @@
|
||||||
import java.text.MessageFormat;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
+import java.util.Collections;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
+import java.util.LinkedList;
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.MissingResourceException;
|
|
||||||
@@ -40,8 +42,8 @@
|
|
||||||
|
|
||||||
import org.eclipse.jdt.core.compiler.CategorizedProblem;
|
|
||||||
import org.eclipse.jdt.core.compiler.CharOperation;
|
|
||||||
-import org.eclipse.jdt.core.compiler.InvalidInputException;
|
|
||||||
import org.eclipse.jdt.core.compiler.IProblem;
|
|
||||||
+import org.eclipse.jdt.core.compiler.InvalidInputException;
|
|
||||||
import org.eclipse.jdt.internal.compiler.ClassFile;
|
|
||||||
import org.eclipse.jdt.internal.compiler.CompilationResult;
|
|
||||||
import org.eclipse.jdt.internal.compiler.Compiler;
|
|
||||||
@@ -59,9 +61,9 @@
|
|
||||||
import org.eclipse.jdt.internal.compiler.problem.DefaultProblem;
|
|
||||||
import org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory;
|
|
||||||
import org.eclipse.jdt.internal.compiler.problem.ProblemSeverities;
|
|
||||||
+import org.eclipse.jdt.internal.compiler.util.HashtableOfObject;
|
|
||||||
import org.eclipse.jdt.internal.compiler.util.Messages;
|
|
||||||
import org.eclipse.jdt.internal.compiler.util.SuffixConstants;
|
|
||||||
-import org.eclipse.jdt.internal.compiler.util.HashtableOfObject;
|
|
||||||
import org.eclipse.jdt.internal.compiler.util.Util;
|
|
||||||
|
|
||||||
public class Main implements ProblemSeverities, SuffixConstants {
|
|
||||||
@@ -2989,56 +2991,74 @@
|
|
||||||
ArrayList currentRuleSpecs = new ArrayList(defaultSize);
|
ArrayList currentRuleSpecs = new ArrayList(defaultSize);
|
||||||
StringTokenizer tokenizer = new StringTokenizer(currentPath,
|
StringTokenizer tokenizer = new StringTokenizer(currentPath,
|
||||||
File.pathSeparator + "[]", true); //$NON-NLS-1$
|
File.pathSeparator + "[]", true); //$NON-NLS-1$
|
||||||
+ LinkedList list = new LinkedList(Collections.list(tokenizer));
|
+ ArrayList tokens = new ArrayList();
|
||||||
+
|
+ while (tokenizer.hasMoreTokens()) {
|
||||||
|
+ tokens.add(tokenizer.nextToken());
|
||||||
|
+ }
|
||||||
// state machine
|
// state machine
|
||||||
- final int start = 0;
|
final int start = 0;
|
||||||
- final int readyToClose = 1;
|
final int readyToClose = 1;
|
||||||
- // 'path' 'path1[rule];path2'
|
@@ -3003,14 +3007,21 @@
|
||||||
- final int readyToCloseEndingWithRules = 2;
|
// 'path[' 'path1;path2['
|
||||||
- // 'path[rule]' 'path1;path2[rule]'
|
final int rulesReadyToClose = 6;
|
||||||
- final int readyToCloseOrOtherEntry = 3;
|
// 'path[rule' 'path[rule1;rule2'
|
||||||
- // 'path[rule];' 'path;' 'path1;path2;'
|
+ final int bracketOpened = 7;
|
||||||
- final int rulesNeedAnotherRule = 4;
|
+ // '.*[.*'
|
||||||
- // 'path[rule1;'
|
+ final int bracketClosed = 8;
|
||||||
- final int rulesStart = 5;
|
+ // '.*([.*])+'
|
||||||
- // 'path[' 'path1;path2['
|
+
|
||||||
- final int rulesReadyToClose = 6;
|
|
||||||
- // 'path[rule' 'path[rule1;rule2'
|
|
||||||
+ // process list in reverse order, start refers to end of list
|
|
||||||
+ final int start = 0;
|
|
||||||
+ final int rulesStart = 1;
|
|
||||||
+ // ']' '];path'
|
|
||||||
+ final int rulesReadyToCloseOrOtherRule = 2;
|
|
||||||
+ // 'rule]' 'rule1;rule2]'
|
|
||||||
+ final int rulesNeedAnotherRule = 3;
|
|
||||||
+ // ';rule2]' ';rule2;rule3];path'
|
|
||||||
+ final int readyForPath = 4;
|
|
||||||
+ // '[rule]' '[rule1;rule2]'
|
|
||||||
+ final int readyToCloseOrOtherEntry = 5;
|
|
||||||
+ // 'path[rule]' 'path' 'path1;path2'
|
|
||||||
+ final int readyForPathOrRules = 6;
|
|
||||||
+ // ';path[rule]' ';path'
|
|
||||||
final int error = 99;
|
final int error = 99;
|
||||||
int state = start;
|
int state = start;
|
||||||
+
|
|
||||||
String token = null;
|
String token = null;
|
||||||
- while (tokenizer.hasMoreTokens()) {
|
- while (tokenizer.hasMoreTokens()) {
|
||||||
- token = tokenizer.nextToken();
|
- token = tokenizer.nextToken();
|
||||||
+ while (!list.isEmpty()) {
|
+ int cursor = 0, tokensNb = tokens.size(), bracket = -1;
|
||||||
+ token = (String)list.removeLast();
|
+ while (cursor < tokensNb && state != error) {
|
||||||
|
+ token = (String) tokens.get(cursor++);
|
||||||
if (token.equals(File.pathSeparator)) {
|
if (token.equals(File.pathSeparator)) {
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case start:
|
case start:
|
||||||
|
+ case bracketOpened:
|
||||||
break;
|
break;
|
||||||
- case readyToClose:
|
case readyToClose:
|
||||||
- case readyToCloseEndingWithRules:
|
case readyToCloseEndingWithRules:
|
||||||
case readyToCloseOrOtherEntry:
|
@@ -3022,14 +3033,21 @@
|
||||||
- state = readyToCloseOrOtherEntry;
|
case rulesReadyToClose:
|
||||||
+ Collections.reverse(currentRuleSpecs);
|
|
||||||
addNewEntry(paths, currentClasspathName, currentRuleSpecs, customEncoding, isSourceOnly);
|
|
||||||
currentRuleSpecs.clear();
|
|
||||||
+ state = readyForPathOrRules;
|
|
||||||
break;
|
|
||||||
- case rulesReadyToClose:
|
|
||||||
+ case rulesReadyToCloseOrOtherRule:
|
|
||||||
state = rulesNeedAnotherRule;
|
state = rulesNeedAnotherRule;
|
||||||
break;
|
break;
|
||||||
+ case rulesNeedAnotherRule:
|
+ case bracketClosed:
|
||||||
+ break;
|
+ cursor = bracket + 1;
|
||||||
+ case readyForPathOrRules:
|
+ state = rulesStart;
|
||||||
+ break;
|
+ break;
|
||||||
default:
|
default:
|
||||||
state = error;
|
state = error;
|
||||||
}
|
}
|
||||||
} else if (token.equals("[")) { //$NON-NLS-1$
|
} else if (token.equals("[")) { //$NON-NLS-1$
|
||||||
switch (state) {
|
switch (state) {
|
||||||
- case readyToClose:
|
case readyToClose:
|
||||||
- state = rulesStart;
|
- state = rulesStart;
|
||||||
+ case start:
|
+ bracket = cursor - 1;
|
||||||
+ case readyForPath:
|
+ case bracketClosed:
|
||||||
+ case readyForPathOrRules:
|
+ state = bracketOpened;
|
||||||
+ currentClasspathName = getPath(list, token);
|
|
||||||
+ state = readyToCloseOrOtherEntry;
|
|
||||||
break;
|
break;
|
||||||
- default:
|
+ case bracketOpened:
|
||||||
+ case rulesReadyToCloseOrOtherRule:
|
default:
|
||||||
+ state = readyForPath;
|
|
||||||
+ break;
|
|
||||||
+ default:
|
|
||||||
state = error;
|
state = error;
|
||||||
}
|
}
|
||||||
} else if (token.equals("]")) { //$NON-NLS-1$
|
@@ -3038,6 +3056,10 @@
|
||||||
switch (state) {
|
case rulesReadyToClose:
|
||||||
- case rulesReadyToClose:
|
state = readyToCloseEndingWithRules;
|
||||||
- state = readyToCloseEndingWithRules;
|
|
||||||
+ case start:
|
|
||||||
+ case readyForPathOrRules:
|
|
||||||
+ state = rulesStart;
|
|
||||||
break;
|
break;
|
||||||
- default:
|
+ case bracketOpened:
|
||||||
+ case readyForPath:
|
+ state = bracketClosed;
|
||||||
+ currentClasspathName = getPath(list, token);
|
|
||||||
+ state = readyToCloseOrOtherEntry;
|
|
||||||
+ break;
|
+ break;
|
||||||
+ default:
|
+ case bracketClosed:
|
||||||
|
default:
|
||||||
state = error;
|
state = error;
|
||||||
}
|
}
|
||||||
|
@@ -3055,10 +3077,22 @@
|
||||||
@@ -3046,24 +3066,26 @@
|
state = rulesReadyToClose;
|
||||||
// regular word
|
|
||||||
switch (state) {
|
|
||||||
case start:
|
|
||||||
- case readyToCloseOrOtherEntry:
|
|
||||||
- state = readyToClose;
|
|
||||||
- currentClasspathName = token;
|
|
||||||
+ case readyForPath:
|
|
||||||
+ case readyForPathOrRules:
|
|
||||||
+ currentClasspathName = getPath(list, token);
|
|
||||||
+ state = readyToCloseOrOtherEntry;
|
|
||||||
break;
|
|
||||||
- case rulesNeedAnotherRule:
|
|
||||||
case rulesStart:
|
|
||||||
- state = rulesReadyToClose;
|
|
||||||
+ case rulesNeedAnotherRule:
|
|
||||||
currentRuleSpecs.add(token);
|
currentRuleSpecs.add(token);
|
||||||
+ state = rulesReadyToCloseOrOtherRule;
|
|
||||||
break;
|
break;
|
||||||
|
+ case bracketClosed:
|
||||||
|
+ for (int i = bracket; i < cursor ; i++) {
|
||||||
|
+ currentClasspathName += (String) tokens.get(i);
|
||||||
|
+ }
|
||||||
|
+ state = readyToClose;
|
||||||
|
+ break;
|
||||||
|
+ case bracketOpened:
|
||||||
|
+ break;
|
||||||
default:
|
default:
|
||||||
state = error;
|
state = error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
+ if (state == bracketClosed && cursor == tokensNb) {
|
||||||
|
+ cursor = bracket + 1;
|
||||||
|
+ state = rulesStart;
|
||||||
|
+ }
|
||||||
}
|
}
|
||||||
+
|
|
||||||
switch(state) {
|
switch(state) {
|
||||||
- case readyToClose :
|
case readyToClose :
|
||||||
- case readyToCloseEndingWithRules :
|
@@ -3066,6 +3100,8 @@
|
||||||
- case readyToCloseOrOtherEntry :
|
case readyToCloseOrOtherEntry :
|
||||||
+ case readyForPathOrRules:
|
|
||||||
+ case readyToCloseOrOtherEntry:
|
|
||||||
+ Collections.reverse(currentRuleSpecs);
|
|
||||||
addNewEntry(paths, currentClasspathName, currentRuleSpecs, customEncoding, isSourceOnly);
|
addNewEntry(paths, currentClasspathName, currentRuleSpecs, customEncoding, isSourceOnly);
|
||||||
break;
|
break;
|
||||||
|
+ case bracketOpened:
|
||||||
|
+ case bracketClosed:
|
||||||
default :
|
default :
|
||||||
@@ -3071,4 +3093,13 @@
|
// we go on anyway
|
||||||
this.logger.logIncorrectClasspath(currentPath);
|
this.logger.logIncorrectClasspath(currentPath);
|
||||||
}
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+private String getPath(LinkedList list, String path) {
|
|
||||||
+ while (!list.isEmpty()) {
|
|
||||||
+ if (File.pathSeparator.equalsIgnoreCase((String)list.getLast()))
|
|
||||||
+ break;
|
|
||||||
+ path = (String)list.removeLast() + path;
|
|
||||||
+ }
|
|
||||||
+ return path;
|
|
||||||
+}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1738,9 +1738,10 @@ fi
|
||||||
%{_libdir}/%{name}/plugins/org.eclipse.sdk_*
|
%{_libdir}/%{name}/plugins/org.eclipse.sdk_*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Jan 31 2007 Ben Konrath <bkonrath@redhat.com> 3.2.1-35
|
* Thu Fed 01 2007 Ben Konrath <bkonrath@redhat.com> 3.2.1-35
|
||||||
- Use original name for the SWT symlinks.
|
- Use original name for the SWT symlinks.
|
||||||
- Rework ppc64, s390{x} and sparc{64} hack to fix multilib problem.
|
- Rework ppc64, s390{x} and sparc{64} hack to fix multilib problem.
|
||||||
|
- Update ecj [] patch to upstream version from 3.3.
|
||||||
|
|
||||||
* Tue Jan 30 2007 Ben Konrath <bkonrath@redhat.com> 3.2.1-34
|
* Tue Jan 30 2007 Ben Konrath <bkonrath@redhat.com> 3.2.1-34
|
||||||
- Create symlinks to the SWT JNI libs in %%{_libdir}/eclipse with sane
|
- Create symlinks to the SWT JNI libs in %%{_libdir}/eclipse with sane
|
||||||
|
|
Loading…
Reference in New Issue