From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Tino Calancha Newsgroups: gmane.emacs.bugs Subject: bug#21454: 25.0.50; `parse-colon-path' fails with paths containing consecutive directory separators Date: Thu, 10 Sep 2015 20:15:42 +0900 (JST) Message-ID: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; BOUNDARY="1468197610-1601033166-1441883742=:22763" X-Trace: ger.gmane.org 1441883607 1467 80.91.229.3 (10 Sep 2015 11:13:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 10 Sep 2015 11:13:27 +0000 (UTC) Cc: "C. Calancha" To: 21454@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Sep 10 13:13:16 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZZzmx-00081r-BW for geb-bug-gnu-emacs@m.gmane.org; Thu, 10 Sep 2015 13:13:11 +0200 Original-Received: from localhost ([::1]:48479 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZzmw-0005qE-Rt for geb-bug-gnu-emacs@m.gmane.org; Thu, 10 Sep 2015 07:13:10 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51279) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZzms-0005q6-En for bug-gnu-emacs@gnu.org; Thu, 10 Sep 2015 07:13:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZZzmo-00047b-Bz for bug-gnu-emacs@gnu.org; Thu, 10 Sep 2015 07:13:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:34106) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZzmo-00047X-8i for bug-gnu-emacs@gnu.org; Thu, 10 Sep 2015 07:13:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZZzmn-0005gC-Sh for bug-gnu-emacs@gnu.org; Thu, 10 Sep 2015 07:13:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Tino Calancha Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 10 Sep 2015 11:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 21454 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.144188357021814 (code B ref -1); Thu, 10 Sep 2015 11:13:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 10 Sep 2015 11:12:50 +0000 Original-Received: from localhost ([127.0.0.1]:54549 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZZzmb-0005fm-N8 for submit@debbugs.gnu.org; Thu, 10 Sep 2015 07:12:50 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:41206) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZZzmZ-0005fc-0e for submit@debbugs.gnu.org; Thu, 10 Sep 2015 07:12:48 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZZzmX-00045I-CM for submit@debbugs.gnu.org; Thu, 10 Sep 2015 07:12:46 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:59437) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZzmX-00045E-9S for submit@debbugs.gnu.org; Thu, 10 Sep 2015 07:12:45 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51191) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZzmV-0005no-Qc for bug-gnu-emacs@gnu.org; Thu, 10 Sep 2015 07:12:45 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZZzmR-000444-O2 for bug-gnu-emacs@gnu.org; Thu, 10 Sep 2015 07:12:43 -0400 Original-Received: from calancha-ilc.kek.jp ([130.87.234.234]:58174) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZzmR-000430-7P for bug-gnu-emacs@gnu.org; Thu, 10 Sep 2015 07:12:39 -0400 Original-Received: by calancha-ilc.kek.jp (Postfix, from userid 500) id 6497DB79B; Thu, 10 Sep 2015 20:15:42 +0900 (JST) Original-Received: from localhost (localhost [127.0.0.1]) by calancha-ilc.kek.jp (Postfix) with ESMTP id 4E4B7B798; Thu, 10 Sep 2015 20:15:42 +0900 (JST) X-X-Sender: calancha@calancha-ilc.kek.jp User-Agent: Alpine 2.20 (LRH 67 2015-01-07) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:106341 Archived-At: --1468197610-1601033166-1441883742=:22763 Content-Type: text/plain; format=flowed; charset=US-ASCII Implementation use `substitute-in-file-name' which substitute environment variables but also drop all in front of consecutive directory separators (up to the last of those dir. separators). The documentation of `parse-colon-path' dont mention about that behaviour. In unix systems there is no difference between: I) /foo//bar/baz II) /foo/bar/baz `substitute-in-file-name' would translate I) into: /bar/baz In case path to parse contains an environment variable: FOO=/foo/bar BAZ=/foo/bar/ A) path="$FOO/bin" ; works (FOO is a directory file name) B) path="$BAZ/bin" ; fails (FOO is not a directory file name) Observed same behaviour on this fuction in emacs versions: 19, 20, 21, 22, 23, 24 and 25. Attached patch calls `substitute-env-in-file-name' instead of `substitute-in-file-name' and it returns same values for inputs I) and II) or A) and B). ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; In *scratch* buffer after started session with: emacs -Q (let* ((foo "/foo/bar//baz/:/qux/quux/corge//")) ; '//' (setenv "FOO" foo) (parse-colon-path (getenv "FOO"))) ("/baz/" "/") (let ((foo "/foo/bar/baz/qux/:/quux/corge/:/grault/graply/waldo")) ; `ok' (setenv "FOO" foo) (parse-colon-path "$FOO")) ("/foo/bar/baz/qux/:/quux/corge/:/grault/graply/waldo/") (let ((foo "/foo/bar/baz/qux/:/quux/corge/:/grault/graply/waldo/")) ; end with '/' and `parse-colon-path' add another (setenv "FOO" foo) (parse-colon-path "$FOO")) ("/") (let ((foo "/foo/bar/baz/qux/:/quux/corge/:/grault/graply/waldo/")) ; `getenv' makes it work somehow (setenv "FOO" foo) (parse-colon-path (getenv "FOO"))) ("/foo/bar/baz/qux/" "/quux/corge/" "/grault/graply/waldo/") (let ((foo "/foo/bar/baz//qux/:/quux/corge/:/grault/garply/waldo/")) ; `getenv' dont help with '//' (setenv "FOO" foo) (parse-colon-path (getenv "FOO"))) ("/qux/" "/quux/corge/" "/grault/garply/waldo/") (let ((foo "/foo/bar/baz//qux/:/quux/corge/:/grault/garply/waldo")) ; '//' (setenv "FOO" foo) (parse-colon-path "$FOO")) ("/qux/:/quux/corge/:/grault/garply/waldo/") (let* ((foo "/foo/bar") ; `ok' foo not end with '/' (bar "$FOO/baz/qux/:/quux/corge/")) (setenv "FOO" foo) (setenv "BAR" bar) (parse-colon-path (getenv "BAR"))) ("/foo/bar/baz/qux/" "/quux/corge/") (let* ((foo "/foo/bar/") ; foo ends with '/' (bar "$FOO/baz/qux/:/quux/corge/")) (setenv "FOO" foo) (setenv "BAR" bar) (parse-colon-path (getenv "BAR"))) ("/baz/qux/" "/quux/corge/") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; In GNU Emacs 25.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.23) of 2015-09-10 Repository revision: f962c5d6472804f788cdd54631bcc46aab5f59ce Windowing system distributor 'Scientific Linux', version 11.0.11500000 System Description: Scientific Linux release 6.7 (Carbon) Configured using: 'configure --without-makeinfo --with-gif=no' Configured features: XPM JPEG TIFF PNG IMAGEMAGICK SOUND DBUS GCONF NOTIFY LIBSELINUX LIBXML2 FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS GTK2 X11 Important settings: value of $LANG: en_US.utf8 value of $XMODIFIERS: @im=none locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. is undefined Quit completing-read-default: Command attempted to use minibuffer while in minibuffer user-error: Beginning of history; no preceding item Quit [2 times] Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message dired format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util help-fns help-mode easymenu cl-loaddefs pcase cl-lib mail-prsvr mail-utils time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind inotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 80421 12421) (symbols 48 18940 0) (miscs 40 39 110) (strings 32 12495 3997) (string-bytes 1 361986) (vectors 16 11158) (vector-slots 8 408984 7901) (floats 8 131 123) (intervals 56 192 0) (buffers 976 12) (heap 1024 26696 621)) --1468197610-1601033166-1441883742=:22763 Content-Type: text/plain; charset=US-ASCII; name=files.patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=files.patch LS0tIGZpbGVzLmVsCTIwMTUtMDktMTAgMTk6MzE6MDYuNTY5NjUwOTYyICsw OTAwDQorKysgZmlsZXNfcGF0Y2hlZC5lbAkyMDE1LTA5LTEwIDIwOjAxOjAw LjMwMzY1MDc0OCArMDkwMA0KQEAgLTY2Nyw3ICs2NjcsOCBAQA0KICAgIlZh bHVlIG9mIHRoZSBDRFBBVEggZW52aXJvbm1lbnQgdmFyaWFibGUsIGFzIGEg bGlzdC4NCiBOb3QgYWN0dWFsbHkgc2V0IHVwIHVudGlsIHRoZSBmaXJzdCB0 aW1lIHlvdSB1c2UgaXQuIikNCiANCi0oZGVmdW4gcGFyc2UtY29sb24tcGF0 aCAoc2VhcmNoLXBhdGgpDQorKHJlcXVpcmUgJ2VudikNCisoZGVmdW4gbXlw YXJzZS1jb2xvbi1wYXRoMiAoc2VhcmNoLXBhdGgpDQogICAiRXhwbG9kZSBh IHNlYXJjaCBwYXRoIGludG8gYSBsaXN0IG9mIGRpcmVjdG9yeSBuYW1lcy4N CiBEaXJlY3RvcmllcyBhcmUgc2VwYXJhdGVkIGJ5IGBwYXRoLXNlcGFyYXRv cicgKHdoaWNoIGlzIGNvbG9uIGluDQogR05VIGFuZCBVbml4IHN5c3RlbXMp LiAgU3Vic3RpdHV0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW50byB0aGUN CkBAIC02NzUsMTAgKzY3NiwxMiBAQA0KIGEgbGVhZGluZyBvciB0cmFpbGlu ZyBzZXBhcmF0b3IsIG9yIHR3byBhZGphY2VudCBzZXBhcmF0b3JzKSwgcmV0 dXJuDQogbmlsIChtZWFuaW5nIGBkZWZhdWx0LWRpcmVjdG9yeScpIGFzIHRo ZSBhc3NvY2lhdGVkIGxpc3QgZWxlbWVudC4iDQogICAod2hlbiAoc3RyaW5n cCBzZWFyY2gtcGF0aCkNCi0gICAgKG1hcGNhciAobGFtYmRhIChmKQ0KLQkg ICAgICAoaWYgKGVxdWFsICIiIGYpIG5pbA0KLQkJKHN1YnN0aXR1dGUtaW4t ZmlsZS1uYW1lIChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5IGYpKSkpDQotCSAg ICAoc3BsaXQtc3RyaW5nIHNlYXJjaC1wYXRoIHBhdGgtc2VwYXJhdG9yKSkp KQ0KKyAgICAobGV0KiAoKHBhdGgtbGlzdCAgICAgICAgKG1hcGNhciAnc3Vi c3RpdHV0ZS1lbnYtdmFycyAoc3BsaXQtc3RyaW5nIHNlYXJjaC1wYXRoIHBh dGgtc2VwYXJhdG9yKSkpDQorICAgICAgICAgICAoc2VhcmNoLXBhdGgtc3Vi ICAobWFwY29uY2F0ICdpZGVudGl0eSBwYXRoLWxpc3QgcGF0aC1zZXBhcmF0 b3IpKSkNCisgICAgICAobWFwY2FyIChsYW1iZGEgKGYpDQorICAgICAgICAg ICAgICAgIChpZiAoZXF1YWwgIiIgZikgbmlsDQorICAgICAgICAgICAgICAg ICAgKGV4cGFuZC1maWxlLW5hbWUgKGZpbGUtbmFtZS1hcy1kaXJlY3Rvcnkg ZikpKSkNCisgICAgICAgICAgICAgIChzcGxpdC1zdHJpbmcgc2VhcmNoLXBh dGgtc3ViIHBhdGgtc2VwYXJhdG9yKSkpKSkNCiANCiAoZGVmdW4gY2QtYWJz b2x1dGUgKGRpcikNCiAgICJDaGFuZ2UgY3VycmVudCBkaXJlY3RvcnkgdG8g Z2l2ZW4gYWJzb2x1dGUgZmlsZSBuYW1lIERJUi4iDQo= --1468197610-1601033166-1441883742=:22763--