diff lisp/gnuserv.el @ 276:6330739388db r21-0b36

Import from CVS: tag r21-0b36
author cvs
date Mon, 13 Aug 2007 10:30:37 +0200
parents c5d627a313b1
children 57709be46d1b
line wrap: on
line diff
--- a/lisp/gnuserv.el	Mon Aug 13 10:29:43 2007 +0200
+++ b/lisp/gnuserv.el	Mon Aug 13 10:30:37 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.10
+;; Version: 3.11
 ;; 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>,
@@ -751,19 +751,22 @@
 Files that match `gnuserv-temp-file-regexp' are considered temporary and
 are saved unconditionally and backed up if `gnuserv-make-temp-file-backup'
 is non-nil.  They are disposed of using `gnuserv-done-temp-file-function'
-(also bound to `kill-buffer' by default).
+\(also bound to `kill-buffer' by default).
 
 When all of a client's buffers are marked as \"done\", the client is notified."
   (interactive "P")
   (when (null count)
     (setq count 1))
   (cond ((numberp count)
-	 (let (next)
-	   (while (natnump (decf count))
+	 (while (natnump (decf count))
+	   (let ((frame (selected-frame)))
 	     (gnuserv-buffer-done (current-buffer))
-	     (setq next (gnuserv-next-buffer))
-	     (when next
-	       (switch-to-buffer next)))))
+	     (when (eq frame (selected-frame))
+	       ;; Switch to the next gnuserv buffer.  However, do this
+	       ;; only if we remain in the same frame.
+	       (let ((next (gnuserv-next-buffer)))
+		 (when next
+		   (switch-to-buffer next)))))))
 	(count
 	   (let* ((buf (current-buffer))
 		  (clients (gnuserv-buffer-clients buf)))