[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#12351: 24.1; parse-colon-path turns empty paths into nil
From: |
Dave Abrahams |
Subject: |
bug#12351: 24.1; parse-colon-path turns empty paths into nil |
Date: |
Sun, 30 Dec 2012 22:11:19 -0500 |
User-agent: |
Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.2 (darwin) |
on Sun Dec 30 2012, Wolfgang Jenkner <wjenkner-AT-inode.at> wrote:
> On Sun, Dec 30 2012, Dave Abrahams wrote:
>
>> The following function is buggy because of the original bug:
>>
>> (defun osx-plist-update-exec-path ()
>> "Update `exec-path' from the PATH environment variable."
>> (let ((path (getenv "PATH")))
>> (mapc (lambda (dir)
>> (add-to-list 'exec-path dir))
>> (parse-colon-path path)))
>> exec-path)
>>
>> I had to replace it in my local installation as follows:
>>
>> (defun osx-plist-update-exec-path ()
>> "Update `exec-path' from the PATH environment variable."
>> (let ((path (delq nil (parse-colon-path (getenv "PATH")))))
>> (setq exec-path
>> (dolist (dir exec-path path)
>> (add-to-list 'path (file-name-as-directory dir) :append)))))
>
> But the first function exhibited a bug only with an empty component in
> the path. So I'd guess that nil ought to be replaced by "." instead of
> being deleted from the list.
No, that would be wrong. Every OS I know of treats empty elements in
"colon paths" (semicolon paths on Windows) differently from elements
that are "."
> If the second function gives the correct result that means that
> exec-path already contained "." before the call.
>
> And in any case, wouldn't the trivial patch (relative to trunk) below do
> the right thing here?
>
> Confused,
>
> Wolfgang
>
> === modified file 'lisp/files.el'
> --- lisp/files.el 2012-12-17 15:51:49 +0000
> +++ lisp/files.el 2012-12-31 01:00:47 +0000
> @@ -664,7 +664,7 @@
> (when (stringp search-path)
> (mapcar (lambda (f)
> (substitute-in-file-name (file-name-as-directory f)))
> - (split-string search-path path-separator t))))
> + (split-string search-path path-separator))))
>
> (defun cd-absolute (dir)
> "Change current directory to given absolute file name DIR."
It depends whether you think the "right thing" is the old behavior or
the documented behavior or something else.
--
Dave Abrahams
BoostPro Computing Software Development Training
http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Glenn Morris, 2012/12/30
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Dave Abrahams, 2012/12/30
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Eli Zaretskii, 2012/12/30
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Dave Abrahams, 2012/12/30
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Andreas Schwab, 2012/12/30
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Dave Abrahams, 2012/12/30
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Glenn Morris, 2012/12/31
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Dave Abrahams, 2012/12/31
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Andreas Schwab, 2012/12/31
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Wolfgang Jenkner, 2012/12/30
- bug#12351: 24.1; parse-colon-path turns empty paths into nil,
Dave Abrahams <=
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Glenn Morris, 2012/12/31
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Glenn Morris, 2012/12/31
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Dave Abrahams, 2012/12/31
- bug#12351: 24.1; parse-colon-path turns empty paths into nil, Wolfgang Jenkner, 2012/12/31