help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: shell-command in Windows 7


From: Eli Zaretskii
Subject: Re: shell-command in Windows 7
Date: Sat, 15 Apr 2017 11:30:48 +0300

> From: 42 147 <aeuster@gmail.com>
> Date: Sat, 15 Apr 2017 09:40:24 +0200
> 
> Two problems before:
> 
> (1) I got the error message
> 
> (Shell command failed with code 1 and no output)

That's because you are using shell-command to invoke Explorer, which
is a GUI program that continues to run in parallel with Emacs.  You
can ignore the exit status in this case.

> Even when the files / programs / directories would open as desired. This 
> was still undesirable buggy behavior.
> 
> (2) Each time I launched Emacs I had to switch to the other directory 
> string format to get back (1). This made no sense at all. To be specific:
> 
> (a) "E:\\Program Files\\Mozilla Firefox\\firefox.exe"
> 
> had to be switched to:
> 
> (b) "E:/Program Files/Mozilla Firefox/firefox.exe"
> 
> in the body of the code I cited in the first e-mail, if (a) was what I 
> had the previous Emacs launch. And (b) had to be switched back to (a) if 
> (b) was what I had the previous Emacs launch.

That doesn't happen to me in "emacs -Q", so it's most probable some of
your customizations that caused this.  In particular, there's no
"memory" in Emacs of the file names it used in invoking programs.

Btw, please note that what you write above is somewhat inconsistent:

  (defun firefox ()
     (interactive)
     (shell-command (concat "explorer " (replace-regexp-in-string "/" 
  "\\\\" "E:\\Program Files\\Mozilla Firefox\\firefox.exe" t t))))

First, I needed to use "\\", not "\\\\" in my testing, otherwise I get
an error.

Second, I'm not sure what you are saying, exactly.  Are you saying
that in one session you needed to use this:

  (defun firefox ()
     (interactive)
     (shell-command (concat "explorer " (replace-regexp-in-string "/" 
  "\\" "E:/Program Files/Mozilla Firefox/firefox.exe" t t))))

and in the next you needed to use this:

  (defun firefox ()
     (interactive)
     (shell-command (concat "explorer " (replace-regexp-in-string
  "\\\\" "/" "E:\\Program Files\\Mozilla Firefox\\firefox.exe" t t))))

?  That most probably means either some customization which records
the file name somewhere, or some weird shell tricks you have on your
system.  I cannot reproduce this here.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]