+ (interactive "cWindow configuration to register: \nP")
+ (set-register char (current-window-configuration)))
+
+(defun frame-configuration-to-register (char &optional arg)
+ "Store the window configuration of all frames in register REGISTER.
+Use \\[jump-to-register] to restore the configuration.
+Argument is a character, naming the register."
+ (interactive "cFrame configuration to register: \nP")
+ (set-register char (current-frame-configuration)))
+
+(defalias 'register-to-point 'jump-to-register)
+(defun jump-to-register (char &optional delete)
+ "Move point to location stored in a register.
+If the register contains a file name, find that file.
+ \(To put a file name in a register, you must use `set-register'.)
+If the register contains a window configuration (one frame) or a frame
+configuration (all frames), restore that frame or all frames accordingly.
+First argument is a character, naming the register.
+Optional second arg non-nil (interactively, prefix argument) says to
+delete any existing frames that the frame configuration doesn't mention.
+\(Otherwise, these frames are iconified.)"
+ (interactive "cJump to register: \nP")