aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThien-Thi Nguyen2007-11-03 21:02:35 +0000
committerThien-Thi Nguyen2007-11-03 21:02:35 +0000
commitc81f72cebe9b5af6e27a65a15974292fde7ecfec (patch)
tree4063804cea67330dc73236e309a2ab386a029fed
parent6159985a125d89084f7b7339982382ec263e8943 (diff)
downloademacs-c81f72cebe9b5af6e27a65a15974292fde7ecfec.tar.gz
emacs-c81f72cebe9b5af6e27a65a15974292fde7ecfec.zip
(append-to-register, prepend-to-register):
Don't signal error on empty register; use the text, instead.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/register.el20
2 files changed, 17 insertions, 8 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index e9e6d75b911..dcd4733eb32 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
12007-11-03 Sean O'Rourke <seano@cs.ucla.edu>
2
3 * register.el (append-to-register, prepend-to-register):
4 Don't signal error on empty register; use the text, instead.
5
12007-11-03 Michael Olson <mwolson@gnu.org> 62007-11-03 Michael Olson <mwolson@gnu.org>
2 7
3 * textmodes/remember.el (remember-buffer): Use 8 * textmodes/remember.el (remember-buffer): Use
diff --git a/lisp/register.el b/lisp/register.el
index 1f0811561c2..5648ca385a8 100644
--- a/lisp/register.el
+++ b/lisp/register.el
@@ -287,10 +287,12 @@ With prefix arg, delete as well.
287Called from program, takes four args: REGISTER, START, END and DELETE-FLAG. 287Called from program, takes four args: REGISTER, START, END and DELETE-FLAG.
288START and END are buffer positions indicating what to append." 288START and END are buffer positions indicating what to append."
289 (interactive "cAppend to register: \nr\nP") 289 (interactive "cAppend to register: \nr\nP")
290 (or (stringp (get-register register)) 290 (let ((reg (get-register register))
291 (error "Register does not contain text")) 291 (text (filter-buffer-substring start end)))
292 (set-register register (concat (get-register register) 292 (set-register
293 (filter-buffer-substring start end))) 293 register (cond ((not reg) text)
294 ((stringp reg) (concat reg text))
295 (t (error "Register does not contain text")))))
294 (if delete-flag (delete-region start end))) 296 (if delete-flag (delete-region start end)))
295 297
296(defun prepend-to-register (register start end &optional delete-flag) 298(defun prepend-to-register (register start end &optional delete-flag)
@@ -299,10 +301,12 @@ With prefix arg, delete as well.
299Called from program, takes four args: REGISTER, START, END and DELETE-FLAG. 301Called from program, takes four args: REGISTER, START, END and DELETE-FLAG.
300START and END are buffer positions indicating what to prepend." 302START and END are buffer positions indicating what to prepend."
301 (interactive "cPrepend to register: \nr\nP") 303 (interactive "cPrepend to register: \nr\nP")
302 (or (stringp (get-register register)) 304 (let ((reg (get-register register))
303 (error "Register does not contain text")) 305 (text (filter-buffer-substring start end)))
304 (set-register register (concat (filter-buffer-substring start end) 306 (set-register
305 (get-register register))) 307 register (cond ((not reg) text)
308 ((stringp reg) (concat text reg))
309 (t (error "Register does not contain text")))))
306 (if delete-flag (delete-region start end))) 310 (if delete-flag (delete-region start end)))
307 311
308(defun copy-rectangle-to-register (register start end &optional delete-flag) 312(defun copy-rectangle-to-register (register start end &optional delete-flag)