mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Fix handling of cygdrive in scanner discovery
This commit is contained in:
parent
02e693474e
commit
d5e1e3f2ea
2 changed files with 18 additions and 16 deletions
|
@ -93,26 +93,25 @@ public abstract class AbstractGCCBOPConsoleParserUtility {
|
||||||
pwd = dir.removeFirstSegments(fBaseDirectory.segmentCount());
|
pwd = dir.removeFirstSegments(fBaseDirectory.segmentCount());
|
||||||
} else {
|
} else {
|
||||||
// check if it is a cygpath
|
// check if it is a cygpath
|
||||||
if (dir.toString().startsWith("/cygdrive/")) { //$NON-NLS-1$
|
pwd= convertCygpath(dir);
|
||||||
char driveLetter = dir.toString().charAt(10);
|
|
||||||
driveLetter = (Character.isLowerCase(driveLetter)) ? Character.toUpperCase(driveLetter) : driveLetter;
|
|
||||||
StringBuffer buf = new StringBuffer();
|
|
||||||
buf.append(driveLetter);
|
|
||||||
buf.append(':');
|
|
||||||
String drive = buf.toString();
|
|
||||||
pwd = dir.removeFirstSegments(2);
|
|
||||||
pwd = pwd.setDevice(drive);
|
|
||||||
pwd = pwd.makeAbsolute();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
pwd = dir;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
fDirectoryStack.addElement(pwd);
|
fDirectoryStack.addElement(pwd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected IPath popDirectory() {
|
protected IPath convertCygpath(IPath path) {
|
||||||
|
if (path.segmentCount() > 1 && path.segment(0).equals("cygdrive")) { //$NON-NLS-1$
|
||||||
|
StringBuffer buf = new StringBuffer(2);
|
||||||
|
buf.append(Character.toUpperCase(path.segment(1).charAt(0)));
|
||||||
|
buf.append(':');
|
||||||
|
path = path.removeFirstSegments(2);
|
||||||
|
path = path.setDevice(buf.toString());
|
||||||
|
path = path.makeAbsolute();
|
||||||
|
}
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected IPath popDirectory() {
|
||||||
int i = getDirectoryLevel();
|
int i = getDirectoryLevel();
|
||||||
if (i != 0) {
|
if (i != 0) {
|
||||||
IPath dir = (IPath) fDirectoryStack.lastElement();
|
IPath dir = (IPath) fDirectoryStack.lastElement();
|
||||||
|
|
|
@ -175,7 +175,10 @@ public class GCCPerFileBOPConsoleParserUtility extends AbstractGCCBOPConsolePars
|
||||||
*/
|
*/
|
||||||
IPath getAbsolutePath(String filePath) {
|
IPath getAbsolutePath(String filePath) {
|
||||||
IPath pFilePath;
|
IPath pFilePath;
|
||||||
if (filePath.startsWith("/") || filePath.startsWith("\\") || //$NON-NLS-1$ //$NON-NLS-2$
|
if (filePath.startsWith("/")) { //$NON-NLS-1$
|
||||||
|
return convertCygpath(new Path(filePath));
|
||||||
|
}
|
||||||
|
else if (filePath.startsWith("\\") || //$NON-NLS-1$
|
||||||
(!filePath.startsWith(".") && //$NON-NLS-1$
|
(!filePath.startsWith(".") && //$NON-NLS-1$
|
||||||
filePath.length() > 2 && filePath.charAt(1) == ':' &&
|
filePath.length() > 2 && filePath.charAt(1) == ':' &&
|
||||||
(filePath.charAt(2) == '\\' || filePath.charAt(2) == '/'))) {
|
(filePath.charAt(2) == '\\' || filePath.charAt(2) == '/'))) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue