diff lisp/packages/gnuserv.el @ 165:5a88923fcbfe r20-3b9

Import from CVS: tag r20-3b9
author cvs
date Mon, 13 Aug 2007 09:44:42 +0200
parents 25f70ba0133c
children 85ec50267440
line wrap: on
line diff
--- a/lisp/packages/gnuserv.el	Mon Aug 13 09:43:39 2007 +0200
+++ b/lisp/packages/gnuserv.el	Mon Aug 13 09:44:42 2007 +0200
@@ -1,7 +1,7 @@
 ;;; gnuserv.el --- Lisp interface code between Emacs and gnuserv
 ;; Copyright (C) 1989-1997 Free Software Foundation, Inc.
 
-;; Version: 3.3
+;; Version: 3.4
 ;; Author: Andy Norman (ange@hplb.hpl.hp.com), originally based on server.el
 ;;         Hrvoje Niksic <hniksic@srce.hr>
 ;; Maintainer: Jan Vroonhof <vroonhof@math.ethz.ch>,
@@ -74,13 +74,13 @@
 ;;
 ;; Hrvoje Niksic <hniksic@srce.hr> May/1997
 ;;     Completely rewritten.  Now uses `defstruct' and other CL stuff
-;;     to define clients cleanly.  Dave, thanks!
+;;     to define clients cleanly.  Many thanks to Dave Gillespie!
 
 
 ;;; Code:
 
 (defconst gnuserv-rcs-version
-  "$Id: gnuserv.el,v 1.10 1997/05/29 23:50:05 steve Exp $")
+  "$Id: gnuserv.el,v 1.11 1997/06/26 02:31:17 steve Exp $")
 
 (defgroup gnuserv nil
   "The gnuserv suite of programs to talk to Emacs from outside."
@@ -187,16 +187,24 @@
 ;; The old functions are provided as aliases, to avoid breaking .emacs
 ;; files.  However, they are obsolete and should be avoided.
 
-(defvaralias 'server-frame 'gnuserv-frame)
-(defvaralias 'server-done-function 'gnuserv-done-function)
-(defvaralias 'server-done-temp-file-function 'gnuserv-done-temp-file-function)
-(defvaralias 'server-find-file-function 'gnuserv-find-file-function)
-(defvaralias 'server-program 'gnuserv-program)
-(defvaralias 'server-visit-hook 'gnuserv-visit-hook)
-(defvaralias 'server-done-hook 'gnuserv-done-hook)
-(defvaralias 'server-kill-quietly 'gnuserv-kill-quietly)
-(defvaralias 'server-temp-file-regexp 'gnuserv-temp-file-regexp)
-(defvaralias 'server-make-temp-file-backup 'gnuserv-make-temp-file-backup)
+(define-obsolete-variable-alias 'server-frame 'gnuserv-frame)
+(define-obsolete-variable-alias 'server-done-function 'gnuserv-done-function)
+(define-obsolete-variable-alias 'server-done-temp-file-function
+  'gnuserv-done-temp-file-function)
+(define-obsolete-variable-alias 'server-find-file-function
+  'gnuserv-find-file-function)
+(define-obsolete-variable-alias 'server-program
+  'gnuserv-program)
+(define-obsolete-variable-alias 'server-visit-hook
+  'gnuserv-visit-hook)
+(define-obsolete-variable-alias 'server-done-hook
+  'gnuserv-done-hook)
+(define-obsolete-variable-alias 'server-kill-quietly
+  'gnuserv-kill-quietly)
+(define-obsolete-variable-alias 'server-temp-file-regexp
+  'gnuserv-temp-file-regexp)
+(define-obsolete-variable-alias 'server-make-temp-file-backup
+  'gnuserv-make-temp-file-backup)
 
 
 ;;; Internal variables:
@@ -475,12 +483,10 @@
 ;; `gnuserv-buffer-p' when appropriate, for instance.
 (defun gnuserv-buffer-clients (buffer)
   "Returns a list of clients to which BUFFER belongs."
-  (let ((client gnuserv-clients)
-	res)
-    (while client
-      (if (memq buffer (gnuclient-buffers (car client)))
-	  (push (car client) res))
-      (pop client))
+  (let (res)
+    (dolist (client gnuserv-clients)
+      (when (memq buffer (gnuclient-buffers client))
+	(push client res)))
     res))
 
 ;; Like `gnuserv-buffer-clients', but returns a boolean; doesn't
@@ -499,14 +505,12 @@
   "Remove the buffer from the buffer lists of all the clients it belongs to.
 Any client that remains \"empty\" after the removal is informed that the
 editing has ended."
-  (let* ((buf (current-buffer))
-	 (clients (gnuserv-buffer-clients buf)))
-    (while clients
-      (callf2 delq buf (gnuclient-buffers (car clients)))
+  (let* ((buf (current-buffer)))
+    (dolist (client (gnuserv-buffer-clients buf))
+      (callf2 delq buf (gnuclient-buffers client))
       ;; If no more buffers, kill the client.
-      (when (null (gnuclient-buffers (car clients)))
-	(gnuserv-kill-client (car clients)))
-      (pop clients))))
+      (when (null (gnuclient-buffers client))
+	(gnuserv-kill-client client)))))
 
 (add-hook 'kill-buffer-hook 'gnuserv-kill-buffer-function)
 
@@ -534,15 +538,13 @@
 ;; as well.  This is why we hook into `delete-device-hook'.
 (defun gnuserv-check-device (device)
   (when (memq device gnuserv-devices)
-    (let ((client gnuserv-clients))
-      (while client
-	(when (eq device (gnuclient-device (car client)))
-	  ;; we must make sure that the server kill doesn't result in
-	  ;; killing the device, because it would cause a device-dead
-	  ;; error when `delete-device' tries to do the job later.
-	  (gnuserv-kill-client (car client) t))
-	(pop client)))
-    (callf2 delq device gnuserv-devices)))
+    (dolist (client gnuserv-clients)
+      (when (eq device (gnuclient-device client))
+	;; we must make sure that the server kill doesn't result in
+	;; killing the device, because it would cause a device-dead
+	;; error when `delete-device' tries to do the job later.
+	(gnuserv-kill-client (car client) t))))
+  (callf2 delq device gnuserv-devices))
 
 (add-hook 'delete-device-hook 'gnuserv-check-device)
 
@@ -589,21 +591,19 @@
 
 ;; Do away with the buffer.
 (defun gnuserv-buffer-done-1 (buffer)
-  (let ((clients (gnuserv-buffer-clients buffer)))
-    (while clients
-      (callf2 delq buffer (gnuclient-buffers (car clients)))
-      (when (null (gnuclient-buffers (car clients)))
-	(gnuserv-kill-client (car clients)))
-      (pop clients))
-    ;; Get rid of the buffer
-    (save-excursion
-      (set-buffer buffer)
-      (run-hooks 'gnuserv-done-hook)
-      (setq gnuserv-minor-mode nil)
-      (funcall (if (gnuserv-temp-file-p buffer)
-		   gnuserv-done-temp-file-function
-		 gnuserv-done-function)
-	       buffer))))
+  (dolist (client (gnuserv-buffer-clients buffer))
+    (callf2 delq buffer (gnuclient-buffers client))
+    (when (null (gnuclient-buffers client))
+      (gnuserv-kill-client client)))
+  ;; Get rid of the buffer
+  (save-excursion
+    (set-buffer buffer)
+    (run-hooks 'gnuserv-done-hook)
+    (setq gnuserv-minor-mode nil)
+    (funcall (if (gnuserv-temp-file-p buffer)
+		 gnuserv-done-temp-file-function
+	       gnuserv-done-function)
+	     buffer)))
 
 
 ;;; Higher-level functions
@@ -629,7 +629,7 @@
      ;; Else, try to find any client with at least one buffer, and
      ;; return its first buffer.
      ((setq client
-	    (car (member-if-not 'null gnuserv-clients
+	    (car (member-if-not #'null gnuserv-clients
 				:key 'gnuclient-buffers)))
       (car (gnuclient-buffers client)))
      ;; Oh, give up.