View | Details | Raw Unified | Return to bug 203059 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/cdt/make/scannerdiscovery/GCCScannerInfoConsoleParserTests.java (-1 / +6 lines)
Lines 63-68 Link Here
63
		fOutputParser.processLine("gcc -I \\"); //$NON-NLS-1$
63
		fOutputParser.processLine("gcc -I \\"); //$NON-NLS-1$
64
		fOutputParser.processLine("/multiline\\"); //$NON-NLS-1$
64
		fOutputParser.processLine("/multiline\\"); //$NON-NLS-1$
65
		fOutputParser.processLine("/dir -c test.c"); // multiline //$NON-NLS-1$
65
		fOutputParser.processLine("/dir -c test.c"); // multiline //$NON-NLS-1$
66
		fOutputParser.processLine("gcc -Imultiline2 \\"); //$NON-NLS-1$
67
		fOutputParser.processLine("-Imultiline3\\"); //$NON-NLS-1$
68
		fOutputParser.processLine(" -DAA=\"BB\" test.c"); //$NON-NLS-1$
66
		
69
		
67
		List sumIncludes = fCollector.getCollectedScannerInfo(null, ScannerInfoTypes.INCLUDE_PATHS);
70
		List sumIncludes = fCollector.getCollectedScannerInfo(null, ScannerInfoTypes.INCLUDE_PATHS);
68
        assertTrue(sumIncludes.contains("/dir/include")); //$NON-NLS-1$
71
        assertTrue(sumIncludes.contains("/dir/include")); //$NON-NLS-1$
Lines 89-94 Link Here
89
		assertTrue(sumIncludes.contains("//server5/include")); //$NON-NLS-1$
92
		assertTrue(sumIncludes.contains("//server5/include")); //$NON-NLS-1$
90
		assertTrue(sumIncludes.contains("//server6/include")); //$NON-NLS-1$
93
		assertTrue(sumIncludes.contains("//server6/include")); //$NON-NLS-1$
91
		assertTrue(sumIncludes.contains("/multiline/dir")); //$NON-NLS-1$
94
		assertTrue(sumIncludes.contains("/multiline/dir")); //$NON-NLS-1$
92
		assertTrue(sumIncludes.size() == 24);
95
		assertTrue(sumIncludes.contains("multiline2")); //$NON-NLS-1$
96
		assertTrue(sumIncludes.contains("multiline3")); //$NON-NLS-1$
97
		assertTrue(sumIncludes.size() == 26);
93
	}
98
	}
94
}
99
}
(-)src/org/eclipse/cdt/make/scannerdiscovery/BaseBOPConsoleParserTests.java (-1 / +1 lines)
Lines 128-134 Link Here
128
	}
128
	}
129
129
130
	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=203059
130
	// https://bugs.eclipse.org/bugs/show_bug.cgi?id=203059
131
	public void _testCompilerCommandInsideShellInvocation_bug203059() throws Exception {
131
	public void testCompilerCommandInsideShellInvocation_bug203059() throws Exception {
132
		fOutputParser.processLine("sh -c '/usr/bin/gcc -DA test1.c'"); //$NON-NLS-1$
132
		fOutputParser.processLine("sh -c '/usr/bin/gcc -DA test1.c'"); //$NON-NLS-1$
133
		fOutputParser.processLine("sh -c '/usr/gcc-installs/gcc -DB test2.c;"); //$NON-NLS-1$
133
		fOutputParser.processLine("sh -c '/usr/gcc-installs/gcc -DB test2.c;"); //$NON-NLS-1$
134
		fOutputParser.processLine("sh -c '/usr/gcc/gcc -DC test3.c'"); //$NON-NLS-1$
134
		fOutputParser.processLine("sh -c '/usr/gcc/gcc -DC test3.c'"); //$NON-NLS-1$
(-)src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCScannerInfoConsoleParser.java (+7 lines)
Lines 59-64 Link Here
59
        	return false;
59
        	return false;
60
        }
60
        }
61
        
61
        
62
        if (compilerInvocationIdx+1 >= tokens.length) {
63
        	return false;
64
        }
65
62
        // Recognized gcc or g++ compiler invocation
66
        // Recognized gcc or g++ compiler invocation
63
        List includes = new ArrayList();
67
        List includes = new ArrayList();
64
        List symbols = new ArrayList();
68
        List symbols = new ArrayList();
Lines 149-154 Link Here
149
        if (fileName != null && fileName.startsWith("/cygdrive/")) { //$NON-NLS-1$
153
        if (fileName != null && fileName.startsWith("/cygdrive/")) { //$NON-NLS-1$
150
        	fileName= AbstractGCCBOPConsoleParserUtility.convertCygpath(new Path(fileName)).toOSString();
154
        	fileName= AbstractGCCBOPConsoleParserUtility.convertCygpath(new Path(fileName)).toOSString();
151
        }
155
        }
156
        if (fileName == null) {
157
        	return false;  // return when no file was given (analogous to GCCPerFileBOPConsoleParser)
158
        }
152
159
153
        IProject project = getProject();   
160
        IProject project = getProject();   
154
        IFile file = null;
161
        IFile file = null;
(-)src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCPerFileBOPConsoleParser.java (-2 / +2 lines)
Lines 88-99 Link Here
88
        }
88
        }
89
        if (!found) {
89
        if (!found) {
90
            TraceUtil.outputTrace("Error identifying file name :1", tokens, TraceUtil.EOL); //$NON-NLS-1$
90
            TraceUtil.outputTrace("Error identifying file name :1", tokens, TraceUtil.EOL); //$NON-NLS-1$
91
            return true;
91
            return false;
92
        }
92
        }
93
        // sanity check
93
        // sanity check
94
        if (filePath.indexOf(FILE_EXTENSIONS[extensionsIndex]) == -1) {
94
        if (filePath.indexOf(FILE_EXTENSIONS[extensionsIndex]) == -1) {
95
            TraceUtil.outputTrace("Error identifying file name :2", tokens, TraceUtil.EOL); //$NON-NLS-1$
95
            TraceUtil.outputTrace("Error identifying file name :2", tokens, TraceUtil.EOL); //$NON-NLS-1$
96
            return true;
96
            return false;
97
        }
97
        }
98
        if (fUtil != null) {
98
        if (fUtil != null) {
99
            IPath pFilePath = fUtil.getAbsolutePath(filePath);
99
            IPath pFilePath = fUtil.getAbsolutePath(filePath);
(-)src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/AbstractGCCBOPConsoleParser.java (+13 lines)
Lines 298-303 Link Here
298
			if (processCommand(command)) {
298
			if (processCommand(command)) {
299
				rc= true;
299
				rc= true;
300
			}
300
			}
301
			else {  // go inside quotes, if the compiler is called per wrapper or shell script
302
				for (int j = 0; j < command.length; j++) {
303
					String[][] subtokens= tokenize(command[j], true);
304
					for (int k = 0; k < subtokens.length; k++) {
305
						String[] subcommand = subtokens[k];
306
						if (subcommand.length > 1 || subtokens.length > 1) {  // only proceed if there is any additional info
307
							if (processCommand(subcommand)) {
308
								rc= true;
309
							}
310
						}
311
					}
312
				}
313
			}
301
		}
314
		}
302
		return rc;
315
		return rc;
303
    }
316
    }

Return to bug 203059