From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tino Calancha Subject: Bug 25.0: `parse-colon-path' deals with `//' diferently as unix systems Date: Thu, 10 Sep 2015 01:32:43 +0900 (JST) Message-ID: Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset=US-ASCII Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42095) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZiFj-0000HN-Ef for emacs-orgmode@gnu.org; Wed, 09 Sep 2015 12:29:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZZiFg-0002Il-Nn for emacs-orgmode@gnu.org; Wed, 09 Sep 2015 12:29:43 -0400 Received: from calancha-ilc.kek.jp ([130.87.234.234]:52051) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZiFg-0002IC-EZ for emacs-orgmode@gnu.org; Wed, 09 Sep 2015 12:29:40 -0400 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Cc: "C. Calancha" Current implementation use `substitute-in-file-name' which substitute environment variables; that function deal with '//' differently as expected on unix systems: In unix systems there is no difference between: I) /foo//bar/baz II) /foo/bar/baz but `substitute-in-file-name' will translate I) into: /bar/baz I found more sensible if 'parse-colon-path' would made no difference between I) and II). ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; In *scratch* buffer after started session with: emacs -Q (let ((foo "/home/user/soft/bin/:/usr/bin/:/usr/local/bin")) (setenv "FOO" foo) (parse-colon-path "$FOO")) ("/home/user/soft/bin/:/usr/bin/:/usr/local/bin/") (let ((foo "/home/user/soft/bin/:/usr/bin/:usr/local/bin/")) (setenv "FOO" foo) (parse-colon-path "$FOO")) ("/") (let ((foo "/home/user/soft//bin/:/usr/bin/:/usr/local/bin")) (setenv "FOO" foo) (parse-colon-path "$FOO")) ("/bin/:/usr/bin/:/usr/local/bin/") (let ((foo "/home/user/soft//bin/:/usr/bin/:/usr/local/bin/")) (setenv "FOO" foo) (parse-colon-path "$FOO")) ("/") (let ((foo "/home/user/soft/bin/:/usr/bin/")) (setenv "FOO" foo) (parse-colon-path (getenv "FOO"))) ("/home/user/soft/bin/" "/usr/bin/") (let* ((foo "/home/user") (bar "$FOO/soft/bin/:/usr/bin/")) (setenv "FOO" foo) (setenv "BAR" bar) (parse-colon-path (getenv "BAR"))) ("/home/user/soft/bin/" "/usr/bin/") (let* ((foo "/home/user/") (bar "$FOO/soft/bin/:/usr/bin/")) (setenv "FOO" foo) (setenv "BAR" bar) (parse-colon-path (getenv "BAR"))) ("/soft/bin/" "/usr/bin/") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Emacs : GNU Emacs 25.0.50.1 (x86_64-unknown-linux-gnu, X toolkit, Xaw scroll bars) of 2015-09-06 Package: Org-mode version 8.2.10 (release_8.2.10 @ /home/calancha/tmp/emacs_git/emacs/lisp/org/)