unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Detecting active server from the shell
@ 2007-08-14 21:59 adrian
  2007-08-15  9:23 ` Emilio Lopes
  0 siblings, 1 reply; 2+ messages in thread
From: adrian @ 2007-08-14 21:59 UTC (permalink / raw)
  To: help-gnu-emacs

I upgraded to emacs 22.1.1.  I have been using a script that I derived
from the emacs.bash script which comes with emacs.   My old script's
test for the presence of an emacs server fails.  The script packaged
with my new emacs installation doesn't work either.  The file /tmp/
emacs${UID}/server ALWAYS exists, even after I shut down emacs.  So
the script always runs the client even when no server is present.

How can I tell if there is an active server?


## This defines a bash command named `edit' which contacts/resumes an
## existing emacs or starts a new one if none exists.

## One way or another, any arguments are passed to emacs to specify
files
## (provided you have loaded `resume.el').

## This function assumes the emacs program is named `emacs' and is
somewhere
## in your load path.  If either of these is not true, the most
portable
## (and convenient) thing to do is to make an alias called emacs which
## refers to the real program, e.g.
##
##        alias emacs=/usr/local/bin/gemacs

function edit ()
{
 local windowsys="${WINDOW_PARENT+sun}"

 windowsys="${windowsys:-${DISPLAY+x}}"

 if [ -n "${windowsys:+set}" ]; then
    # Do not just test if these files are sockets.  On some systems
    # ordinary files or fifos are used instead.  Just see if they
exist.
    if [ -e "${HOME}/.emacs_server" -o -e "/tmp/emacs${UID}/server" ];
then
       emacsclient "$@"
       return $?
    else
       echo "edit: starting emacs in background..." 1>&2
    fi

    case "${windowsys}" in
      x ) (emacs "$@" &) ;;
      sun ) (emacstool "$@" &) ;;
    esac
 else
    if jobs %emacs 2> /dev/null ; then
       echo "$(pwd)" "$@" >| ${HOME}/.emacs_args && fg %emacs
    else
       emacs "$@"
    fi
 fi
}


# arch-tag: 1e1b74b9-bf2c-4b23-870f-9eebff7515cb
### emacs.bash ends here
~
~

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

* Re: Detecting active server from the shell
  2007-08-14 21:59 Detecting active server from the shell adrian
@ 2007-08-15  9:23 ` Emilio Lopes
  0 siblings, 0 replies; 2+ messages in thread
From: Emilio Lopes @ 2007-08-15  9:23 UTC (permalink / raw)
  To: help-gnu-emacs

adrian@cam cornell edu writes:

> How can I tell if there is an active server?

You can ask the server to evaluate "t" and see if you get the expected
answer.  Or test for the exit code of the client.

   % emacsclient --eval t
   t

-- 
Emílio C. Lopes
Munich, Germany

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

end of thread, other threads:[~2007-08-15  9:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-14 21:59 Detecting active server from the shell adrian
2007-08-15  9:23 ` 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).