]> code.delx.au - gnu-emacs/commitdiff
(with-syntax-table): Don't switch buffers.
authorGerd Moellmann <gerd@gnu.org>
Sun, 21 Nov 1999 15:08:37 +0000 (15:08 +0000)
committerGerd Moellmann <gerd@gnu.org>
Sun, 21 Nov 1999 15:08:37 +0000 (15:08 +0000)
lisp/ChangeLog
lisp/simple.el

index e701e21a8737fa739126ebb9da81abc934f4cee5..fadfd09a6f30955ab85ffcc61307a870514b5e4f 100644 (file)
@@ -1,5 +1,7 @@
 1999-11-21  Gerd Moellmann  <gerd@gnu.org>
 
+       * simple.el (with-syntax-table): Don't switch buffers.
+
        * emacs-lisp/edebug.el, emacs-lisp/cust-print.el,
        progmodes/hideif.el: Use new backquote syntax.
 
index bc78fc66f99b93cc15d79b6b49e03b72ad6f433a..c1fa29bec62a689c83020b00e1b9039e78ef1c3f 100644 (file)
@@ -4142,8 +4142,8 @@ after it has been set up properly in other respects."
 
 (defmacro with-syntax-table (table &rest body)
   "Evaluate BODY with syntax table of current buffer set to a copy of TABLE.
-Current buffer and syntax table are saved, BODY is evaluated, and the
-saved values are restored, even in case of an abnormal exit.
+The syntax table of the current buffer is saved, BODY is evaluated, and the
+saved table is restored, even in case of an abnormal exit.
 Value is what BODY returns."
   (let ((old-table (gensym))
        (old-buffer (gensym)))
@@ -4153,8 +4153,9 @@ Value is what BODY returns."
           (progn
             (set-syntax-table (copy-syntax-table ,table))
             ,@body)
-        (set-buffer ,old-buffer)
-        (set-syntax-table ,old-table)))))
+        (save-current-buffer
+          (set-buffer ,old-buffer)
+          (set-syntax-table ,old-table))))))
 
 (put 'with-syntax-table 'lisp-indent-function 1)
 (put 'with-syntax-table 'edebug-form-spec '(form body))