all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* 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.