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 @! AW u !!)" [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 !'