mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-12 18:55:38 +02:00
Fix to PR 53253
This commit is contained in:
parent
183e1ab403
commit
9bd8b6fb3a
2 changed files with 54 additions and 39 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2004-03-01 Alain Magloire
|
||||||
|
|
||||||
|
Fix to PR 53253. From Steve Garbarini
|
||||||
|
|
||||||
|
* src/org/eclipse/cdt/internal/errorparsers/VCErrorParser.java
|
||||||
|
|
||||||
2004-03-01 Alain Magloire
|
2004-03-01 Alain Magloire
|
||||||
|
|
||||||
Patch from Uwe Stieber
|
Patch from Uwe Stieber
|
||||||
|
|
|
@ -1,54 +1,63 @@
|
||||||
package org.eclipse.cdt.internal.errorparsers;
|
package org.eclipse.cdt.internal.errorparsers;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (c) Copyright IBM Corp. 2000, 2001.
|
* (c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
|
||||||
* All Rights Reserved.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.ErrorParserManager;
|
import org.eclipse.cdt.core.ErrorParserManager;
|
||||||
import org.eclipse.cdt.core.IErrorParser;
|
import org.eclipse.cdt.core.IErrorParser;
|
||||||
import org.eclipse.cdt.core.IMarkerGenerator;
|
import org.eclipse.cdt.core.IMarkerGenerator;
|
||||||
import org.eclipse.core.resources.IFile;
|
import org.eclipse.core.resources.IFile;
|
||||||
|
|
||||||
public class VCErrorParser implements IErrorParser {
|
public class VCErrorParser implements IErrorParser {
|
||||||
|
public boolean processLine(String line, ErrorParserManager eoParser) {
|
||||||
public boolean processLine(String line, ErrorParserManager eoParser) {
|
// msdev: filname(linenumber) : error/warning error_desc
|
||||||
// msdev: filname(linenumber) : error/warning error_desc
|
int firstColon = line.indexOf(':');
|
||||||
int firstColon= line.indexOf(':');
|
if (firstColon != -1) {
|
||||||
if (firstColon != -1) {
|
/* Guard against drive in Windows platform. */
|
||||||
String firstPart= line.substring(0, firstColon);
|
if (firstColon == 1) {
|
||||||
StringTokenizer tok= new StringTokenizer(firstPart, "()");
|
try {
|
||||||
if (tok.hasMoreTokens()) {
|
String os = System.getProperty("os.name");
|
||||||
String fileName= tok.nextToken();
|
if (os != null && os.startsWith("Win")) {
|
||||||
if (tok.hasMoreTokens()) {
|
try {
|
||||||
String lineNumber= tok.nextToken();
|
if (Character.isLetter(line.charAt(0))) {
|
||||||
try {
|
firstColon = line.indexOf(':', 2);
|
||||||
int num= Integer.parseInt(lineNumber);
|
}
|
||||||
int i= fileName.lastIndexOf(File.separatorChar);
|
} catch (StringIndexOutOfBoundsException e) {
|
||||||
if (i != -1) {
|
}
|
||||||
fileName= fileName.substring(i + 1);
|
}
|
||||||
|
} catch (SecurityException e) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
IFile file= eoParser.findFileName(fileName);
|
String firstPart = line.substring(0, firstColon);
|
||||||
if (file != null || eoParser.isConflictingName(fileName)) {
|
StringTokenizer tok = new StringTokenizer(firstPart, "()");
|
||||||
String desc= line.substring(firstColon + 1).trim();
|
if (tok.hasMoreTokens()) {
|
||||||
if (file == null) {
|
String fileName = tok.nextToken();
|
||||||
desc= "*" + desc;
|
if (tok.hasMoreTokens()) {
|
||||||
}
|
String lineNumber = tok.nextToken();
|
||||||
int severity= IMarkerGenerator.SEVERITY_ERROR_RESOURCE;
|
try {
|
||||||
if (desc.startsWith("warning")) {
|
int num = Integer.parseInt(lineNumber);
|
||||||
severity= IMarkerGenerator.SEVERITY_WARNING;
|
int i = fileName.lastIndexOf(File.separatorChar);
|
||||||
}
|
if (i != -1) {
|
||||||
eoParser.generateMarker(file, num, desc, severity, null);
|
fileName = fileName.substring(i + 1);
|
||||||
return true;
|
}
|
||||||
|
IFile file = eoParser.findFileName(fileName);
|
||||||
|
if (file != null || eoParser.isConflictingName(fileName)) {
|
||||||
|
String desc = line.substring(firstColon + 1).trim();
|
||||||
|
if (file == null) {
|
||||||
|
desc = "*" + desc;
|
||||||
|
}
|
||||||
|
int severity = IMarkerGenerator.SEVERITY_ERROR_RESOURCE;
|
||||||
|
if (desc.startsWith("warning")) {
|
||||||
|
severity = IMarkerGenerator.SEVERITY_WARNING;
|
||||||
|
}
|
||||||
|
eoParser.generateMarker(file, num, desc, severity, null);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
return false;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue