From: Juanma Barranquero Date: Fri, 9 Aug 2013 00:30:24 +0000 (+0200) Subject: Move frameset-to-register stuff from register.el to frameset.el. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1686^2~355 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=77187e6f36e423fbf291ce9ea824d4b8da66108d;p=emacs.git Move frameset-to-register stuff from register.el to frameset.el. lisp/register.el (frameset-frame-id, frameset-frame-with-id, frameset-p) (frameset-restore, frameset-save, frameset-session-filter-alist): Remove declarations. (register-alist): Doc fix. (frameset-to-register): Move to frameset.el. (jump-to-register, describe-register-1): Remove frameset-specific code. lisp/frameset.el (frameset-p): Add autoload cookie. (frameset--jump-to-register): New function, based on code moved from register.el. (frameset-to-register): Move from register.el. Adapt to `registerv'. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f240aa445d0..382c5804330 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,17 @@ +2013-08-09 Juanma Barranquero + + * frameset.el (frameset-p): Add autoload cookie. + (frameset--jump-to-register): New function, based on code moved from + register.el. + (frameset-to-register): Move from register.el. Adapt to `registerv'. + + * register.el (frameset-frame-id, frameset-frame-with-id, frameset-p) + (frameset-restore, frameset-save, frameset-session-filter-alist): + Remove declarations. + (register-alist): Doc fix. + (frameset-to-register): Move to frameset.el. + (jump-to-register, describe-register-1): Remove frameset-specific code. + 2013-08-08 Juanma Barranquero * allout-widgets.el (allout-widgets-pre-command-business) diff --git a/lisp/frameset.el b/lisp/frameset.el index b1ad9f7702a..132cbcd4856 100644 --- a/lisp/frameset.el +++ b/lisp/frameset.el @@ -129,6 +129,9 @@ root window of the frame.\n IMPORTANT: Modifying this slot may cause frameset functions to fail, unless the type constraints defined above are respected.\n\n(fn FRAMESET)") +;;;###autoload (autoload 'frameset-p "frameset" +;;;###autoload "Return non-nil if OBJECT is a frameset, nil otherwise." nil) + (defun frameset-copy (frameset) "Return a deep copy of FRAMESET. FRAMESET is copied with `copy-tree'." @@ -1184,6 +1187,41 @@ All keyword parameters default to nil." (unless (or (daemonp) (visible-frame-list)) (make-frame-visible (car (frame-list)))))) + +;; Register support + +(defun frameset--jump-to-register (data) + "Restore frameset from DATA stored in register. +Called from `jump-to-register'. Internal use only." + (let* ((delete (and current-prefix-arg t)) + (iconify-list (if delete nil (frame-list)))) + (frameset-restore (aref data 0) + :filters frameset-session-filter-alist + :reuse-frames (if delete t :keep)) + (mapc #'iconify-frame iconify-list) + (let ((frame (frameset-frame-with-id (aref data 1)))) + (when frame + (select-frame-set-input-focus frame) + (goto-char (aref data 2)))))) + +;;;###autoload +(defun frameset-to-register (register &optional _arg) + "Store the current frameset in register REGISTER. +Use \\[jump-to-register] to restore the frameset. +Argument is a character, naming the register." + (interactive "cFrameset to register: \nP") + (set-register register + (registerv-make + (vector (frameset-save nil + :app 'register + :filters frameset-session-filter-alist) + ;; frameset-save does not include the value of point + ;; in the current buffer, so record that separately. + (frameset-frame-id nil) + (point-marker)) + :print-func (lambda (_data) (princ "a frameset.")) + :jump-func #'frameset--jump-to-register))) + (provide 'frameset) ;;; frameset.el ends here diff --git a/lisp/register.el b/lisp/register.el index 84305f71d03..78f18dbc7c1 100644 --- a/lisp/register.el +++ b/lisp/register.el @@ -31,12 +31,6 @@ (eval-when-compile (require 'cl-lib)) -(declare-function frameset-frame-id "frameset" (frame)) -(declare-function frameset-frame-with-id "frameset" (id &optional frame-list)) -(declare-function frameset-p "frameset" (frameset)) -(declare-function frameset-restore "frameset" (frameset &rest keys) t) -(declare-function frameset-save "frameset" (frame-list &rest keys) t) - ;;; Code: (cl-defstruct @@ -77,9 +71,7 @@ A list of the form (file-query FILE-NAME POSITION) represents 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. -A list of the form (FRAMESET FRAME-ID POSITION) - represents a saved frameset plus the value of point in frame FRAME-ID.") + represents a saved frame configuration plus a saved value of point.") (defgroup register nil "Register commands." @@ -140,22 +132,6 @@ Argument is a character, naming the register." ;; of point in the current buffer, so record that separately. (set-register register (list (current-frame-configuration) (point-marker)))) -(defvar frameset-session-filter-alist) - -(defun frameset-to-register (register &optional _arg) - "Store the current frameset in register REGISTER. -Use \\[jump-to-register] to restore the frameset. -Argument is a character, naming the register." - (interactive "cFrameset to register: \nP") - (set-register register - (list (frameset-save nil - :app 'register - :filters frameset-session-filter-alist) - ;; frameset-save does not include the value of point - ;; in the current buffer, so record that separately. - (frameset-frame-id nil) - (point-marker)))) - (defalias 'register-to-point 'jump-to-register) (defun jump-to-register (register &optional delete) "Move point to location stored in a register. @@ -181,16 +157,6 @@ delete any existing frames that the frameset doesn't mention. ((and (consp val) (window-configuration-p (car val))) (set-window-configuration (car val)) (goto-char (cadr val))) - ((and (consp val) (frameset-p (car val))) - (let ((iconify-list (if delete nil (frame-list))) - frame) - (frameset-restore (car val) - :filters frameset-session-filter-alist - :reuse-frames (if delete t :keep)) - (mapc #'iconify-frame iconify-list) - (when (setq frame (frameset-frame-with-id (cadr val))) - (select-frame-set-input-focus frame) - (goto-char (nth 2 val))))) ((markerp val) (or (marker-buffer val) (error "That register's buffer no longer exists")) @@ -303,9 +269,6 @@ The Lisp value REGISTER is a character." ((and (consp val) (frame-configuration-p (car val))) (princ "a frame configuration.")) - ((and (consp val) (frameset-p (car val))) - (princ "a frameset.")) - ((and (consp val) (eq (car val) 'file)) (princ "the file ") (prin1 (cdr val))