0
0
Fork 1
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-09-29 21:37:50 +00:00

org-agenda: Refactored. Add test.

* lisp/org-agenda.el (org-agenda-mode): Factored out a function for a
  loop occuring two times.
* testing/lisp/test-org-agenda.el: test the text scale after
  agenda-undo.
This commit is contained in:
Marco Wahl 2018-06-24 09:52:29 +02:00
parent d6ebe38e2c
commit a6b4cec691
2 changed files with 44 additions and 24 deletions

View file

@ -2191,30 +2191,29 @@ The following commands are available:
face-remapping-alist))
(save (buffer-local-variables)))
(kill-all-local-variables)
(cond (org-agenda-doing-sticky-redo
;; Refreshing sticky agenda-buffer
;;
;; Preserve the value of `org-agenda-local-vars' variables.
(mapc #'make-local-variable org-agenda-local-vars)
(dolist (elem save)
(pcase elem
(`(,var . ,val) ;ignore unbound variables
(when (and val (memq var org-agenda-local-vars))
(set var val)))))
(setq-local org-agenda-this-buffer-is-sticky t))
(org-agenda-sticky
;; Creating a sticky Agenda buffer for the first time
(mapc 'make-local-variable org-agenda-local-vars)
(setq-local org-agenda-this-buffer-is-sticky t))
(t
;; Creating a non-sticky agenda buffer
(setq-local org-agenda-this-buffer-is-sticky nil)))
(mapc #'make-local-variable agenda-local-vars-to-keep)
(dolist (elem save)
(pcase elem
(`(,var . ,val) ;ignore unbound variables
(when (and val (memq var agenda-local-vars-to-keep))
(set var val))))))
(cl-flet ((reset-saved (var-set)
"Reset variables in VAR-SET to possibly stored value in SAVE."
(dolist (elem save)
(pcase elem
(`(,var . ,val) ;ignore unbound variables
(when (and val (memq var var-set))
(set var val)))))))
(cond (org-agenda-doing-sticky-redo
;; Refreshing sticky agenda-buffer
;;
;; Preserve the value of `org-agenda-local-vars' variables.
(mapc #'make-local-variable org-agenda-local-vars)
(reset-saved org-agenda-local-vars)
(setq-local org-agenda-this-buffer-is-sticky t))
(org-agenda-sticky
;; Creating a sticky Agenda buffer for the first time
(mapc 'make-local-variable org-agenda-local-vars)
(setq-local org-agenda-this-buffer-is-sticky t))
(t
;; Creating a non-sticky agenda buffer
(setq-local org-agenda-this-buffer-is-sticky nil)))
(mapc #'make-local-variable agenda-local-vars-to-keep)
(reset-saved agenda-local-vars-to-keep)))
(setq org-agenda-undo-list nil
org-agenda-pending-undo-list nil
org-agenda-bulk-marked-entries nil)

View file

@ -123,6 +123,27 @@
(org-toggle-sticky-agenda)
(org-test-agenda--kill-all-agendas))
;; agenda redo
(require 'face-remap)
(ert-deftest test-org-agenda/rescale ()
"Text scale survives `org-agenda-redo'."
(org-test-agenda--kill-all-agendas)
(unwind-protect
(let ((org-agenda-span 'day)
org-agenda-files)
(org-agenda-list)
(set-buffer org-agenda-buffer-name)
(text-scale-mode)
(text-scale-set 11)
(cl-assert (and (boundp text-scale-mode) text-scale-mode))
(org-agenda-redo)
(should text-scale-mode)
(should (= 11 text-scale-mode-amount)))
(org-test-agenda--kill-all-agendas)))
(provide 'test-org-agenda)