mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 18:40:39 -08:00
New kind of register value is a file name and position.
(jump-to-register): Handle file-query. (register-swap-out): New function. Add it to kill-buffer-hook. (register-alist): Doc fix.
This commit is contained in:
parent
b455c665da
commit
28cbd14d87
1 changed files with 24 additions and 1 deletions
|
|
@ -36,7 +36,9 @@
|
|||
NAME is a character (a number). CONTENTS is a string, number,
|
||||
frame configuration, mark 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 . 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.")
|
||||
|
||||
(defun get-register (reg)
|
||||
"Return contents of Emacs register named REG, or nil if none."
|
||||
|
|
@ -101,9 +103,30 @@ delete any existing frames that the frame configuration doesn't mention.
|
|||
(goto-char val))
|
||||
((and (consp val) (eq (car val) 'file))
|
||||
(find-file (cdr val)))
|
||||
((and (consp val) (eq (car val) 'file-query))
|
||||
(or (find-buffer-visiting (nth 1 val))
|
||||
(y-or-n-p (format "Visit file %s again? " (nth 1 val)))
|
||||
(error "Register access aborted"))
|
||||
(find-file (nth 1 val))
|
||||
(goto-char (nth 2 val)))
|
||||
(t
|
||||
(error "Register doesn't contain a buffer position or configuration")))))
|
||||
|
||||
;; Turn markers into file-query references when a buffer is killed.
|
||||
(defun register-swap-out ()
|
||||
(and buffer-file-name
|
||||
(let ((tail register-alist))
|
||||
(while tail
|
||||
(and (markerp (cdr (car tail)))
|
||||
(eq (marker-buffer (cdr (car tail))) (current-buffer))
|
||||
(setcdr (car tail)
|
||||
(list 'file-query
|
||||
buffer-file-name
|
||||
(marker-position (cdr (car tail))))))
|
||||
(setq tail (cdr tail))))))
|
||||
|
||||
(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).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue