mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-12 09:28:24 +00:00
(frame-configuration-to-register)
(window-configuration-to-register): Use a marker to save point. (point-to-register): Include point when saving a frame config. (number-to-register): New command (was commented out). (increment-register): New command (view-register): Handle frame configs and window configs included in a list with a pointer. (view-register, insert-register): Use numberp, not integerp.
This commit is contained in:
parent
bdb45de9fc
commit
070c250623
@ -33,12 +33,15 @@
|
||||
|
||||
(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,
|
||||
frame configuration, mark or list.
|
||||
NAME is a character (a number). CONTENTS is a string, number, marker or list.
|
||||
A list of strings represents a rectangle.
|
||||
A list of the form (file . NAME) represents the file named NAME.
|
||||
A list of the form (file-query NAME POSITION) represents position POSITION
|
||||
in the file named NAME, but query before visiting it.")
|
||||
in the file named NAME, but query before visiting it.
|
||||
A list of the form (WINDOW-CONFIGURATION POSITION)
|
||||
represents a saved window configuration plus a saved value of point.
|
||||
A list of the form (FRAME-CONFIGURATION POSITION)
|
||||
represents a saved frame configuration plus a saved value of point.")
|
||||
|
||||
(defun get-register (reg)
|
||||
"Return contents of Emacs register named REG, or nil if none."
|
||||
@ -61,7 +64,8 @@ Use \\[jump-to-register] to go to that location or restore that configuration.
|
||||
Argument is a character, naming the register."
|
||||
(interactive "cPoint to register: \nP")
|
||||
(set-register register
|
||||
(if arg (current-frame-configuration) (point-marker))))
|
||||
(if arg (list (current-frame-configuration) (point-marker))
|
||||
(point-marker))))
|
||||
|
||||
(defun window-configuration-to-register (register &optional arg)
|
||||
"Store the window configuration of the selected frame in register REGISTER.
|
||||
@ -70,7 +74,7 @@ Argument is a character, naming the register."
|
||||
(interactive "cWindow configuration to register: \nP")
|
||||
;; current-window-configuration does not include the value
|
||||
;; of point in the current buffer, so record that separately.
|
||||
(set-register register (list (current-window-configuration) (point))))
|
||||
(set-register register (list (current-window-configuration) (point-marker))))
|
||||
|
||||
(defun frame-configuration-to-register (register &optional arg)
|
||||
"Store the window configuration of all frames in register REGISTER.
|
||||
@ -79,7 +83,7 @@ Argument is a character, naming the register."
|
||||
(interactive "cFrame configuration to register: \nP")
|
||||
;; current-frame-configuration does not include the value
|
||||
;; of point in the current buffer, so record that separately.
|
||||
(set-register register (list (current-frame-configuration) (point))))
|
||||
(set-register register (list (current-frame-configuration) (point-marker))))
|
||||
|
||||
(defalias 'register-to-point 'jump-to-register)
|
||||
(defun jump-to-register (register &optional delete)
|
||||
@ -132,33 +136,33 @@ delete any existing frames that the frame configuration doesn't mention.
|
||||
|
||||
(add-hook 'kill-buffer-hook 'register-swap-out)
|
||||
|
||||
;(defun number-to-register (arg char)
|
||||
; "Store a number in a register.
|
||||
;Two args, NUMBER and REGISTER (a character, naming the register).
|
||||
;If NUMBER is nil, digits in the buffer following point are read
|
||||
;to get the number to store.
|
||||
;Interactively, NUMBER is the prefix arg (none means nil)."
|
||||
; (interactive "P\ncNumber to register: ")
|
||||
; (set-register char
|
||||
; (if arg
|
||||
; (prefix-numeric-value arg)
|
||||
; (if (looking-at "[0-9][0-9]*")
|
||||
; (save-excursion
|
||||
; (save-restriction
|
||||
; (narrow-to-region (point)
|
||||
; (progn (skip-chars-forward "0-9")
|
||||
; (point)))
|
||||
; (goto-char (point-min))
|
||||
; (read (current-buffer))))
|
||||
; 0))))
|
||||
(defun number-to-register (arg char)
|
||||
"Store a number in a register.
|
||||
Two args, NUMBER and REGISTER (a character, naming the register).
|
||||
If NUMBER is nil, digits in the buffer following point are read
|
||||
to get the number to store.
|
||||
Interactively, NUMBER is the prefix arg (none means nil)."
|
||||
(interactive "P\ncNumber to register: ")
|
||||
(set-register char
|
||||
(if arg
|
||||
(prefix-numeric-value arg)
|
||||
(if (looking-at "[0-9][0-9]*")
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
(narrow-to-region (point)
|
||||
(progn (skip-chars-forward "0-9")
|
||||
(point)))
|
||||
(goto-char (point-min))
|
||||
(read (current-buffer))))
|
||||
0))))
|
||||
|
||||
;(defun increment-register (arg char)
|
||||
; "Add NUMBER to the contents of register REGISTER.
|
||||
;Interactively, NUMBER is the prefix arg (none means nil)."
|
||||
; (interactive "p\ncNumber to register: ")
|
||||
; (or (integerp (get-register char))
|
||||
; (error "Register does not contain a number"))
|
||||
; (set-register char (+ arg (get-register char))))
|
||||
(defun increment-register (arg char)
|
||||
"Add NUMBER to the contents of register REGISTER.
|
||||
Interactively, NUMBER is the prefix arg (none means nil)."
|
||||
(interactive "p\ncIncrement register: ")
|
||||
(or (numberp (get-register char))
|
||||
(error "Register does not contain a number"))
|
||||
(set-register char (+ arg (get-register char))))
|
||||
|
||||
(defun view-register (register)
|
||||
"Display what is contained in register named REGISTER.
|
||||
@ -172,7 +176,7 @@ The Lisp value REGISTER is a character."
|
||||
(princ (single-key-description register))
|
||||
(princ " contains ")
|
||||
(cond
|
||||
((integerp val)
|
||||
((numberp val)
|
||||
(princ val))
|
||||
|
||||
((markerp val)
|
||||
@ -184,10 +188,10 @@ The Lisp value REGISTER is a character."
|
||||
(princ ", position ")
|
||||
(princ (marker-position val)))))
|
||||
|
||||
((window-configuration-p val)
|
||||
((and (consp val) (window-configuration-p (car val)))
|
||||
(princ "a window configuration."))
|
||||
|
||||
((frame-configuration-p val)
|
||||
((and (consp val) (frame-configuration-p (car val)))
|
||||
(princ "a frame configuration."))
|
||||
|
||||
((and (consp val) (eq (car val) 'file))
|
||||
@ -223,7 +227,7 @@ Interactively, second arg is non-nil if prefix arg is supplied."
|
||||
(insert-rectangle val))
|
||||
((stringp val)
|
||||
(insert val))
|
||||
((integerp val)
|
||||
((numberp val)
|
||||
(princ val (current-buffer)))
|
||||
((and (markerp val) (marker-position val))
|
||||
(princ (marker-position val) (current-buffer)))
|
||||
|
Loading…
Reference in New Issue
Block a user