[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 1668607 46/51: Don't add to disabled undo list

From: Noam Postavsky
Subject: [elpa] master 1668607 46/51: Don't add to disabled undo list
Date: Sun, 13 May 2018 13:11:47 -0400 (EDT)

branch: master
commit 16686075bb2fa5dc612ae81b3c415b3ed45a3f85
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>

    Don't add to disabled undo list
    Previously, we were unconditionally pushing entries onto the undo
    list, which effectively enables undo, even in buffers where it's
    * yasnippet.el (yas--commit-snippet, yas--snippet-revive)
    (yas--snippet-create): Check that `buffer-undo-list' is a list before
    pushing to it.
 yasnippet.el | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/yasnippet.el b/yasnippet.el
index 9c7e88f..cc87d95 100644
--- a/yasnippet.el
+++ b/yasnippet.el
@@ -3390,9 +3390,8 @@ This renders the snippet as ordinary text."
     (yas--markers-to-points snippet)
-    ;; Take care of snippet revival
-    ;;
-    (if yas-snippet-revival
+    ;; Take care of snippet revival on undo.
+    (if (and yas-snippet-revival (listp buffer-undo-list))
         (push `(apply yas--snippet-revive ,yas-snippet-beg ,yas-snippet-end 
       ;; Dismember the snippet... this is useful if we get called
@@ -3963,8 +3962,9 @@ After revival, push the `yas--take-care-of-redo' in the
   (when (yas--maybe-move-to-active-field snippet)
     (setf (yas--snippet-control-overlay snippet) (yas--make-control-overlay 
snippet beg end))
     (overlay-put (yas--snippet-control-overlay snippet) 'yas--snippet snippet)
-    (push `(apply yas--take-care-of-redo ,snippet)
-          buffer-undo-list)))
+    (when (listp buffer-undo-list)
+      (push `(apply yas--take-care-of-redo ,snippet)
+            buffer-undo-list))))
 (defun yas--snippet-create (content expand-env begin end)
   "Create a snippet from a template inserted at BEGIN to END.
@@ -3984,16 +3984,18 @@ Returns the newly created snippet."
           (narrow-to-region begin end)
           (goto-char (point-min))
           (yas--snippet-parse-create snippet))
-        (push (cons (point-min) (point-max))
-              buffer-undo-list)
+        (when (listp buffer-undo-list)
+          (push (cons (point-min) (point-max))
+                buffer-undo-list))
         ;; Indent, collecting undo information normally.
         (yas--indent snippet)
         ;; Follow up with `yas--take-care-of-redo' on the newly
         ;; inserted snippet boundaries.
-        (push `(apply yas--take-care-of-redo ,snippet)
-              buffer-undo-list)
+        (when (listp buffer-undo-list)
+          (push `(apply yas--take-care-of-redo ,snippet)
+                buffer-undo-list))
         ;; Sort and link each field
         (yas--snippet-sort-fields snippet)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]