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.
(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)))
(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))