unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Dired shell command on file asymchronously
@ 2005-06-23 22:13 Luis O. Silva
  2005-06-24 11:42 ` Emilio Lopes
  0 siblings, 1 reply; 9+ messages in thread
From: Luis O. Silva @ 2005-06-23 22:13 UTC (permalink / raw)


Dear Emacs community,

Goal:
Being in Dired mode I want to apply a shell command to a file
asynchronously.

Details:
I'm using the extension dired-x.el, Emacs 21.2.1. When in
Dired mode I use dired-do-shell-command for launching xdvi on
a .dvi file. I want to use Emacs further while browsing the
xdvi window, but that is impossible since Emacs waits until
the xdvi process is terminated.

Thank you very much in advance for any help.
luis

-- 
Luis Octavio Silva Pereyra.
IIMAS-UNAM
Depto. de Métodos Matemáticos y Numéricos
Apdo. postal 20-726
01000 México, D.F.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Dired shell command on file asymchronously
  2005-06-23 22:13 Dired shell command on file asymchronously Luis O. Silva
@ 2005-06-24 11:42 ` Emilio Lopes
  0 siblings, 0 replies; 9+ messages in thread
From: Emilio Lopes @ 2005-06-24 11:42 UTC (permalink / raw)


Luis O. Silva <l.o.silva <at> mail.ru> writes:

> I'm using the extension dired-x.el, Emacs 21.2.1. When in
> Dired mode I use dired-do-shell-command for launching xdvi on
> a .dvi file. I want to use Emacs further while browsing the
> xdvi window, but that is impossible since Emacs waits until
> the xdvi process is terminated.

Append an ampersand ("&") to the command, e.g. "xdvi * &"

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Dired shell command on file asymchronously
       [not found] <mailman.1007.1119560755.2857.help-gnu-emacs@gnu.org>
@ 2005-06-24 12:59 ` Josef.Bauer.NOSPAM
       [not found]   ` <mailman.1102.1119633137.2857.help-gnu-emacs@gnu.org>
  2005-06-24 18:10   ` Luis O. Silva
  2005-06-24 13:06 ` asymchronously Dan Elliott
  1 sibling, 2 replies; 9+ messages in thread
From: Josef.Bauer.NOSPAM @ 2005-06-24 12:59 UTC (permalink / raw)
  Cc: l.o.silva

>>>>> "Luis" == Luis O Silva <l.o.silva@mail.ru> writes:

    Luis> Dear Emacs community, Goal: Being in Dired mode I want to
    Luis> apply a shell command to a file asynchronously.

Hi,

maybe check out my post

 http://groups.google.de/group/gnu.emacs.sources/browse_thread/thread/74f5eef321a64b60/a0bf8a70d3b85ab5?q=dired-do-shell-command-in-background&rnum=1&hl=de#a0bf8a70d3b85ab5

or search for 

 dired-do-shell-command-in-background

in google groups.

Best regards

Josef

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: asymchronously
       [not found] <mailman.1007.1119560755.2857.help-gnu-emacs@gnu.org>
  2005-06-24 12:59 ` Dired shell command on file asymchronously Josef.Bauer.NOSPAM
@ 2005-06-24 13:06 ` Dan Elliott
  2005-06-24 18:17   ` asymchronously Luis O. Silva
  1 sibling, 1 reply; 9+ messages in thread
From: Dan Elliott @ 2005-06-24 13:06 UTC (permalink / raw)


Luis O. Silva wrote:
> Dear Emacs community,
> 
> Goal:
> Being in Dired mode I want to apply a shell command to a file
> asynchronously.
> 
> Details:
> I'm using the extension dired-x.el, Emacs 21.2.1. When in
> Dired mode I use dired-do-shell-command for launching xdvi on
> a .dvi file. I want to use Emacs further while browsing the
> xdvi window, but that is impossible since Emacs waits until
> the xdvi process is terminated.

When I perform a shell command on files, etc. in emacs, I just put a & 
after the command.  This may be to simplistic, but it seems to work.

- dan

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Dired shell command on file asymchronously
       [not found]   ` <mailman.1102.1119633137.2857.help-gnu-emacs@gnu.org>
