bodewig 2003/07/16 04:00:36 Modified: src/main/org/apache/tools/ant PathTokenizer.java src/testcases/org/apache/tools/ant/types PathTest.java Log: PathTokenizer didn't deal correctly with ../ style relative paths following a colon in Unix style PATH structures on Netware. Submitted by: Jeff Tulley <JTULLEY at novell dot com> Revision Changes Path 1.18 +4 -2 ant/src/main/org/apache/tools/ant/PathTokenizer.java Index: PathTokenizer.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/PathTokenizer.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- PathTokenizer.java 9 Jul 2003 13:12:23 -0000 1.17 +++ PathTokenizer.java 16 Jul 2003 11:00:36 -0000 1.18 @@ -1,7 +1,7 @@ /* * The Apache Software License, Version 1.1 * - * Copyright (c) 2000,2002 The Apache Software Foundation. All rights + * Copyright (c) 2000,2002-2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -176,7 +176,9 @@ // make sure we aren't going to get the path separator next if (!nextToken.equals(File.pathSeparator)) { if (nextToken.equals(":")) { - if (!token.startsWith("/") && !token.startsWith("\\")) { + if (!token.startsWith("/") && !token.startsWith("\\") + && !token.startsWith(".") + && !token.startsWith("..")) { // it indeed is a drive spec, get the next bit String oneMore = tokenizer.nextToken().trim(); if (!oneMore.equals(File.pathSeparator)) { 1.19 +24 -1 ant/src/testcases/org/apache/tools/ant/types/PathTest.java Index: PathTest.java =================================================================== RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/types/PathTest.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- PathTest.java 7 Mar 2003 11:23:13 -0000 1.18 +++ PathTest.java 16 Jul 2003 11:00:36 -0000 1.19 @@ -1,7 +1,7 @@ /* * The Apache Software License, Version 1.1 * - * Copyright (c) 2000-2002 The Apache Software Foundation. All rights + * Copyright (c) 2000-2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -102,6 +102,29 @@ assertEquals(":\\a", l[0].substring(1)); assertEquals(":\\b", l[1].substring(1)); } + } + + public void testRelativePathUnixStyle() { + project.setBasedir("src/etc"); + Path p = new Path(project, "..:testcases"); + String[] l = p.list(); + assertEquals("two items, Unix style", 2, l.length); + if (isUnixStyle) { + assertTrue("test resolved relative to src/etc", + l[0].endsWith("/src")); + assertTrue("test resolved relative to src/etc", + l[1].endsWith("/src/etc/testcases")); + } else if (isNetWare) { + assertTrue("test resolved relative to src/etc", + l[0].endsWith("\\src")); + assertTrue("test resolved relative to src/etc", + l[1].endsWith("\\src\\etc\\testcases")); + } else { + assertTrue("test resolved relative to src/etc", + l[0].endsWith("\\src")); + assertTrue("test resolved relative to src/etc", + l[1].endsWith("\\src\\etc\\testcases")); + } } public void testConstructorWindowsStyle() {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]