all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Re: About traditional Lisp primitives
       [not found] <mailman.21530.1362559820.855.help-gnu-emacs@gnu.org>
@ 2013-03-06 10:39 ` Barry Margolin
  2013-03-07 10:54   ` gvfs-open in eshell/shell-command Phillip Lord
  0 siblings, 1 reply; 5+ messages in thread
From: Barry Margolin @ 2013-03-06 10:39 UTC (permalink / raw)
  To: help-gnu-emacs

In article <mailman.21530.1362559820.855.help-gnu-emacs@gnu.org>,
 Xue Fuqiao <xfq.free@gmail.com> wrote:

> In (info "(elisp) Coding Conventions"):
> 
>       This recommendation applies even to names for traditional Lisp
>       primitives that are not primitives in Emacs Lisp--such as
>       `copy-list'.
> 
> I don't know what "traditional Lisp primitives" means here.  What are 
> the differences between traditional Lisp primitives and primitives in 
> Emacs Lisp?  Are they implemented in C?

What they mean is a function in a traditional Lisp dialect (e.g. Common 
Lisp or Maclisp) that doesn't exist in Emacs Lisp.  If you want to use 
such a function in your own package, you need to write it yourself -- 
and the recommendation is that you personalize it with a prefix, so you 
don't conflict with another package that has a similar need.

-- 
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***


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

* gvfs-open in eshell/shell-command
  2013-03-06 10:39 ` About traditional Lisp primitives Barry Margolin
@ 2013-03-07 10:54   ` Phillip Lord
  2013-03-12 13:48     ` Michael Albinus
       [not found]     ` <mailman.21924.1363096112.855.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 5+ messages in thread
From: Phillip Lord @ 2013-03-07 10:54 UTC (permalink / raw)
  To: help-gnu-emacs


I'm attempting to get gvfs-open to work in eshell. This is a little
gnome utility that opens a file in what ever application it's supposed
to be launched in. I use it frequently as I normally navigate
directories at the terminal, then use this to DWIM with a file. 

In *shell* this works fine. You just run the command, everybody is
happy. In *eshell* not a thing. Nothing pops up, nothing appears to
happen. 

M-x shell-command does work, although Emacs halts while whatever
application it launches exists. M-x shell-command with an "&" fails,
presumable for the same reason as *eshell* does. On the command line,
gvfs-open returns immediately, and does not block which the application
is open. So, clearly it's not eshell per se. I am guessing that child
processes are dying when gvfs-open closes. 

So far my best attempt is:

(defun eshell/open (&rest args)
  (shell-command (format "gvfs-open %s;sleep 3d &" 
                         (mapconcat 'identity args " "))))

Not good. 

Stuck, no ideas left, help gratefully recieved. 

Phil



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

* Re: gvfs-open in eshell/shell-command
  2013-03-07 10:54   ` gvfs-open in eshell/shell-command Phillip Lord
@ 2013-03-12 13:48     ` Michael Albinus
       [not found]     ` <mailman.21924.1363096112.855.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 5+ messages in thread
From: Michael Albinus @ 2013-03-12 13:48 UTC (permalink / raw)
  To: Phillip Lord; +Cc: help-gnu-emacs

phillip.lord@newcastle.ac.uk (Phillip Lord) writes:

> I'm attempting to get gvfs-open to work in eshell. This is a little
> gnome utility that opens a file in what ever application it's supposed
> to be launched in. I use it frequently as I normally navigate
> directories at the terminal, then use this to DWIM with a file. 
>
> In *shell* this works fine. You just run the command, everybody is
> happy. In *eshell* not a thing. Nothing pops up, nothing appears to
> happen. 

Try in both *shell* and *eshell* the command with debug output:

G_DBUS_DEBUG=all gvfs-open ~/.emacs

When you compare the output, it starts to differ significantly when it
comes to file descriptors. I have no clue, why. Maybe you can find
something more.

> So far my best attempt is:
>
> (defun eshell/open (&rest args)
>   (shell-command (format "gvfs-open %s;sleep 3d &" 
>                          (mapconcat 'identity args " "))))
>
> Not good. 

When I wrap the gvfs-open call into a shell in eshell, I get

~ $ *sh -c gvfs-open ~/.emacs
gvfs-open: missing locations
Try "gvfs-open --help" for more information.

I don't know gvfs-open by heart, and I also don't know whether this is
related to the problem.

> Stuck, no ideas left, help gratefully recieved. 
>
> Phil

Best regards, Michael.



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

* Re: gvfs-open in eshell/shell-command
       [not found]     ` <mailman.21924.1363096112.855.help-gnu-emacs@gnu.org>
@ 2013-03-14 17:42       ` politza
  2013-03-18 12:19         ` Phillip Lord
  0 siblings, 1 reply; 5+ messages in thread
From: politza @ 2013-03-14 17:42 UTC (permalink / raw)
  To: gnu.emacs.help; +Cc: help-gnu-emacs, Phillip Lord

On Tuesday, March 12, 2013 2:48:12 PM UTC+1, Michael Albinus wrote:
> phillip.lord@newcastle.ac.uk (Phillip Lord) writes:
> 
> 
> 
> > I'm attempting to get gvfs-open to work in eshell.

Try setting/letting `process-connection-type' to nil .

-ap



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

* Re: gvfs-open in eshell/shell-command
  2013-03-14 17:42       ` politza
@ 2013-03-18 12:19         ` Phillip Lord
  0 siblings, 0 replies; 5+ messages in thread
From: Phillip Lord @ 2013-03-18 12:19 UTC (permalink / raw)
  To: politza; +Cc: help-gnu-emacs, gnu.emacs.help

<politza@googlemail.com> writes:

> On Tuesday, March 12, 2013 2:48:12 PM UTC+1, Michael Albinus wrote:
>> phillip.lord@newcastle.ac.uk (Phillip Lord) writes:
>> 
>> 
>> 
>> > I'm attempting to get gvfs-open to work in eshell.
>
> Try setting/letting `process-connection-type' to nil .

;; process-connection-type is essential or nothing works. What it does? No idea.
(defun eshell/open (&rest args)
  ;; need a delay in here or it doesn't work. Why? No idea!
  (let ((process-connection-type nil))
    (setq proc (start-process "eshell-open"
                              phil-eshell-buffer
                              shell-file-name shell-command-switch
                              (format "gvfs-open %s" 
                                      (mapconcat 'identity args " ")))))
  (set-process-sentinel proc 'phil-open-sentinel)
  (set-process-filter proc 'comint-output-filter))

(defun phil-open-sentinel (&rest args)
  )


And this works perfectly. So, yes, process-connection-type seems to be
the trick. Thanks very much for the suggestion. 

Phil



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

end of thread, other threads:[~2013-03-18 12:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <mailman.21530.1362559820.855.help-gnu-emacs@gnu.org>
2013-03-06 10:39 ` About traditional Lisp primitives Barry Margolin
2013-03-07 10:54   ` gvfs-open in eshell/shell-command Phillip Lord
2013-03-12 13:48     ` Michael Albinus
     [not found]     ` <mailman.21924.1363096112.855.help-gnu-emacs@gnu.org>
2013-03-14 17:42       ` politza
2013-03-18 12:19         ` Phillip Lord

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.