summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/NEWS4
-rw-r--r--lisp/register.el15
2 files changed, 18 insertions, 1 deletions
diff --git a/etc/NEWS b/etc/NEWS
index 2a93bdf0253..76c19acd8c6 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -539,6 +539,10 @@ are obsoleted in GVFS.
Tramp for some look-alike remote file names.
---
+** Register
+*** The return value of method 'register-val-describe' includes the
+names of buffers shown by the windows of a window configuration.
+
** The options.el library has been removed.
It was obsolete since Emacs 22.1, replaced by customize.
diff --git a/lisp/register.el b/lisp/register.el
index 3d61044c03c..e25f9fd5889 100644
--- a/lisp/register.el
+++ b/lisp/register.el
@@ -391,7 +391,20 @@ Interactively, reads the register using `register-read-with-preview'."
(cl-defmethod register-val-describe ((val cons) verbose)
(cond
((window-configuration-p (car val))
- (princ "a window configuration."))
+ (let* ((stored-window-config (car val))
+ (window-config-frame (window-configuration-frame stored-window-config))
+ (current-frame (selected-frame)))
+ (princ (format "a window configuration: %s."
+ (if (frame-live-p window-config-frame)
+ (with-selected-frame window-config-frame
+ (save-window-excursion
+ (set-window-configuration stored-window-config)
+ (concat
+ (mapconcat (lambda (w) (buffer-name (window-buffer w)))
+ (window-list (selected-frame)) ", ")
+ (unless (eq current-frame window-config-frame)
+ " in another frame"))))
+ "dead frame")))))
((frame-configuration-p (car val))
(princ "a frame configuration."))