* bug#5771: 23.1; compile command with cd to new dir
@ 2010-03-25 22:27 Kevin Ryde
2010-03-28 19:53 ` Chong Yidong
2010-03-31 0:14 ` Kevin Ryde
0 siblings, 2 replies; 3+ messages in thread
From: Kevin Ryde @ 2010-03-25 22:27 UTC (permalink / raw)
To: 5771
Evaluating
(compile "mkdir /tmp/newdir;\n cd /tmp/newdir;\n echo hi")
gets an emacs error
=> /tmp/newdir/: no such directory
and doesn't run the command. I hoped that no matter what the command
string contains that emacs would start it.
I suppose `compilation-start' attempts to set default-directory to the
cd it sees, but doesn't notice the command itself will create it.
A similar thing happens if you've got a hairy shell expression in the
cd,
(compile "cd ${FOO:-${BAR}};\n echo hi")
=> emacs error
I suppose in this case the expression is more than substitute-env-vars
understands.
I think if the apparent directory in a command doesn't exist then
compilation-start shouldn't try to use it.
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#5771: 23.1; compile command with cd to new dir
2010-03-25 22:27 bug#5771: 23.1; compile command with cd to new dir Kevin Ryde
@ 2010-03-28 19:53 ` Chong Yidong
2010-03-31 0:14 ` Kevin Ryde
1 sibling, 0 replies; 3+ messages in thread
From: Chong Yidong @ 2010-03-28 19:53 UTC (permalink / raw)
To: Kevin Ryde; +Cc: 5771
> (compile "mkdir /tmp/newdir;\n cd /tmp/newdir;\n echo hi")
>
> gets an emacs error
>
> => /tmp/newdir/: no such directory
>
> and doesn't run the command. I hoped that no matter what the command
> string contains that emacs would start it.
The problem was that compile had this faulty regexp test:
(string-match "^\\s *cd\\(?:\\s +\\(\\S +?\\)\\)?\\s *[;&\n]" command)
The `^' matches characters after newlines, which is not what's intended;
we want to match only the beginning of the string, with `\''. I've
checked in a fix; thanks for the bug report.
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#5771: 23.1; compile command with cd to new dir
2010-03-25 22:27 bug#5771: 23.1; compile command with cd to new dir Kevin Ryde
2010-03-28 19:53 ` Chong Yidong
@ 2010-03-31 0:14 ` Kevin Ryde
1 sibling, 0 replies; 3+ messages in thread
From: Kevin Ryde @ 2010-03-31 0:14 UTC (permalink / raw)
To: 5771; +Cc: Chong Yidong
Chong Yidong <cyd@stupidchicken.com> writes:
>
> The `^' matches characters after newlines, which is not what's intended;
Really? I suppose the changelog entry reads like that (ChangeLog.11
2004-09-12 Daniel Pfeiffer). You'd be very tempted to allow a "cd"
after simple stuff like an echo though.
> I've checked in a fix; thanks for the bug report.
The second case too, with a hairy shell expression in the cd? Just
enough that the command is started of course, no need to worry if it
does anything good or bad.
(Apologies for not trying it myself, the bloat of bizaare makes the head
inaccessible to the peasants :-(
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-03-31 0:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-25 22:27 bug#5771: 23.1; compile command with cd to new dir Kevin Ryde
2010-03-28 19:53 ` Chong Yidong
2010-03-31 0:14 ` Kevin Ryde
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.