changeset 60179:c0c13351b8c7

(undo-more): restore defadvice, but only the part that allows changes outside the restricted area of the buffer.
author Jonathan Yavner <jyavner@member.fsf.org>
date Sun, 20 Feb 2005 05:02:54 +0000
parents 51f36dec1a58
children d5618f820425 389421e988c2
files lisp/ses.el
diffstat 1 files changed, 14 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ses.el	Sun Feb 20 05:02:11 2005 +0000
+++ b/lisp/ses.el	Sun Feb 20 05:02:54 2005 +0000
@@ -1281,34 +1281,20 @@
 
 ;; 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."