# HG changeset patch # User Thien-Thi Nguyen # Date 1194123669 0 # Node ID b51c8db87a41bdf9b5b6a6e76aa1c15a853ef3ca # Parent 047b6a6087c29f3483b9c72ace287135426d1855 (append-to-register, prepend-to-register): Don't signal error on empty register; use the text, instead. diff -r 047b6a6087c2 -r b51c8db87a41 lisp/register.el --- a/lisp/register.el Sat Nov 03 20:45:20 2007 +0000 +++ b/lisp/register.el Sat Nov 03 21:01:09 2007 +0000 @@ -287,10 +287,12 @@ Called from program, takes four args: REGISTER, START, END and DELETE-FLAG. START and END are buffer positions indicating what to append." (interactive "cAppend to register: \nr\nP") - (or (stringp (get-register register)) - (error "Register does not contain text")) - (set-register register (concat (get-register register) - (filter-buffer-substring start end))) + (let ((reg (get-register register)) + (text (filter-buffer-substring start end))) + (set-register + register (cond ((not reg) text) + ((stringp reg) (concat reg text)) + (t (error "Register does not contain text"))))) (if delete-flag (delete-region start end))) (defun prepend-to-register (register start end &optional delete-flag) @@ -299,10 +301,12 @@ Called from program, takes four args: REGISTER, START, END and DELETE-FLAG. START and END are buffer positions indicating what to prepend." (interactive "cPrepend to register: \nr\nP") - (or (stringp (get-register register)) - (error "Register does not contain text")) - (set-register register (concat (filter-buffer-substring start end) - (get-register register))) + (let ((reg (get-register register)) + (text (filter-buffer-substring start end))) + (set-register + register (cond ((not reg) text) + ((stringp reg) (concat text reg)) + (t (error "Register does not contain text"))))) (if delete-flag (delete-region start end))) (defun copy-rectangle-to-register (register start end &optional delete-flag)