diff options
| author | Dave Love | 1999-10-03 12:39:42 +0000 |
|---|---|---|
| committer | Dave Love | 1999-10-03 12:39:42 +0000 |
| commit | a933dad155af89ff3e97634c07aa09f9df0fb2b3 (patch) | |
| tree | 43be918d0d87dc41c6051df657247209b1736c82 /etc/emacs.bash | |
| parent | a7bfd66f45c12ca1b8c158b44c57dc56de13654c (diff) | |
| download | emacs-a933dad155af89ff3e97634c07aa09f9df0fb2b3.tar.gz emacs-a933dad155af89ff3e97634c07aa09f9df0fb2b3.zip | |
#
Diffstat (limited to 'etc/emacs.bash')
| -rw-r--r-- | etc/emacs.bash | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/etc/emacs.bash b/etc/emacs.bash new file mode 100644 index 00000000000..f47ba6e9ec4 --- /dev/null +++ b/etc/emacs.bash | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | # This defines a bash command named `edit' which contacts/resumes an | ||
| 2 | # existing emacs or starts a new one if none exists. | ||
| 3 | # | ||
| 4 | # One way or another, any arguments are passed to emacs to specify files | ||
| 5 | # (provided you have loaded `resume.el'). | ||
| 6 | # | ||
| 7 | # This function assumes the emacs program is named `emacs' and is somewhere | ||
| 8 | # in your load path. If either of these is not true, the most portable | ||
| 9 | # (and convenient) thing to do is to make an alias called emacs which | ||
| 10 | # refers to the real program, e.g. | ||
| 11 | # | ||
| 12 | # alias emacs=/usr/local/bin/gemacs | ||
| 13 | # | ||
| 14 | # Written by Noah Friedman. | ||
| 15 | |||
| 16 | function edit () | ||
| 17 | { | ||
| 18 | local windowsys="${WINDOW_PARENT+sun}" | ||
| 19 | |||
| 20 | windowsys="${windowsys:-${DISPLAY+x}}" | ||
| 21 | |||
| 22 | if [ -n "${windowsys:+set}" ]; then | ||
| 23 | # Do not just test if these files are sockets. On some systems | ||
| 24 | # ordinary files or fifos are used instead. Just see if they exist. | ||
| 25 | if [ -e "${HOME}/.emacs_server" -o -e "/tmp/esrv${UID}-"* ]; then | ||
| 26 | emacsclient "$@" | ||
| 27 | return $? | ||
| 28 | else | ||
| 29 | echo "edit: starting emacs in background..." 1>&2 | ||
| 30 | fi | ||
| 31 | |||
| 32 | case "${windowsys}" in | ||
| 33 | x ) (emacs "$@" &) ;; | ||
| 34 | sun ) (emacstool "$@" &) ;; | ||
| 35 | esac | ||
| 36 | else | ||
| 37 | if jobs %emacs 2> /dev/null ; then | ||
| 38 | echo "$(pwd)" "$@" >| ${HOME}/.emacs_args && fg %emacs | ||
| 39 | else | ||
| 40 | emacs "$@" | ||
| 41 | fi | ||
| 42 | fi | ||
| 43 | } | ||
| 44 | |||
| 45 | |||