aboutsummaryrefslogtreecommitdiffstats
path: root/etc/emacs.csh
diff options
context:
space:
mode:
authorDave Love <[email protected]>1999-10-03 12:39:42 +0000
committerDave Love <[email protected]>1999-10-03 12:39:42 +0000
commita933dad155af89ff3e97634c07aa09f9df0fb2b3 (patch)
tree43be918d0d87dc41c6051df657247209b1736c82 /etc/emacs.csh
parenta7bfd66f45c12ca1b8c158b44c57dc56de13654c (diff)
#
Diffstat (limited to 'etc/emacs.csh')
-rw-r--r--etc/emacs.csh25
1 files changed, 25 insertions, 0 deletions
diff --git a/etc/emacs.csh b/etc/emacs.csh
new file mode 100644
index 0000000000..f25404ef86
--- /dev/null
+++ b/etc/emacs.csh
@@ -0,0 +1,25 @@
+# This defines a csh command named `edit' which 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').
+# - Michael DeCorte
+
+# These are the possible values of $whichjob
+# 1 = new ordinary emacs (the -nw is so that it doesn't try to do X)
+# 2 = resume emacs
+# 3 = new emacs under X (-i is so that you get a reasonable icon)
+# 4 = resume emacs under X
+# 5 = new emacs under suntools
+# 6 = resume emacs under suntools
+# 7 = new emacs under X and suntools - doesn't make any sense, so use X
+# 8 = resume emacs under X and suntools - doesn't make any sense, so use X
+set EMACS_PATTERN="^\[[0-9]\] . Stopped ............ $EMACS"
+
+alias edit 'set emacs_command=("emacs -nw \!*" "fg %emacs" "emacs -i \!* &"\
+ "emacsclient \!* &" "emacstool \!* &" "emacsclient \!* &" "emacs -i \!* &"\
+ "emacsclient \!* &") ; \
+ jobs >! $HOME/.jobs; grep "$EMACS_PATTERN" < $HOME/.jobs >& /dev/null; \
+ @ isjob = ! $status; \
+ @ whichjob = 1 + $isjob + $?DISPLAY * 2 + $?WINDOW_PARENT * 4; \
+ test -S ~/.emacs_server && emacsclient \!* \
+ || echo `pwd` \!* >! ~/.emacs_args && eval $emacs_command[$whichjob]'