]> git.eshelyaron.com Git - emacs.git/commitdiff
(undo-more): restore defadvice, but only the part that allows changes
authorJonathan Yavner <jyavner@member.fsf.org>
Sun, 20 Feb 2005 05:02:54 +0000 (05:02 +0000)
committerJonathan Yavner <jyavner@member.fsf.org>
Sun, 20 Feb 2005 05:02:54 +0000 (05:02 +0000)
outside the restricted area of the buffer.

lisp/ses.el

index c2239327e1cbae0468bd53613cbcdfb09fbc4e89..502acf868dcf99a5230ba3569cbc4dcb69d734cb 100644 (file)
@@ -1281,34 +1281,20 @@ to each symbol."
 
 ;; This should be unnecessary, because the feature is now built in.
 
-;;; (defadvice undo-more (around ses-undo-more activate preactivate)
-;;;   "Define a meaning for conses in buffer-undo-list whose car is a symbol
-;;; other than t or nil.  To undo these, apply the car--a function--to the
-;;; cdr--its arglist."
-;;;   (let ((ses-count (ad-get-arg 0)))
-;;;     (catch 'undo
-;;;       (dolist (ses-x pending-undo-list)
-;;;    (unless ses-x
-;;;      ;;End of undo boundary
-;;;      (setq ses-count (1- ses-count))
-;;;      (if (<= ses-count 0)
-;;;          ;;We've seen enough boundaries - stop undoing
-;;;          (throw 'undo nil)))
-;;;    (and (consp ses-x) (symbolp (car ses-x)) (fboundp (car ses-x))
-;;;         ;;Undo using apply
-;;;         (apply (car ses-x) (cdr ses-x)))))
-;;;     (if (not (eq major-mode 'ses-mode))
-;;;    ad-do-it
-;;;       ;;Here is some extra code for SES mode.
-;;;       (setq ses--deferred-narrow
-;;;        (or ses--deferred-narrow (ses-narrowed-p)))
-;;;       (widen)
-;;;       (condition-case x
-;;;      ad-do-it
-;;;    (error
-;;;     ;;Restore narrow if appropriate
-;;;     (ses-command-hook)
-;;;     (signal (car x) (cdr x)))))))
+(defadvice undo-more (around ses-undo-more activate preactivate)
+  "For SES mode, allow undo outside of narrowed buffer range."
+  (if (not (eq major-mode 'ses-mode))
+      ad-do-it
+    ;;Here is some extra code for SES mode.
+    (setq ses--deferred-narrow
+         (or ses--deferred-narrow (ses-narrowed-p)))
+    (widen)
+    (condition-case x
+       ad-do-it
+      (error
+       ;;Restore narrow if appropriate
+       (ses-command-hook)
+       (signal (car x) (cdr x))))))
 
 (defun ses-begin-change ()
   "For undo, remember point before we start changing hidden stuff."