changeset 141:405b4fa6de27

*** empty log message ***
author Richard M. Stallman <rms@gnu.org>
date Sun, 16 Dec 1990 17:53:49 +0000
parents 9de5f63b6407
children df6ec648915f
files lisp/register.el
diffstat 1 files changed, 16 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/register.el	Fri Dec 14 21:08:38 1990 +0000
+++ b/lisp/register.el	Sun Dec 16 17:53:49 1990 +0000
@@ -21,7 +21,8 @@
 (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.")
+screen configuration, 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."
@@ -37,11 +38,13 @@
       (setq register-alist (cons aelt register-alist)))
     value))
 
-(defun point-to-register (char)
-  "Store current location of point in a register.
+(defun point-to-register (char arg)
+  "Store current location of point in register REGISTER.
+With prefix argument, store current screen configuration.
+Use \\[jump-to-register] to go to that location or restore that configuration.
 Argument is a character, naming the register."
-  (interactive "cPoint to register: ")
-  (set-register char (point-marker)))
+  (interactive "cPoint to register: \nP")
+  (set-register char (if arg (current-screen-configuration) (point-marker))))
 
 (fset 'register-to-point 'jump-to-register)
 (defun jump-to-register (char)
@@ -49,11 +52,14 @@
 Argument is a character, naming the register."
   (interactive "cJump to register: ")
   (let ((val (get-register char)))
-    (if (markerp val)
-	(progn
-	  (switch-to-buffer (marker-buffer val))
-	  (goto-char val))
-      (error "Register doesn't contain a buffer position"))))
+    (condition-case ()
+	(set-screen-configuration val)
+      (error
+       (if (markerp val)
+	   (progn
+	     (switch-to-buffer (marker-buffer val))
+	     (goto-char val))
+	 (error "Register doesn't contain a buffer position or screen configuration")))))
 
 ;(defun number-to-register (arg char)
 ;  "Store a number in a register.