@ 2005-06-24 17:43     ` Josef.Bauer.NOSPAM
  2005-06-24 21:19       ` Kevin Rodgers
       [not found]       ` <mailman.1131.1119648589.2857.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 9+ messages in thread
From: Josef.Bauer.NOSPAM @ 2005-06-24 17:43 UTC (permalink / raw)


Hi,

I just found that I added a minor improvement in the meantime. Using
'shell-quote-argument' file names with spaces and such are working.

Here is the new version:

;-----------------------------------------------------------------
(defun dired-do-shell-command-in-background (command)
  "In dired, do shell command in background on the file or directory named on this line."
  (interactive
   (list (dired-read-shell-command (concat "& on " "%s: ") nil (list (dired-get-filename)))))
  (call-process command nil 0 nil (shell-quote-argument (dired-get-filename))))

(add-hook 'dired-load-hook
	  (function (lambda ()
		      (load "dired-x")
		      (define-key dired-mode-map "&" 'dired-do-shell-command-in-background))))

(setq dired-guess-shell-alist-user
      (list (list "\\.wav$" "snack") (list "\\.au$" "snack")
	    (list "\\.doc$" "OOo" ) (list "\\.xls$" "OOo")))
;-----------------------------------------------------------------

Greetings

Josef

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Dired shell command on file asymchronously
  2005-06-24 12:59 ` Dired shell command on file asymchronously Josef.Bauer.NOSPAM
       [not found]   ` <mailman.1102.1119633137.2857.help-gnu-emacs@gnu.org>
@ 2005-06-24 18:10   ` Luis O. Silva
  1 sibling, 0 replies; 9+ messages in thread
From: Luis O. Silva @ 2005-06-24 18:10 UTC (permalink / raw)


Hi Josef,

Thank you for your message (24 Jun 2005 14:59:55 +0200), in
which, among other things, you wrote[1]:

   JB> maybe check out my post

   JB> http://groups.google.de/group/gnu.emacs.sources/browse_thread/thread/74f5eef321a64b60/a0bf8a70d3b85ab5?q=dired-do-shell-command-in-background&rnum=1&hl=de#a0bf8a70d3b85ab5

   JB> or search for

   JB>  dired-do-shell-command-in-background

   JB> in google groups.

this seems to be what I needed. Thank you very much. I'll test
your code today.

Thank you,
luis


Footnotes:
[1] The excerpts of your message are prefixed by "JB>".

-- 
Luis Octavio Silva Pereyra.
IIMAS-UNAM
Depto. de Métodos Matemáticos y Numéricos
Apdo. postal 20-726
01000 México, D.F.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: asymchronously
  2005-06-24 13:06 ` asymchronously Dan Elliott
@ 2005-06-24 18:17   ` Luis O. Silva
  0 siblings, 0 replies; 9+ messages in thread
From: Luis O. Silva @ 2005-06-24 18:17 UTC (permalink / raw)


Hi Dan,

Thank you for your message (Fri, 24 Jun 2005 08:06:26 -0500),
in which, among other things, you wrote[1]:

   >> Details: I'm using the extension dired-x.el, Emacs
   >> 21.2.1. When in Dired mode I use dired-do-shell-command
   >> for launching xdvi on a .dvi file. I want to use Emacs
   >> further while browsing the xdvi window, but that is
   >> impossible since Emacs waits until the xdvi process is
   >> terminated.

   Dan> When I perform a shell command on files, etc. in
   Dan> emacs, I just put a & after the command.  This may be
   Dan> to simplistic, but it seems to work.

Thank you for the suggestion. As Josef explain in post:

 http://groups.google.de/group/gnu.emacs.sources/browse_thread/thread/74f5eef321a64b60/a0bf8a70d3b85ab5?q=dired-do-shell-command-in-background&rnum=1&hl=de#a0bf8a70d3b85ab5

