diff options
author | Marco Wahl <marcowahlsoft@gmail.com> | 2018-06-24 09:52:29 +0200 |
---|---|---|
committer | Marco Wahl <marcowahlsoft@gmail.com> | 2018-06-24 09:52:29 +0200 |
commit | a6b4cec691317a903475519dc4aaf105beda1833 (patch) | |
tree | 86635b0265e26760a9d49c8a9ca9426bac0dd648 | |
parent | d6ebe38e2c420daa8ff0a27f5e4d5af2672a84f6 (diff) | |
download | org-mode-a6b4cec691317a903475519dc4aaf105beda1833.tar.gz |
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.
-rw-r--r-- | lisp/org-agenda.el | 47 | ||||
-rw-r--r-- | testing/lisp/test-org-agenda.el | 21 |
2 files changed, 44 insertions, 24 deletions
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index 3255d73..eaeddb6 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -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) diff --git a/testing/lisp/test-org-agenda.el b/testing/lisp/test-org-agenda.el index 552792f..6aaa88f 100644 --- a/testing/lisp/test-org-agenda.el +++ b/testing/lisp/test-org-agenda.el @@ -124,6 +124,27 @@ (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) ;;; test-org-agenda.el ends here |