diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2013-06-05 15:57:10 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2013-06-05 15:57:10 -0400 |
commit | fccdc796cfccb428a3535943faa08f4323cacc4b (patch) | |
tree | f381e2a3171c37aa78aec63a39b29b6df82f339c /lisp/skeleton.el | |
parent | 398b4366647e54babb1c743728fddbc909678904 (diff) | |
download | emacs-fccdc796cfccb428a3535943faa08f4323cacc4b.tar.gz |
* lisp/autorevert.el (auto-revert-notify-handler): Use memq.
Hide assertion failure.
* lisp/skeleton.el: Use cl-lib.
(skeleton-further-elements): Use defvar-local.
(skeleton-insert): Use cl-progv.
Diffstat (limited to 'lisp/skeleton.el')
-rw-r--r-- | lisp/skeleton.el | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lisp/skeleton.el b/lisp/skeleton.el index 01288b89132..a7eae7464e2 100644 --- a/lisp/skeleton.el +++ b/lisp/skeleton.el @@ -31,6 +31,8 @@ ;;; Code: +(eval-when-compile (require 'cl-lib)) + ;; page 1: statement skeleton language definition & interpreter ;; page 2: paired insertion ;; page 3: mirror-mode, an example for setting up paired insertion @@ -84,13 +86,11 @@ The variables `v1' and `v2' are still set when calling this.") "When non-nil, indent rigidly under current line for element `\\n'. Else use mode's `indent-line-function'.") -(defvar skeleton-further-elements () +(defvar-local skeleton-further-elements () "A buffer-local varlist (see `let') of mode specific skeleton elements. These variables are bound while interpreting a skeleton. Their value may in turn be any valid skeleton element if they are themselves to be used as skeleton elements.") -(make-variable-buffer-local 'skeleton-further-elements) - (defvar skeleton-subprompt (substitute-command-keys @@ -260,8 +260,10 @@ When done with skeleton, but before going back to `_'-point call skeleton-modified skeleton-point resume: help input v1 v2) (setq skeleton-positions nil) (unwind-protect - (eval `(let ,skeleton-further-elements - (skeleton-internal-list skeleton str))) + (cl-progv + (mapcar #'car skeleton-further-elements) + (mapcar (lambda (x) (eval (cadr x))) skeleton-further-elements) + (skeleton-internal-list skeleton str)) (run-hooks 'skeleton-end-hook) (sit-for 0) (or (pos-visible-in-window-p beg) |