michael.cadilhac@lrde.org (Michaël Cadilhac) writes: > michael.cadilhac@lrde.org (Michaël Cadilhac) writes: > >> Recipe: >> In your ~, you have a directory `helloworld' in which there's a file >> called `foobarbaz'. You don't have a directory named `demaille'. >> >> $ emacs -Q >> M-x partial-completion-mode RET >> C-x C-f ~/demaille/akim RET >> (message: Use M-x make-directory RET RET to create the directory and >> its parents) >> >> C-x C-f ~/hell/foo TAB >> (*error*: shell-command: Setting current directory: no such file or >> directory, /home/micha/demaille) >> >> >> This is due to a call to `call-process' within a buffer created after >> the `akim' one, from which it takes its default directory. >> >> I propose the following change, which AFAICT, fixes the bug: > Sorry for the noise, but I still got this funny error, say, once per week :-) Anyone for a review? > Index: lisp/ChangeLog > =================================================================== > RCS file: /sources/emacs/emacs/lisp/ChangeLog,v > retrieving revision 1.9661 > diff -c -r1.9661 ChangeLog > *** lisp/ChangeLog 1 Jun 2006 06:42:07 -0000 1.9661 > --- lisp/ChangeLog 5 Jun 2006 23:51:00 -0000 > *************** > *** 1,3 **** > --- 1,8 ---- > + 2006-06-06 Michaël Cadilhac > + > + * complete.el (PC-expand-many-files): Go to the home directory > + before `shell-command' if the default one is not executable. > + > 2006-06-01 Jan Djärv > > * term/x-win.el: Change x-menu-bar-start to menu-bar-open. > Index: lisp/complete.el > =================================================================== > RCS file: /sources/emacs/emacs/lisp/complete.el,v > retrieving revision 1.53 > diff -c -r1.53 complete.el > *** lisp/complete.el 22 May 2006 18:09:40 -0000 1.53 > --- lisp/complete.el 5 Jun 2006 23:51:00 -0000 > *************** > *** 778,783 **** > --- 778,785 ---- > (defun PC-expand-many-files (name) > (with-current-buffer (generate-new-buffer " *Glob Output*") > (erase-buffer) > + (unless (file-executable-p default-directory) > + (setq default-directory "~/")) > (shell-command (concat "echo " name) t) > (goto-char (point-min)) > ;; CSH-style shells were known to output "No match", whereas -- | Michaël `Micha' Cadilhac | All your base are belong to us. | | Epita/LRDE Promo 2007 | You have no change to survive | | http://www.lrde.org/~cadilh_m | make your time, hahaha. | `-- - JID: micha@amessage.be --' -- Zero Wings - --'