diff options
| author | Stefan Monnier | 2019-05-28 09:05:25 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2019-05-28 09:05:25 -0400 |
| commit | 4b117065e9dcdd1542f90e5560e1ace6767faacb (patch) | |
| tree | 28ad2800385811d2c17d743677aba473a134f964 | |
| parent | dd5ea0a068ce72277b9e06427063bf059ed1d03c (diff) | |
| download | emacs-4b117065e9dcdd1542f90e5560e1ace6767faacb.tar.gz emacs-4b117065e9dcdd1542f90e5560e1ace6767faacb.zip | |
* lisp/frameset.el: Stop using obsolete registerv objects
(frameset-register): New type.
(register-val-jump-to): Define on this new type, replacing
frameset--jump-to-register.
(register-val-describe): Define on this new type, replacing
frameset--print-register.
(frameset-to-register): Use new frameset-make-register.
(frameset--reuse-frame): η-reduce.
| -rw-r--r-- | lisp/frameset.el | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/lisp/frameset.el b/lisp/frameset.el index 3bc73751c0e..73b2071a5a0 100644 --- a/lisp/frameset.el +++ b/lisp/frameset.el | |||
| @@ -970,8 +970,7 @@ is the parameter alist of the frame being restored. Internal use only." | |||
| 970 | ;; that frame has already been loaded (which can happen after | 970 | ;; that frame has already been loaded (which can happen after |
| 971 | ;; M-x desktop-read). | 971 | ;; M-x desktop-read). |
| 972 | (setq frame (frameset--find-frame-if | 972 | (setq frame (frameset--find-frame-if |
| 973 | (lambda (f id) | 973 | #'frameset-frame-id-equal-p |
| 974 | (frameset-frame-id-equal-p f id)) | ||
| 975 | display (frameset-cfg-id parameters))) | 974 | display (frameset-cfg-id parameters))) |
| 976 | ;; If it has not been loaded, and it is not a minibuffer-only frame, | 975 | ;; If it has not been loaded, and it is not a minibuffer-only frame, |
| 977 | ;; let's look for an existing non-minibuffer-only frame to reuse. | 976 | ;; let's look for an existing non-minibuffer-only frame to reuse. |
| @@ -1350,15 +1349,17 @@ All keyword parameters default to nil." | |||
| 1350 | 1349 | ||
| 1351 | ;; Register support | 1350 | ;; Register support |
| 1352 | 1351 | ||
| 1353 | ;;;###autoload | 1352 | (cl-defstruct (frameset-register |
| 1354 | (defun frameset--jump-to-register (data) | 1353 | (:constructor nil) |
| 1355 | "Restore frameset from DATA stored in register. | 1354 | (:constructor frameset-make-register (frameset frame-id point))) |
| 1356 | Called from `jump-to-register'. Internal use only." | 1355 | frameset frame-id point) |
| 1356 | |||
| 1357 | (cl-defmethod register-val-jump-to ((data frameset-register) arg) | ||
| 1357 | (frameset-restore | 1358 | (frameset-restore |
| 1358 | (aref data 0) | 1359 | (frameset-register-frameset data) |
| 1359 | :filters frameset-session-filter-alist | 1360 | :filters frameset-session-filter-alist |
| 1360 | :reuse-frames (if current-prefix-arg t 'match) | 1361 | :reuse-frames (if arg t 'match) |
| 1361 | :cleanup-frames (if current-prefix-arg | 1362 | :cleanup-frames (if arg |
| 1362 | ;; delete frames | 1363 | ;; delete frames |
| 1363 | nil | 1364 | nil |
| 1364 | ;; iconify frames | 1365 | ;; iconify frames |
| @@ -1371,20 +1372,21 @@ Called from `jump-to-register'. Internal use only." | |||
| 1371 | ('ignored (delete-frame frame)))))) | 1372 | ('ignored (delete-frame frame)))))) |
| 1372 | 1373 | ||
| 1373 | ;; Restore selected frame, buffer and point. | 1374 | ;; Restore selected frame, buffer and point. |
| 1374 | (let ((frame (frameset-frame-with-id (aref data 1))) | 1375 | (let ((frame (frameset-frame-with-id (frameset-register-frame-id data))) |
| 1376 | (marker (frameset-register-point data)) | ||
| 1375 | buffer window) | 1377 | buffer window) |
| 1376 | (when frame | 1378 | (when frame |
| 1377 | (select-frame-set-input-focus frame) | 1379 | (select-frame-set-input-focus frame) |
| 1378 | (when (and (buffer-live-p (setq buffer (marker-buffer (aref data 2)))) | 1380 | (when (and (buffer-live-p |
| 1381 | (setq buffer (marker-buffer marker))) | ||
| 1379 | (window-live-p (setq window (get-buffer-window buffer frame)))) | 1382 | (window-live-p (setq window (get-buffer-window buffer frame)))) |
| 1380 | (set-frame-selected-window frame window) | 1383 | (set-frame-selected-window frame window) |
| 1381 | (with-current-buffer buffer (goto-char (aref data 2))))))) | 1384 | (with-current-buffer buffer (goto-char marker)))))) |
| 1382 | 1385 | ||
| 1383 | ;;;###autoload | 1386 | (cl-defmethod register-val-describe ((data frameset-register) _verbose) |
| 1384 | (defun frameset--print-register (data) | ||
| 1385 | "Print basic info about frameset stored in DATA. | 1387 | "Print basic info about frameset stored in DATA. |
| 1386 | Called from `list-registers' and `view-register'. Internal use only." | 1388 | Called from `list-registers' and `view-register'. Internal use only." |
| 1387 | (let* ((fs (aref data 0)) | 1389 | (let* ((fs (frameset-register-frameset data)) |
| 1388 | (ns (length (frameset-states fs)))) | 1390 | (ns (length (frameset-states fs)))) |
| 1389 | (princ (format "a frameset (%d frame%s, saved on %s)." | 1391 | (princ (format "a frameset (%d frame%s, saved on %s)." |
| 1390 | ns | 1392 | ns |
| @@ -1400,16 +1402,14 @@ Argument is a character, naming the register. | |||
| 1400 | Interactively, reads the register using `register-read-with-preview'." | 1402 | Interactively, reads the register using `register-read-with-preview'." |
| 1401 | (interactive (list (register-read-with-preview "Frameset to register: "))) | 1403 | (interactive (list (register-read-with-preview "Frameset to register: "))) |
| 1402 | (set-register register | 1404 | (set-register register |
| 1403 | (registerv-make | 1405 | (frameset-make-register |
| 1404 | (vector (frameset-save nil | 1406 | (frameset-save nil |
| 1405 | :app 'register | 1407 | :app 'register |
| 1406 | :filters frameset-session-filter-alist) | 1408 | :filters frameset-session-filter-alist) |
| 1407 | ;; frameset-save does not include the value of point | 1409 | ;; frameset-save does not include the value of point |
| 1408 | ;; in the current buffer, so record that separately. | 1410 | ;; in the current buffer, so record that separately. |
| 1409 | (frameset-frame-id nil) | 1411 | (frameset-frame-id nil) |
| 1410 | (point-marker)) | 1412 | (point-marker)))) |
| 1411 | :print-func #'frameset--print-register | ||
| 1412 | :jump-func #'frameset--jump-to-register))) | ||
| 1413 | 1413 | ||
| 1414 | (provide 'frameset) | 1414 | (provide 'frameset) |
| 1415 | 1415 | ||