GNU bug report logs -
#5808
23.1; substitute-in-file-name $NOSUCH vs ${NOSUCH}
Previous Next
Reported by: Kevin Ryde <user42 <at> zip.com.au>
Date: Wed, 31 Mar 2010 00:19:01 UTC
Severity: minor
Found in versions 23.4, 24.3
Fixed in version 24.5
Done: npostavs <at> users.sourceforge.net
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 5808 in the body.
You can then email your comments to 5808 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#5808
; Package
emacs
.
(Wed, 31 Mar 2010 00:19:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Kevin Ryde <user42 <at> zip.com.au>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Wed, 31 Mar 2010 00:19:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Evaluating
(substitute-in-file-name "$NOSUCHVAR")
=> "$NOSUCHVAR
but
(substitute-in-file-name "${NOSUCHVAR}")
=> error
Substituting nonexistent environment variable "NOSUCHVAR"
whereas I thought the two ways of writing a variable would be treated
the same.
I'm not sure if this is a bug or a feature. I see they were both errors
in Emacs 21, but that 22 up forgives the first.
If a feature then it'd be good if the docstring had a note explaining
the difference. I'd used then first and then got bitten from the second
throwing an error.
The docstring might also note unpaired braces are an error
(substitute-in-file-name "${HOME")
=> error
primarily in the interests of knowing what circumstances you might have
to condition-case or ignore-errors.
In GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.16.5)
of 2009-09-14 on raven, modified by Debian
configured using `configure '--build=i486-linux-gnu' '--host=i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.1/leim' '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS=''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_AU
value of $XMODIFIERS: nil
locale-coding-system: iso-latin-1-unix
default-enable-multibyte-characters: t
Information forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#5808
; Package
emacs
.
(Wed, 31 Mar 2010 01:30:04 GMT)
Full text and
rfc822 format available.
Message #8 received at 5808 <at> debbugs.gnu.org (full text, mbox):
> Evaluating
> (substitute-in-file-name "$NOSUCHVAR")
> => "$NOSUCHVAR
> but
> (substitute-in-file-name "${NOSUCHVAR}")
> => error
> Substituting nonexistent environment variable "NOSUCHVAR"
[...]
> I'm not sure if this is a bug or a feature. I see they were both errors
> in Emacs 21, but that 22 up forgives the first.
I made the change in Emacs-22 so that most uses of $ in file names can
work without needing the quoting by double-dollars.
It was a fairly easy change which should cover most cases. Admittedly,
the resulting inconsistency is not great, so I guess that the
discrepancy is a misfeature/bug, but it's not very high up the list of
things to fix. Patches welcome,
Stefan
Severity set to 'minor' from 'normal'
Request was from
Glenn Morris <rgm <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Wed, 31 Mar 2010 18:01:01 GMT)
Full text and
rfc822 format available.
Information forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#5808
; Package
emacs
.
(Sat, 03 Apr 2010 00:03:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 5808 <at> debbugs.gnu.org (full text, mbox):
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
>
> I made the change in Emacs-22 so that most uses of $ in file names can
> work without needing the quoting by double-dollars.
Sounds likely.
> Admittedly,
> the resulting inconsistency is not great, so I guess that the
> discrepancy is a misfeature/bug,
Unless it's thought of as ${FOO} is certainly an expansion, whereas $FOO
is instead maybe an expansion and maybe a literal $, such as on VMS, is
it?
If the docstring described the way it worked that'd be enough.
bug Marked as found in versions 23.4.
Request was from
npostavs <at> users.sourceforge.net
to
control <at> debbugs.gnu.org
.
(Fri, 01 Jul 2016 03:36:01 GMT)
Full text and
rfc822 format available.
bug Marked as found in versions 24.3.
Request was from
npostavs <at> users.sourceforge.net
to
control <at> debbugs.gnu.org
.
(Fri, 01 Jul 2016 03:36:01 GMT)
Full text and
rfc822 format available.
bug marked as fixed in version 24.5, send any further explanations to
5808 <at> debbugs.gnu.org and Kevin Ryde <user42 <at> zip.com.au>
Request was from
npostavs <at> users.sourceforge.net
to
control <at> debbugs.gnu.org
.
(Fri, 01 Jul 2016 03:36:01 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Fri, 29 Jul 2016 11:24:03 GMT)
Full text and
rfc822 format available.
This bug report was last modified 9 years and 19 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.