Commit d01a33cf authored by Gerd Moellmann's avatar Gerd Moellmann
Browse files

(with-syntax-table): New.

parent 0a936fe0
......@@ -27,6 +27,10 @@
;;; Code:
(eval-when-compile
(require 'cl))
(defgroup killing nil
"Killing and yanking commands"
:group 'editing)
......@@ -4132,4 +4136,21 @@ after it has been set up properly in other respects."
(if display-flag (pop-to-buffer new))
new))
(defmacro with-syntax-table (table &rest body)
"Evaluate BODY with syntax table of current buffer set to a copy of TABLE.
Point, mark, current buffer, and syntax table are saved, BODY is
evaluated, and the saved values are restored, even in case of an
abnormal exit. Value is what BODY returns."
(let ((old-table (gensym)))
'(let ((,old-table (syntax-table)))
(unwind-protect
(save-excursion
(set-syntax-table (copy-syntax-table ,table))
,@body)
(set-syntax-table ,old-table)))))
(put 'with-syntax-table 'lisp-indent-function 1)
(put 'with-syntax-table 'edebug-form-spec '(form body))
;;; simple.el ends here
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment