Return-Path: Delivered-To: apmail-jakarta-ant-dev-archive@apache.org Received: (qmail 67403 invoked from network); 8 Jan 2002 21:58:18 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 8 Jan 2002 21:58:18 -0000 Received: (qmail 28746 invoked by uid 97); 8 Jan 2002 21:58:19 -0000 Delivered-To: qmlist-jakarta-archive-ant-dev@jakarta.apache.org Received: (qmail 28730 invoked by uid 97); 8 Jan 2002 21:58:18 -0000 Mailing-List: contact ant-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Ant Developers List" Reply-To: "Ant Developers List" Delivered-To: mailing list ant-dev@jakarta.apache.org Received: (qmail 28719 invoked from network); 8 Jan 2002 21:58:18 -0000 Message-Id: X-Mailer: Novell GroupWise Internet Agent 6.0.1 Date: Tue, 08 Jan 2002 14:59:55 -0700 From: "Jeff Tulley" To: Subject: [PATCH] PathTokenizer support for NetWare volume names Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_CB96C1CF.4E2F5904" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N --=_CB96C1CF.4E2F5904 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline In this patch, I have added support for multiple-length volume names. I only added this in the case where Ant is actually running on the Novell NetWare OS. Otherwise, the behavior is the same as it always was. This change still allows support for UNIX style paths on NetWare, in unambiguous cases ("/a:/b" is parsed correctly as two UNIX paths, "/a", and "/b", but "a:/b" is parsed as a NetWare path, since it is a valid volume plus directory name). I know that there are workarounds in the build file themselves to avoid running into path element problems on NetWare, but it was the tag that was causing this code to fail, with no workaround as far as I can tell. The build script in which I had the tag had no absolute, hardcoded path, but everything was relative. Since the code in PathConvert could not correctly identify a NetWare volume, the path name "sys:/projectbasedir" was incorrectly split into two parts, "/sys", and "/projectbasedir". This caused Ant to completely fail in Javac.java. A patch with the test code additions will follow. Jeff Tulley (jtulley@novell.com) (801)861-5322 Novell, Inc., the leading provider of Net business solutions http://www.novell.com --=_CB96C1CF.4E2F5904 Content-Type: application/octet-stream; name="PathTokenizer.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="PathTokenizer.patch" SW5kZXg6IFBhdGhUb2tlbml6ZXIuamF2YQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL2N2 c3B1YmxpYy9qYWthcnRhLWFudC9zcmMvbWFpbi9vcmcvYXBhY2hlL3Rvb2xzL2FudC9QYXRoVG9r ZW5pemVyLmphdmEsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjUNCmRpZmYgLXUgLXIxLjUgUGF0 aFRva2VuaXplci5qYXZhDQotLS0gUGF0aFRva2VuaXplci5qYXZhCTI4IE9jdCAyMDAxIDIxOjI1 OjI2IC0wMDAwCTEuNQ0KKysrIFBhdGhUb2tlbml6ZXIuamF2YQk4IEphbiAyMDAyIDIxOjMwOjI3 IC0wMDAwDQpAQCAtNTMsNiArNTMsOCBAQA0KICAqLw0KIHBhY2thZ2Ugb3JnLmFwYWNoZS50b29s cy5hbnQ7DQogDQoraW1wb3J0IG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLmNvbmRpdGlv bi5PczsNCisNCiBpbXBvcnQgamF2YS51dGlsLk5vU3VjaEVsZW1lbnRFeGNlcHRpb247DQogaW1w b3J0IGphdmEudXRpbC5TdHJpbmdUb2tlbml6ZXI7DQogaW1wb3J0IGphdmEuaW8uRmlsZTsNCkBA IC03OSwxNCArODEsMzYgQEANCiAgICAgcHJpdmF0ZSBTdHJpbmcgbG9va2FoZWFkID0gbnVsbDsN CiANCiAgICAgLyoqDQorICAgICAqIEEgYm9vbGVhbiB0aGF0IGRldGVybWluZXMgaWYgd2UgYXJl IHJ1bm5pbmcgb24gTm92ZWxsIE5ldFdhcmUsIHdoaWNoDQorICAgICAqIGV4aGliaXRzIHNsaWdo dGx5IGRpZmZlcmVudCBwYXRoIG5hbWUgY2hhcmFjdGVyaXN0aWNzIChtdWx0aS1jaGFyYWN0ZXIN CisgICAgICogdm9sdW1lIC8gZHJpdmUgbmFtZXMpDQorICAgICAqLw0KKyAgICBwcml2YXRlIGJv b2xlYW4gb25OZXRXYXJlID0gZmFsc2U7DQorDQorICAgIC8qKg0KKyAgICAgKiBUaGlzIHdpbGwg YmUgdXNlZCBmb3IgU3RyaW5nIGNvbXBhcmlzb25zIG9mIHRoZSBwYXRoIFNlcGFyYXRvciBsYXRl cg0KKyAgICAgKi8NCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0aFNlcGFyYXRvclN0ciA9IFN0cmlu Zy52YWx1ZU9mKEZpbGUucGF0aFNlcGFyYXRvckNoYXIpOw0KKw0KKyAgICAvKioNCiAgICAgICog RmxhZyB0byBpbmRpY2F0ZSB3aGV0aGVyIHdlIGFyZSBydW5uaW5nIG9uIGEgcGxhdGZvcm0gd2l0 aCBhIERPUyBzdHlsZQ0KICAgICAgKiBmaWxlc3lzdGVtDQogICAgICAqLw0KICAgICBwcml2YXRl IGJvb2xlYW4gZG9zU3R5bGVGaWxlc3lzdGVtOw0KIA0KICAgICBwdWJsaWMgUGF0aFRva2VuaXpl cihTdHJpbmcgcGF0aCkgew0KLSAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVy KHBhdGgsICI6OyIsIGZhbHNlKTsNCi0gICAgICAgZG9zU3R5bGVGaWxlc3lzdGVtID0gRmlsZS5w YXRoU2VwYXJhdG9yQ2hhciA9PSAnOyc7IA0KKyAgICAgICAgb25OZXRXYXJlID0gT3MuaXNGYW1p bHkoIm5ldHdhcmUiKTsNCisgICAgICAgIGlmIChvbk5ldFdhcmUpIHsNCisgICAgICAgICAgICAv LyBGb3IgTmV0V2FyZSwgdXNlIHRoZSBib29sZWFuPXRydWUgbW9kZSwgc28gd2UgY2FuIHVzZSBk ZWxpbWl0ZXIgDQorICAgICAgICAgICAgLy8gaW5mb3JtYXRpb24gdG8gbWFrZSBhIGJldHRlciBk ZWNpc2lvbiBsYXRlci4NCisgICAgICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5p emVyKHBhdGgsICI6OyIsIHRydWUpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZSB7DQorICAg ICAgICAgICAgLy8gb24gV2luZG93cyBhbmQgVW5peCwgd2UgY2FuIGlnbm9yZSBkZWxpbWl0ZXJz IGFuZCBzdGlsbCBoYXZlDQorICAgICAgICAgICAgLy8gZW5vdWdoIGluZm9ybWF0aW9uIHRvIHRv a2VuaXplIGNvcnJlY3RseS4NCisgICAgICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9r ZW5pemVyKHBhdGgsICI6OyIsIGZhbHNlKTsNCisgICAgICAgIH0NCisgICAgICAgIGRvc1N0eWxl RmlsZXN5c3RlbSA9IEZpbGUucGF0aFNlcGFyYXRvckNoYXIgPT0gJzsnOyANCiAgICAgfQ0KIA0K ICAgICBwdWJsaWMgYm9vbGVhbiBoYXNNb3JlVG9rZW5zKCkgew0KQEAgLTEwNywyNCArMTMxLDYx IEBADQogICAgICAgICAgICAgdG9rZW4gPSB0b2tlbml6ZXIubmV4dFRva2VuKCkudHJpbSgpOw0K ICAgICAgICAgfSAgICAgICAgICAgIA0KICAgICAgICAgICAgIA0KLSAgICAgICAgaWYgKHRva2Vu Lmxlbmd0aCgpID09IDEgJiYgQ2hhcmFjdGVyLmlzTGV0dGVyKHRva2VuLmNoYXJBdCgwKSkNCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGRvc1N0eWxlRmlsZXN5c3RlbQ0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdG9rZW5pemVyLmhhc01vcmVUb2tlbnMo KSkgew0KLSAgICAgICAgICAgIC8vIHdlIGFyZSBvbiBhIGRvcyBzdHlsZSBzeXN0ZW0gc28gdGhp cyBwYXRoIGNvdWxkIGJlIGEgZHJpdmUNCi0gICAgICAgICAgICAvLyBzcGVjLiBXZSBsb29rIGF0 IHRoZSBuZXh0IHRva2VuDQotICAgICAgICAgICAgU3RyaW5nIG5leHRUb2tlbiA9IHRva2VuaXpl ci5uZXh0VG9rZW4oKS50cmltKCk7DQotICAgICAgICAgICAgaWYgKG5leHRUb2tlbi5zdGFydHNX aXRoKCJcXCIpIHx8IG5leHRUb2tlbi5zdGFydHNXaXRoKCIvIikpIHsNCi0gICAgICAgICAgICAg ICAgLy8gd2Uga25vdyB3ZSBhcmUgb24gYSBET1Mgc3R5bGUgcGxhdGZvcm0gYW5kIHRoZSBuZXh0 IHBhdGggc3RhcnRzIHdpdGggYQ0KLSAgICAgICAgICAgICAgICAvLyBzbGFzaCBvciBiYWNrc2xh c2gsIHNvIHdlIGtub3cgdGhpcyBpcyBhIGRyaXZlIHNwZWMNCi0gICAgICAgICAgICAgICAgdG9r ZW4gKz0gIjoiICsgbmV4dFRva2VuOw0KKyAgICAgICAgaWYgKCFvbk5ldFdhcmUpIHsNCisgICAg ICAgICAgICBpZiAodG9rZW4ubGVuZ3RoKCkgPT0gMSAmJiBDaGFyYWN0ZXIuaXNMZXR0ZXIodG9r ZW4uY2hhckF0KDApKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGRv c1N0eWxlRmlsZXN5c3RlbQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYm IHRva2VuaXplci5oYXNNb3JlVG9rZW5zKCkpIHsNCisgICAgICAgICAgICAgICAgLy8gd2UgYXJl IG9uIGEgZG9zIHN0eWxlIHN5c3RlbSBzbyB0aGlzIHBhdGggY291bGQgYmUgYSBkcml2ZQ0KKyAg ICAgICAgICAgICAgICAvLyBzcGVjLiBXZSBsb29rIGF0IHRoZSBuZXh0IHRva2VuDQorICAgICAg ICAgICAgICAgIFN0cmluZyBuZXh0VG9rZW4gPSB0b2tlbml6ZXIubmV4dFRva2VuKCkudHJpbSgp Ow0KKyAgICAgICAgICAgICAgICBpZiAobmV4dFRva2VuLnN0YXJ0c1dpdGgoIlxcIikgfHwgbmV4 dFRva2VuLnN0YXJ0c1dpdGgoIi8iKSkgew0KKyAgICAgICAgICAgICAgICAgICAgLy8gd2Uga25v dyB3ZSBhcmUgb24gYSBET1Mgc3R5bGUgcGxhdGZvcm0gYW5kIHRoZSBuZXh0IHBhdGgNCisgICAg ICAgICAgICAgICAgICAgIC8vIHN0YXJ0cyB3aXRoIGEgc2xhc2ggb3IgYmFja3NsYXNoLCBzbyB3 ZSBrbm93IHRoaXMgaXMgYSANCisgICAgICAgICAgICAgICAgICAgIC8vIGRyaXZlIHNwZWMNCisg ICAgICAgICAgICAgICAgICAgIHRva2VuICs9ICI6IiArIG5leHRUb2tlbjsNCisgICAgICAgICAg ICAgICAgfQ0KKyAgICAgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgICAgICAgIC8v IHN0b3JlIHRoZSB0b2tlbiBqdXN0IHJlYWQgZm9yIG5leHQgdGltZQ0KKyAgICAgICAgICAgICAg ICAgICAgbG9va2FoZWFkID0gbmV4dFRva2VuOw0KKyAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgfQ0KLSAgICAgICAgICAgIGVsc2Ugew0KLSAgICAgICAgICAgICAgICAvLyBzdG9yZSB0 aGUgdG9rZW4ganVzdCByZWFkIGZvciBuZXh0IHRpbWUNCi0gICAgICAgICAgICAgICAgbG9va2Fo ZWFkID0gbmV4dFRva2VuOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZSB7DQorICAgICAgICAg ICAgLy8gd2UgYXJlIG9uIE5ldFdhcmUsIHRva2VuaXppbmcgaXMgaGFuZGxlZCBhIGxpdHRsZSBk aWZmZXJlbnRseSwNCisgICAgICAgICAgICAvLyBkdWUgdG8gdGhlIGZhY3QgdGhhdCBOZXRXYXJl IGhhcyBtdWx0aXBsZS1jaGFyYWN0ZXIgdm9sdW1lIG5hbWVzLg0KKyAgICAgICAgICAgIGlmICh0 b2tlbi5lcXVhbHMocGF0aFNlcGFyYXRvclN0cikpIHsNCisgICAgICAgICAgICAgICAgLy8gaWdu b3JlICI7IiBhbmQgZ2V0IHRoZSBuZXh0IHRva2VuDQorICAgICAgICAgICAgICAgIHRva2VuID0g dG9rZW5pemVyLm5leHRUb2tlbigpLnRyaW0oKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAg ICAgDQorICAgICAgICAgICAgaWYgKHRva2VuaXplci5oYXNNb3JlVG9rZW5zKCkpIHsNCisgICAg ICAgICAgICAgICAgLy8gdGhpcyBwYXRoIGNvdWxkIGJlIGEgZHJpdmUgc3BlYywgc28gbG9vayBh dCB0aGUgbmV4dCB0b2tlbg0KKyAgICAgICAgICAgICAgICBTdHJpbmcgbmV4dFRva2VuID0gdG9r ZW5pemVyLm5leHRUb2tlbigpLnRyaW0oKTsNCisNCisgICAgICAgICAgICAgICAgLy8gbWFrZSBz dXJlIHdlIGFyZW4ndCBnb2luZyB0byBnZXQgdGhlIHBhdGggc2VwYXJhdG9yIG5leHQNCisgICAg ICAgICAgICAgICAgaWYgKCFuZXh0VG9rZW4uZXF1YWxzKHBhdGhTZXBhcmF0b3JTdHIpKSB7DQor ICAgICAgICAgICAgICAgICAgICBpZiAobmV4dFRva2VuLmVxdWFscygiOiIpKSB7DQorICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKCF0b2tlbi5zdGFydHNXaXRoKCIvIikgJiYgIXRva2VuLnN0 YXJ0c1dpdGgoIlxcIikpeyANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXQgaW5k ZWVkIGlzIGEgZHJpdmUgc3BlYywgZ2V0IHRoZSBuZXh0IGJpdA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdHJpbmcgb25lTW9yZSA9IHRva2VuaXplci5uZXh0VG9rZW4oKS50cmltKCk7 DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb25lTW9yZS5lcXVhbHMocGF0aFNl cGFyYXRvclN0cikpIHsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuICs9 ICI6IiArIG9uZU1vcmU7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0b2tlbiArPSAiOiI7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCisgICAg ICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW1wbGlj aXQgZWxzZTogaWdub3JlIHRoZSAnOicgc2luY2Ugd2UgaGF2ZSBlaXRoZXIgYQ0KKyAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFVOSVggb3IgYSByZWxhdGl2ZSBwYXRoDQorICAgICAgICAgICAg ICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgICAg ICAgICAgICAvLyBzdG9yZSB0aGUgdG9rZW4ganVzdCByZWFkIGZvciBuZXh0IHRpbWUNCisgICAg ICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWQgPSBuZXh0VG9rZW47DQorICAgICAgICAgICAg ICAgICAgICB9DQorICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICB9DQogICAgICAgICB9 DQogICAgICAgICAgICANCiAgICAgICAgIHJldHVybiB0b2tlbjsNCiAgICAgfQ0KIH0NCg0K --=_CB96C1CF.4E2F5904 Content-Type: text/plain; charset=us-ascii -- To unsubscribe, e-mail: For additional commands, e-mail: --=_CB96C1CF.4E2F5904--