this solves the problem just partially. Here I also thank
Emilio for a similar suggestion.

Best regards,
luis



Footnotes:
[1] The excerpts of your message are prefixed by "Dan>".

-- 
Luis Octavio Silva Pereyra.
IIMAS-UNAM
Depto. de Métodos Matemáticos y Numéricos
Apdo. postal 20-726
01000 México, D.F.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Dired shell command on file asymchronously
  2005-06-24 17:43     ` Josef.Bauer.NOSPAM
@ 2005-06-24 21:19       ` Kevin Rodgers
       [not found]       ` <mailman.1131.1119648589.2857.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 9+ messages in thread
From: Kevin Rodgers @ 2005-06-24 21:19 UTC (permalink / raw)


Josef.Bauer.NOSPAM@web.de wrote:
 > I just found that I added a minor improvement in the meantime. Using
 > 'shell-quote-argument' file names with spaces and such are working.
 >
 > Here is the new version:
 >
 > ;-----------------------------------------------------------------
 > (defun dired-do-shell-command-in-background (command)
 >   "In dired, do shell command in background on the file or directory 
named on this line."
 >   (interactive
 >    (list (dired-read-shell-command (concat "& on " "%s: ") nil (list 
(dired-get-filename)))))
 >   (call-process command nil 0 nil (shell-quote-argument 
(dired-get-filename))))

That doesn't make sense to me.  call-process passes its &rest ARGS
directly to PROGRAM, without any word-splitting etc. by the shell.  So
shell-quote-argument is unecessary, and in fact could introduce quoting
characters that would be interpreted as part of the file name.

If COMMAND is actually a shell command (i.e. with redirection operators
etc.) then you must use shell-command instead of call-process.  If it is
just a program, then using call-process is fine -- but again, using
shell-quote-argument with it is not.

-- 
Kevin Rodgers

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Dired shell command on file asymchronously
       [not found]       ` <mailman.1131.1119648589.2857.help-gnu-emacs@gnu.org>
@ 2005-06-27 12:54         ` Josef.Bauer.NOSPAM
  0 siblings, 0 replies; 9+ messages in thread
From: Josef.Bauer.NOSPAM @ 2005-06-27 12:54 UTC (permalink / raw)


    Josef> (call-process command nil 0 nil (shell-quote-argument
    Josef> (dired-get-filename))))

    Kevin> That doesn't make sense to me.  call-process passes its
    Kevin> &rest ARGS directly to PROGRAM, without any word-splitting
    Kevin> etc. by the shell.  So shell-quote-argument is unecessary,
    Kevin> and in fact could introduce quoting characters that would
    Kevin> be interpreted as part of the file name.

I think you are right: It works better without the
shell-quote-argument. Please excuse that mistake --- I told you I'm
far from a lisp guru!

Always trying to avoid such things like spaces in filenames I don't
need this very often. I think I had a case where it worked with the
shell-quote-argument but I can't remember what it was.

Best regards

Josef

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2005-06-27 12:54 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <mailman.1007.1119560755.2857.help-gnu-emacs@gnu.org>
2005-06-24 12:59 ` Dired shell command on file asymchronously Josef.Bauer.NOSPAM
     [not found]   ` <mailman.1102.1119633137.2857.help-gnu-emacs@gnu.org>
2005-06-24 17:43     ` Josef.Bauer.NOSPAM
2005-06-24 21:19       ` Kevin Rodgers
     [not found]       ` <mailman.1131.1119648589.2857.help-gnu-emacs@gnu.org>
2005-06-27 12:54         ` Josef.Bauer.NOSPAM
2005-06-24 18:10   ` Luis O. Silva
2005-06-24 13:06 ` asymchronously Dan Elliott
2005-06-24 18:17   ` asymchronously Luis O. Silva
2005-06-23 22:13 Dired shell command on file asymchronously Luis O. Silva
2005-06-24 11:42 ` Emilio Lopes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).