4.4BSD/usr/src/contrib/emacs-18.57/lisp/register.elc


(defvar register-alist nil "\
Alist of elements (NAME . CONTENTS), one for each Emacs register.
NAME is a character (a number).  CONTENTS is a string, number,
mark or list.  A list represents a rectangle; its elements are strings.")

(defun get-register (char) "\
Return contents of Emacs register named CHAR, or nil if none." (byte-code "	\"A" [char register-alist assq] 3))

(defun set-register (char value) "\
Set contents of Emacs register named CHAR to VALUE." (byte-code "	
\"\"	B
B)" [aelt char register-alist value assq setcdr] 4))

(defun point-to-register (char) "\
Store current location of point in a register.
Argument is a character, naming the register." (interactive "cPoint to register: ") (byte-code " \"" [char nil set-register point-marker] 4))

(defun register-to-point (char) "\
Move point to location stored in a register.
Argument is a character, naming the register." (interactive "cRegister to point: ") (byte-code "ˆ	!!!!b!)" [val char nil get-register markerp switch-to-buffer marker-buffer error "Register doesn't contain a buffer position"] 6))

(defun view-register (char) "\
Display what is contained in register named REGISTER.
REGISTER is a character." (interactive "cView register: ") (byte-code "ˆ	!?	!\"vǐ!	!!!!0!u!N!!!!!\\!u:n!k@! AWu!!)" [val char nil get-register message "Register %s is empty" single-key-description "*Output*" princ "Register " " contains " integerp markerp "a buffer position:
buffer " buffer-name marker-buffer ", position " 0 "the rectangle:
" terpri "the string:
"] 23))

(defun insert-register (char &optional arg) "\
Insert contents of register REG.  REG is a character.
Normally puts point before and mark after the inserted text.
If optional second arg is non-nil, puts mark before and point after.
Interactively, second arg is non-nil if prefix arg is supplied." (interactive "cInsert register: 
P") (byte-code "È 	!:!6;c6!'!3\\p\"6!)
> " [val char arg nil push-mark get-register insert-rectangle integerp markerp princ 0 error "Register does not contain text" exchange-point-and-mark] 9))

(defun copy-to-register (char start end &optional delete-flag) "\
Copy region into register REG.
With prefix arg, delete as well.
Called from program, takes four args:
REG, START, END and DELETE-FLAG.
START and END are buffer positions indicating what to copy." (interactive "cCopy to register: 
r
P") (byte-code "Ĉ	
\"\"	
\"" [char start end delete-flag nil set-register buffer-substring delete-region] 5))

(defun append-to-register (char start end &optional delete-flag) "\
Append region to text in register REG.
With prefix arg, delete as well.
Called from program, takes four args:
REG, START, END and DELETE-FLAG.
START and END are buffer positions indicating what to append." (interactive "cAppend to register: 
r
P") (byte-code "Ĉ!;!!	
\"P\"!	
\"" [char start end delete-flag nil get-register error "Register does not contain text" set-register buffer-substring delete-region] 9))

(defun prepend-to-register (char start end &optional delete-flag) "\
Prepend region to text in register REG.
With prefix arg, delete as well.
Called from program, takes four args:
REG, START, END and DELETE-FLAG.
START and END are buffer positions indicating what to prepend." (interactive "cPrepend to register: 
r
P") (byte-code "Ĉ!;!	
\"!P\"!	
\"" [char start end delete-flag nil get-register error "Register does not contain text" set-register buffer-substring delete-region] 8))

(defun copy-rectangle-to-register (char start end &optional delete-flag) "\
Copy rectangular region into register REG.
With prefix arg, delete as well.
Called from program, takes four args:
REG, START, END and DELETE-FLAG.
START and END are buffer positions giving two corners of rectangle." (interactive "cCopy rectangle to register: 
r
P") (byte-code "Ĉ	
\"
\"\"" [char delete-flag start end nil set-register delete-extract-rectangle extract-rectangle] 6))