| 1 |
### Eclipse Workspace Patch 1.0
|
| 2 |
#P org.eclipse.jdt.core
|
| 3 |
Index: batch/org/eclipse/jdt/internal/compiler/batch/Main.java
|
| 4 |
===================================================================
|
| 5 |
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java,v
|
| 6 |
retrieving revision 1.327
|
| 7 |
diff -u -r1.327 Main.java
|
| 8 |
--- batch/org/eclipse/jdt/internal/compiler/batch/Main.java 21 Apr 2008 15:00:59 -0000 1.327
|
| 9 |
+++ batch/org/eclipse/jdt/internal/compiler/batch/Main.java 20 Nov 2008 19:26:57 -0000
|
| 10 |
@@ -268,22 +268,22 @@
|
| 11 |
if ((startPosition > endPosition)
|
| 12 |
|| ((startPosition < 0) && (endPosition < 0))
|
| 13 |
|| length == 0)
|
| 14 |
- return Messages.problem_noSourceInformation;
|
| 15 |
+ return Messages.problem_noSourceInformation;
|
| 16 |
|
| 17 |
StringBuffer errorBuffer = new StringBuffer();
|
| 18 |
if ((bits & Main.Logger.EMACS) == 0) {
|
| 19 |
- errorBuffer.append(' ').append(Messages.bind(Messages.problem_atLine, String.valueOf(problem.getSourceLineNumber())));
|
| 20 |
+ errorBuffer.append(' ').append(Messages.bind(Messages.problem_atLine, String.valueOf(problem.getSourceLineNumber())));
|
| 21 |
errorBuffer.append(Util.LINE_SEPARATOR);
|
| 22 |
}
|
| 23 |
errorBuffer.append('\t');
|
| 24 |
-
|
| 25 |
+
|
| 26 |
char c;
|
| 27 |
final char SPACE = '\u0020';
|
| 28 |
final char MARK = '^';
|
| 29 |
final char TAB = '\t';
|
| 30 |
//the next code tries to underline the token.....
|
| 31 |
//it assumes (for a good display) that token source does not
|
| 32 |
- //contain any \r \n. This is false on statements !
|
| 33 |
+ //contain any \r \n. This is false on statements !
|
| 34 |
//(the code still works but the display is not optimal !)
|
| 35 |
|
| 36 |
// expand to line limits
|
| 37 |
@@ -295,11 +295,11 @@
|
| 38 |
for (end = endPosition >= length ? length - 1 : endPosition ; end+1 < length; end++) {
|
| 39 |
if ((c = unitSource[end + 1]) == '\r' || c == '\n') break;
|
| 40 |
}
|
| 41 |
-
|
| 42 |
+
|
| 43 |
// trim left and right spaces/tabs
|
| 44 |
while ((c = unitSource[begin]) == ' ' || c == '\t') begin++;
|
| 45 |
//while ((c = unitSource[end]) == ' ' || c == '\t') end--; TODO (philippe) should also trim right, but all tests are to be updated
|
| 46 |
-
|
| 47 |
+
|
| 48 |
// copy source
|
| 49 |
errorBuffer.append(unitSource, begin, end-begin+1);
|
| 50 |
errorBuffer.append(Util.LINE_SEPARATOR).append("\t"); //$NON-NLS-1$
|
| 51 |
@@ -424,7 +424,7 @@
|
| 52 |
String.valueOf(generateTime),
|
| 53 |
String.valueOf(((int) (generateTime * 1000.0 / time)) / 10.0),
|
| 54 |
}));
|
| 55 |
- }
|
| 56 |
+ }
|
| 57 |
}
|
| 58 |
public void logClassFile(boolean generatePackagesStructure, String outputPath, String relativeFileName) {
|
| 59 |
if ((this.tagBits & Logger.XML) != 0) {
|
| 60 |
@@ -916,7 +916,7 @@
|
| 61 |
this.main.bind("compile.totalTime", //$NON-NLS-1$
|
| 62 |
new String[] {
|
| 63 |
String.valueOf(time),
|
| 64 |
- }));
|
| 65 |
+ }));
|
| 66 |
}
|
| 67 |
if ((this.main.timing & Main.TIMING_DETAILED) != 0) {
|
| 68 |
this.printlnOut(
|
| 69 |
@@ -1119,7 +1119,7 @@
|
| 70 |
this.endTag(Logger.STATS);
|
| 71 |
}
|
| 72 |
}
|
| 73 |
-
|
| 74 |
+
|
| 75 |
private void printTag(String name, HashMap params, boolean insertNewLine, boolean closeTag) {
|
| 76 |
if (this.log != null) {
|
| 77 |
((GenericXMLWriter) this.log).printTag(name, parameters, true, insertNewLine, closeTag);
|
| 78 |
@@ -1245,12 +1245,12 @@
|
| 79 |
|
| 80 |
boolean warnJavadocOn;
|
| 81 |
boolean warnAllJavadocOn;
|
| 82 |
-
|
| 83 |
+
|
| 84 |
public Compiler batchCompiler;
|
| 85 |
/* Bundle containing messages */
|
| 86 |
public ResourceBundle bundle;
|
| 87 |
protected FileSystem.Classpath[] checkedClasspaths;
|
| 88 |
-
|
| 89 |
+
|
| 90 |
public Locale compilerLocale;
|
| 91 |
public CompilerOptions compilerOptions; // read-only
|
| 92 |
public CompilationProgress progress;
|
| 93 |
@@ -1299,7 +1299,7 @@
|
| 94 |
public static final int TIMING_DISABLED = 0;
|
| 95 |
public static final int TIMING_ENABLED = 1;
|
| 96 |
public static final int TIMING_DETAILED = 2;
|
| 97 |
-
|
| 98 |
+
|
| 99 |
public int timing = TIMING_DISABLED;
|
| 100 |
public CompilerStats[] compilerStats;
|
| 101 |
public boolean verbose = false;
|
| 102 |
@@ -1312,7 +1312,7 @@
|
| 103 |
// two uses: recognize 'none' in options; code the singleton none
|
| 104 |
// for the '-d none' option (wherever it may be found)
|
| 105 |
public static final int DEFAULT_SIZE_CLASSPATH = 4;
|
| 106 |
-
|
| 107 |
+
|
| 108 |
public static final String NONE = "none"; //$NON-NLS-1$
|
| 109 |
|
| 110 |
/**
|
| 111 |
@@ -1562,7 +1562,7 @@
|
| 112 |
}
|
| 113 |
/**
|
| 114 |
* Return true if and only if the running VM supports the given minimal version.
|
| 115 |
- *
|
| 116 |
+ *
|
| 117 |
* <p>This only checks the major version, since the minor version is always 0 (at least for the useful cases).</p>
|
| 118 |
* <p>The given minimalSupportedVersion is one of the constants:</p>
|
| 119 |
* <ul>
|
| 120 |
@@ -2536,8 +2536,8 @@
|
| 121 |
mode = DEFAULT;
|
| 122 |
continue;
|
| 123 |
}
|
| 124 |
-
|
| 125 |
- // set DocCommentSupport, with appropriate side effects on defaults if
|
| 126 |
+
|
| 127 |
+ // set DocCommentSupport, with appropriate side effects on defaults if
|
| 128 |
// javadoc is not enabled
|
| 129 |
if (this.enableJavadocOn) {
|
| 130 |
this.options.put(
|
| 131 |
@@ -2601,7 +2601,7 @@
|
| 132 |
this.logger.logVersion(printVersionRequired);
|
| 133 |
|
| 134 |
validateOptions(didSpecifyCompliance);
|
| 135 |
-
|
| 136 |
+
|
| 137 |
// Enable annotation processing by default in batch mode when compliance is at least 1.6
|
| 138 |
// see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=185768
|
| 139 |
if (!didSpecifyDisabledAnnotationProcessing
|
| 140 |
@@ -2609,6 +2609,29 @@
|
| 141 |
this.options.put(CompilerOptions.OPTION_Process_Annotations, CompilerOptions.ENABLED);
|
| 142 |
}
|
| 143 |
|
| 144 |
+ {
|
| 145 |
+ // If we're building an RPM, force full debugging info to
|
| 146 |
+ // be generated, no matter what options have been passed
|
| 147 |
+ // by Ant. This is something of a kludge, but it is far
|
| 148 |
+ // better than the alternative, which is having class
|
| 149 |
+ // files with debug info mysteriously missing.
|
| 150 |
+
|
| 151 |
+ String RpmPackageName = System.getenv("RPM_PACKAGE_NAME");
|
| 152 |
+ String RpmArch = System.getenv("RPM_ARCH");
|
| 153 |
+ String RpmBuildRoot = System.getenv("RPM_BUILD_ROOT");
|
| 154 |
+ if (RpmPackageName != null && RpmArch != null && RpmBuildRoot != null) {
|
| 155 |
+ this.options.put(
|
| 156 |
+ CompilerOptions.OPTION_LocalVariableAttribute,
|
| 157 |
+ CompilerOptions.GENERATE);
|
| 158 |
+ this.options.put(
|
| 159 |
+ CompilerOptions.OPTION_LineNumberAttribute,
|
| 160 |
+ CompilerOptions.GENERATE);
|
| 161 |
+ this.options.put(
|
| 162 |
+ CompilerOptions.OPTION_SourceFileAttribute,
|
| 163 |
+ CompilerOptions.GENERATE);
|
| 164 |
+ }
|
| 165 |
+ }
|
| 166 |
+
|
| 167 |
this.logger.logCommandLineArguments(newCommandLineArgs);
|
| 168 |
this.logger.logOptions(this.options);
|
| 169 |
|
| 170 |
@@ -2636,7 +2659,7 @@
|
| 171 |
0,
|
| 172 |
classCount);
|
| 173 |
}
|
| 174 |
-
|
| 175 |
+
|
| 176 |
setPaths(bootclasspaths,
|
| 177 |
sourcepathClasspathArg,
|
| 178 |
sourcepathClasspaths,
|
| 179 |
@@ -2644,7 +2667,7 @@
|
| 180 |
extdirsClasspaths,
|
| 181 |
endorsedDirClasspaths,
|
| 182 |
customEncoding);
|
| 183 |
-
|
| 184 |
+
|
| 185 |
if (this.pendingErrors != null) {
|
| 186 |
for (Iterator iterator = this.pendingErrors.iterator(); iterator.hasNext(); ) {
|
| 187 |
String message = (String) iterator.next();
|
| 188 |
@@ -3376,7 +3399,7 @@
|
| 189 |
} else if (token.equals("unusedTypeArgs")) { //$NON-NLS-1$
|
| 190 |
this.options.put(
|
| 191 |
CompilerOptions.OPTION_ReportUnusedTypeArgumentsForMethodInvocation,
|
| 192 |
- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
|
| 193 |
+ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
|
| 194 |
} else {
|
| 195 |
addPendingErrors(this.bind("configure.invalidWarning", token)); //$NON-NLS-1$
|
| 196 |
}
|