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

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

Re: eshell and jobs


From: Michael Spittel
Subject: Re: eshell and jobs
Date: 30 Jan 2003 15:03:49 -0600
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7

Thank you for your response John.  
Actually, when I inserted Kai's original suggested code in my .emacs
file, (see below), in eshell all I had to do was type

ec program inputfile &

and eshell gave me the fact that the jobs was running in a buffer called
*compilation*.  When it was done, it then told me in that same buffer
that the job was completed.

Kai's suggested code-------snip here-----------

 (defun eshell/ec (&rest args)                                              
   "Use `compile' to do background makes."                                  
   (if (eshell-interactive-output-p)                                        
       (let ((compilation-process-setup-function                            
          (list 'lambda nil                                                 
                (list 'setq 'process-environment                            
                      (list 'quote (eshell-copy-environment))))))           
     (compile (eshell-flatten-and-stringify args))                          
         (pop-to-buffer compilation-last-buffer))                           
     (throw 'eshell-replace-command                                         
            (let ((l (eshell-stringify-list (eshell-flatten-list args))))   
              (eshell-parse-command (car l) (cdr l))))))                    
 (put 'eshell/ec 'eshell-no-numeric-conversions t)                          
----------end of snip-------

But when I put in the code you suggested into my .emacs, eshell still
told me the job was done in the command line, and it did not create a
new buffer by the name of *eshell.job.finished*.  In other words, it
behaved as the eshell we all know and love :-)

I know I'm going to show my utter ignorance for elisp in the following
question, but is there anything inherently 'wrong' with using the code
that Kai suggested?

thanks
mike


John Wiegley <johnw@gnu.org> writes:
> You will have to rewrite `eshell-remove-process-entry', so that it
> inserts something into a buffer rather than calling message.  For
> example:
> 
> (defun eshell-remove-process-entry (entry)
>   "Record the process ENTRY as fully completed."
>   (if (and (eshell-processp (car entry))
>          (nth 2 entry)
>          eshell-done-messages-in-minibuffer)
>       (with-current-buffer (get-buffer-create "*eshell.job.finished*")
>         (insert (format "[%s]+ Done %s" (process-name (car entry))
>                        (process-command (car entry))))))
>   (setq eshell-process-list
>       (delq entry eshell-process-list)))
> 
> John

-- 
-Mike Spittel

--------------------------------------------------------------------
Michael Ludwig Spittel    O    (=> Center for Demography and Ecology
  Tel: (608) 256-7742   )/\_,_[__] University of Wisconsin-Madison  
  Fax: (608) 262-8400   T>_   |  | 1180 Observatory DR.             
Email: mspittel@ssc.wisc.edu  +  + Madison, WI  53706               
--------------------------------------------------------------------


reply via email to

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