diff options
| -rw-r--r-- | lisp/subr.el | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/lisp/subr.el b/lisp/subr.el index 1a49ae6c73e..1a70c53a879 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -2485,11 +2485,15 @@ in BODY." | |||
| 2485 | "Execute the forms in BODY with TABLE as the current case table. | 2485 | "Execute the forms in BODY with TABLE as the current case table. |
| 2486 | The value returned is the value of the last form in BODY." | 2486 | The value returned is the value of the last form in BODY." |
| 2487 | (declare (indent 1) (debug t)) | 2487 | (declare (indent 1) (debug t)) |
| 2488 | `(let ((old-case-table (current-case-table))) | 2488 | (let ((old-case-table (make-symbol "table")) |
| 2489 | (unwind-protect | 2489 | (old-buffer (make-symbol "buffer"))) |
| 2490 | (progn (set-case-table ,table) | 2490 | `(let ((,old-case-table (current-case-table)) |
| 2491 | ,@body) | 2491 | (,old-buffer (current-buffer))) |
| 2492 | (set-case-table old-case-table)))) | 2492 | (unwind-protect |
| 2493 | (progn (set-case-table ,table) | ||
| 2494 | ,@body) | ||
| 2495 | (with-current-buffer ,old-buffer | ||
| 2496 | (set-case-table ,old-case-table)))))) | ||
| 2493 | 2497 | ||
| 2494 | ;;;; Constructing completion tables. | 2498 | ;;;; Constructing completion tables. |
| 2495 | 2499 | ||