comparison lisp/utils/redo.el @ 193:f53b5ca2e663 r20-3b23

Import from CVS: tag r20-3b23
author cvs
date Mon, 13 Aug 2007 09:58:30 +0200
parents 4103f0995bd7
children
comparison
equal deleted inserted replaced
192:9d35321dd38c 193:f53b5ca2e663
88 (error "Buffer modified since last undo/redo, cannot redo")) 88 (error "Buffer modified since last undo/redo, cannot redo"))
89 (and (or (eq buffer-undo-list pending-undo-list) 89 (and (or (eq buffer-undo-list pending-undo-list)
90 (eq (cdr buffer-undo-list) pending-undo-list)) 90 (eq (cdr buffer-undo-list) pending-undo-list))
91 (error "No further undos to redo in this buffer")) 91 (error "No further undos to redo in this buffer"))
92 (or (eq (selected-window) (minibuffer-window)) 92 (or (eq (selected-window) (minibuffer-window))
93 (message "Redo...")) 93 (display-message 'progress "Redo..."))
94 (let ((modified (buffer-modified-p)) 94 (let ((modified (buffer-modified-p))
95 (recent-save (recent-auto-save-p)) 95 (recent-save (recent-auto-save-p))
96 (old-undo-list buffer-undo-list) 96 (old-undo-list buffer-undo-list)
97 (p (cdr buffer-undo-list)) 97 (p (cdr buffer-undo-list))
98 (records-between 0)) 98 (records-between 0))
142 (setq p (cdr p))) 142 (setq p (cdr p)))
143 (setq pending-undo-list p))) 143 (setq pending-undo-list p)))
144 (and modified (not (buffer-modified-p)) 144 (and modified (not (buffer-modified-p))
145 (delete-auto-save-file-if-necessary recent-save)) 145 (delete-auto-save-file-if-necessary recent-save))
146 (or (eq (selected-window) (minibuffer-window)) 146 (or (eq (selected-window) (minibuffer-window))
147 (message "Redo!")) 147 (display-message 'progress "Redo!"))
148 (setq last-buffer-undo-list buffer-undo-list))) 148 (setq last-buffer-undo-list buffer-undo-list)))
149 149
150 (defun undo (&optional arg) 150 (defun undo (&optional arg)
151 "Undo some previous changes. 151 "Undo some previous changes.
152 Repeat this command to undo more changes. 152 Repeat this command to undo more changes.
153 A numeric argument serves as a repeat count." 153 A numeric argument serves as a repeat count."
154 (interactive "*p") 154 (interactive "*p")
155 (let ((modified (buffer-modified-p)) 155 (let ((modified (buffer-modified-p))
156 (recent-save (recent-auto-save-p))) 156 (recent-save (recent-auto-save-p)))
157 (or (eq (selected-window) (minibuffer-window)) 157 (or (eq (selected-window) (minibuffer-window))
158 (message "Undo...")) 158 (display-message 'progress "Undo..."))
159 (or (eq last-buffer-undo-list buffer-undo-list) 159 (or (eq last-buffer-undo-list buffer-undo-list)
160 (and (null (car-safe buffer-undo-list)) 160 (and (null (car-safe buffer-undo-list))
161 (eq last-buffer-undo-list (cdr-safe buffer-undo-list))) 161 (eq last-buffer-undo-list (cdr-safe buffer-undo-list)))
162 (progn (undo-start) 162 (progn (undo-start)
163 (undo-more 1))) 163 (undo-more 1)))
181 (setq prev list 181 (setq prev list
182 list (cdr list)))) 182 list (cdr list))))
183 (and modified (not (buffer-modified-p)) 183 (and modified (not (buffer-modified-p))
184 (delete-auto-save-file-if-necessary recent-save))) 184 (delete-auto-save-file-if-necessary recent-save)))
185 (or (eq (selected-window) (minibuffer-window)) 185 (or (eq (selected-window) (minibuffer-window))
186 (message "Undo!")) 186 (display-message 'progress "Undo!"))
187 (setq last-buffer-undo-list buffer-undo-list)) 187 (setq last-buffer-undo-list buffer-undo-list))
188 188
189 ;;; redo.el ends here 189 ;;; redo.el ends here