* Filters lost after reviving buried, sticky agenda @ 2015-05-01 21:19 Daniel Borchmann 2015-06-21 15:47 ` Daimrod 0 siblings, 1 reply; 10+ messages in thread From: Daniel Borchmann @ 2015-05-01 21:19 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1857 bytes --] Dear all, I regularly lose all my filters when I bury a sticky agenda and revive it later. In that case, the variable `org-agenda-tag-filter' is set to nil, although it was non-nil before burying. I played around a bit, and found out that `org-agenda-tag-filter' is buffer-local (which is not a surprise). When the agenda buffer is revived, the function `org-agenda-prepare' is called, which, among others, should reset the filters (provided that `org-agenda-persistent-filter' is set). The beginning of the function is --->8--- (defun org-agenda-prepare (&optional name) (let ((filter-alist (if org-agenda-persistent-filter (list `(tag . ,org-agenda-tag-filter) `(re . ,org-agenda-regexp-filter) `(car . ,org-agenda-category-filter))))) ...)) ---8<--- It seems to me that `org-agenda-tag-filter' is read *before* the old agenda buffer is poped up (i.e., made current), and thus results in a `nil' value. Indeed, if I replace the definition of `filter-alist' by --->8--- (let ((filter-alist (if org-agenda-persistent-filter (with-current-buffer (get-buffer org-agenda-buffer-name) (list `(tag . ,org-agenda-tag-filter) `(re . ,org-agenda-regexp-filter) `(car . ,org-agenda-category-filter)))))) ...) ---8<--- then the bug (seems to) disappear. My question is now: is this correct, or did I understand something wrong? If my understanding is correct, how this bug be fixed more elegantly? Best, Daniel -- Daniel Borchmann http://daniel.kxpq.de GPG (Mail) 0849 473E 6BF0 B504 DF0B D640 455E 3610 01FF 778F [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 818 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Filters lost after reviving buried, sticky agenda 2015-05-01 21:19 Filters lost after reviving buried, sticky agenda Daniel Borchmann @ 2015-06-21 15:47 ` Daimrod 2015-06-21 18:40 ` Daniel Borchmann 2015-06-22 13:27 ` Nick Dokos 0 siblings, 2 replies; 10+ messages in thread From: Daimrod @ 2015-06-21 15:47 UTC (permalink / raw) To: Daniel Borchmann; +Cc: emacs-orgmode [-- Attachment #1.1: Type: text/plain, Size: 1905 bytes --] Daniel Borchmann <daniel.borchmann@tu-dresden.de> writes: > Dear all, > > I regularly lose all my filters when I bury a sticky agenda and revive > it later. In that case, the variable `org-agenda-tag-filter' is set to > nil, although it was non-nil before burying. > > I played around a bit, and found out that `org-agenda-tag-filter' is > buffer-local (which is not a surprise). When the agenda buffer is > revived, the function `org-agenda-prepare' is called, which, among > others, should reset the filters (provided that > `org-agenda-persistent-filter' is set). The beginning of the function > is > > --->8--- > (defun org-agenda-prepare (&optional name) > (let ((filter-alist (if org-agenda-persistent-filter > (list `(tag . ,org-agenda-tag-filter) > `(re . ,org-agenda-regexp-filter) > `(car . ,org-agenda-category-filter))))) > ...)) > ---8<--- > > It seems to me that `org-agenda-tag-filter' is read *before* the old > agenda buffer is poped up (i.e., made current), and thus results in a > `nil' value. Indeed, if I replace the definition of `filter-alist' by > > --->8--- > (let ((filter-alist (if org-agenda-persistent-filter > (with-current-buffer > (get-buffer org-agenda-buffer-name) > (list `(tag . ,org-agenda-tag-filter) > `(re . ,org-agenda-regexp-filter) > `(car . ,org-agenda-category-filter)))))) > ...) > ---8<--- > > then the bug (seems to) disappear. > > My question is now: is this correct, or did I understand something > wrong? If my understanding is correct, how this bug be fixed more > elegantly? It doesn't work at startup when agenda hasn't been built yet. The following patch does seem to fix that. If it's ok, I can push it. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.2: 0001-lisp-org-agenda.el-Fix-non-persistent-filters-when-r.patch --] [-- Type: text/x-diff, Size: 1494 bytes --] From d2e8fef81585c249f33fa37260f6228709a67017 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Jadi?= <gregoire.jadi@univ-nantes.fr> Date: Fri, 12 Jun 2015 17:35:30 +0200 Subject: [PATCH] lisp/org-agenda.el : Fix non-persistent filters when refreshing sticky agenda * lisp/org-agenda.el (org-agenda-prepare): Fix non-persistent filters when refreshing sticky agenda When a sticky agenda is buried, then reviving and refreshing, existing filters are ignored even when org-agenda-persistent-filter is `t'. Reported and fixed by Daniel Borchmann --- lisp/org-agenda.el | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index f5d1022..3a1f5bc 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -3642,10 +3642,11 @@ FILTER-ALIST is an alist of filters we need to apply when (defun org-agenda-prepare (&optional name) (let ((filter-alist (if org-agenda-persistent-filter - (list `(tag . ,org-agenda-tag-filter) - `(re . ,org-agenda-regexp-filter) - `(effort . ,org-agenda-effort-filter) - `(car . ,org-agenda-category-filter))))) + (with-current-buffer + (get-buffer-create org-agenda-buffer-name) + (list `(tag . ,org-agenda-tag-filter) + `(re . ,org-agenda-regexp-filter) + `(car . ,org-agenda-category-filter)))))) (if (org-agenda-use-sticky-p) (progn (put 'org-agenda-tag-filter :preset-filter nil) -- 1.9.1 [-- Attachment #1.3: Type: text/plain, Size: 30 bytes --] Best, -- Daimrod/Greg [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 818 bytes --] ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: Filters lost after reviving buried, sticky agenda 2015-06-21 15:47 ` Daimrod @ 2015-06-21 18:40 ` Daniel Borchmann 2015-06-22 4:11 ` Daimrod 2015-06-22 13:27 ` Nick Dokos 1 sibling, 1 reply; 10+ messages in thread From: Daniel Borchmann @ 2015-06-21 18:40 UTC (permalink / raw) To: Daimrod; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 734 bytes --] ghItlhpu' Daimrod <daimrod@gmail.com>: >> My question is now: is this correct, or did I understand something >> wrong? If my understanding is correct, how this bug be fixed more >> elegantly? > > It doesn't work at startup when agenda hasn't been built yet. The > following patch does seem to fix that. If it's ok, I can push it. It works for me. Thanks! Daniel -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dr. rer. nat. Daniel Borchmann Postdoctoral Research Associate Technische Universität Dresden Fakultät Informatik Institut für Theoretische Informatik Lehrstuhl für Automatentheorie 01062 Dresden Tel.: +49 351 463-34059 E-Mail: daniel.borchmann@tu-dresden.de ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 818 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Filters lost after reviving buried, sticky agenda 2015-06-21 18:40 ` Daniel Borchmann @ 2015-06-22 4:11 ` Daimrod 2015-06-22 15:09 ` Subhan Michael Tindall 0 siblings, 1 reply; 10+ messages in thread From: Daimrod @ 2015-06-22 4:11 UTC (permalink / raw) To: Daniel Borchmann; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 522 bytes --] Daniel Borchmann <daniel.borchmann@tu-dresden.de> writes: > ghItlhpu' Daimrod <daimrod@gmail.com>: >>> My question is now: is this correct, or did I understand something >>> wrong? If my understanding is correct, how this bug be fixed more >>> elegantly? >> >> It doesn't work at startup when agenda hasn't been built yet. The >> following patch does seem to fix that. If it's ok, I can push it. > > It works for me. Great! If nobody complains in the next days, I'll push it. Best, -- Daimrod/Greg [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 818 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Filters lost after reviving buried, sticky agenda 2015-06-22 4:11 ` Daimrod @ 2015-06-22 15:09 ` Subhan Michael Tindall 0 siblings, 0 replies; 10+ messages in thread From: Subhan Michael Tindall @ 2015-06-22 15:09 UTC (permalink / raw) To: Daimrod, Daniel Borchmann; +Cc: emacs-orgmode@gnu.org > -----Original Message----- > From: emacs-orgmode-bounces+subhant=familycareinc.org@gnu.org > [mailto:emacs-orgmode-bounces+subhant=familycareinc.org@gnu.org] On > Behalf Of Daimrod > Sent: Sunday, June 21, 2015 9:11 PM > To: Daniel Borchmann > Cc: emacs-orgmode@gnu.org > Subject: Re: [O] Filters lost after reviving buried, sticky agenda > > Daniel Borchmann <daniel.borchmann@tu-dresden.de> writes: > > > ghItlhpu' Daimrod <daimrod@gmail.com>: > >>> My question is now: is this correct, or did I understand something > >>> wrong? If my understanding is correct, how this bug be fixed more > >>> elegantly? > >> > >> It doesn't work at startup when agenda hasn't been built yet. The > >> following patch does seem to fix that. If it's ok, I can push it. > > > > It works for me. > > Great! If nobody complains in the next days, I'll push it. > > Best, > > -- > Daimrod/Greg Please do! I use sticky agendas extensively and have been looking in to this problem. But if you beat me to a working solution, I'll be happy. I'll install the patch and give it a whirl, if you don't hear from me figure that I didn't find anything This message is intended for the sole use of the individual and entity to which it is addressed and may contain information that is privileged, confidential and exempt from disclosure under applicable law. If you are not the intended addressee, nor authorized to receive for the intended addressee, you are hereby notified that you may not use, copy, disclose or distribute to anyone the message or any information contained in the message. If you have received this message in error, please immediately advise the sender by reply email and delete the message. Thank you. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Filters lost after reviving buried, sticky agenda 2015-06-21 15:47 ` Daimrod 2015-06-21 18:40 ` Daniel Borchmann @ 2015-06-22 13:27 ` Nick Dokos 2015-06-23 8:47 ` Daimrod 1 sibling, 1 reply; 10+ messages in thread From: Nick Dokos @ 2015-06-22 13:27 UTC (permalink / raw) To: emacs-orgmode Daimrod <daimrod@gmail.com> writes: > It doesn't work at startup when agenda hasn't been built yet. The > following patch does seem to fix that. If it's ok, I can push it. > > From d2e8fef81585c249f33fa37260f6228709a67017 Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?Gr=C3=A9goire=20Jadi?= <gregoire.jadi@univ-nantes.fr> > Date: Fri, 12 Jun 2015 17:35:30 +0200 > Subject: [PATCH] lisp/org-agenda.el : Fix non-persistent filters when > refreshing sticky agenda > > * lisp/org-agenda.el (org-agenda-prepare): Fix non-persistent filters when refreshing sticky agenda > > When a sticky agenda is buried, then reviving and refreshing, existing > filters are ignored even when org-agenda-persistent-filter is `t'. > > Reported and fixed by Daniel Borchmann > --- > lisp/org-agenda.el | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el > index f5d1022..3a1f5bc 100644 > --- a/lisp/org-agenda.el > +++ b/lisp/org-agenda.el > @@ -3642,10 +3642,11 @@ FILTER-ALIST is an alist of filters we need to apply when > > (defun org-agenda-prepare (&optional name) > (let ((filter-alist (if org-agenda-persistent-filter > - (list `(tag . ,org-agenda-tag-filter) > - `(re . ,org-agenda-regexp-filter) > - `(effort . ,org-agenda-effort-filter) > - `(car . ,org-agenda-category-filter))))) > + (with-current-buffer > + (get-buffer-create org-agenda-buffer-name) > + (list `(tag . ,org-agenda-tag-filter) > + `(re . ,org-agenda-regexp-filter) > + `(car . ,org-agenda-category-filter)))))) > (if (org-agenda-use-sticky-p) > (progn > (put 'org-agenda-tag-filter :preset-filter nil) What happened to the effort filter? -- Nick ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Filters lost after reviving buried, sticky agenda 2015-06-22 13:27 ` Nick Dokos @ 2015-06-23 8:47 ` Daimrod 2015-06-23 9:15 ` Daimrod 0 siblings, 1 reply; 10+ messages in thread From: Daimrod @ 2015-06-23 8:47 UTC (permalink / raw) To: Nick Dokos; +Cc: emacs-orgmode [-- Attachment #1.1: Type: text/plain, Size: 182 bytes --] Nick Dokos <ndokos@gmail.com> writes: > What happened to the effort filter? Good catch! Thanks. Here is an updated patch plus another one to fix the regexp and category filters. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.2: 0001-lisp-org-agenda.el-Fix-non-persistent-filters-when-r.patch --] [-- Type: text/x-diff, Size: 1546 bytes --] From 59cd3eb256d9473db42f9a1629755140c0d648cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Jadi?= <gregoire.jadi@univ-nantes.fr> Date: Fri, 12 Jun 2015 17:35:30 +0200 Subject: [PATCH 1/2] lisp/org-agenda.el : Fix non-persistent filters when refreshing sticky agenda * lisp/org-agenda.el (org-agenda-prepare): Fix non-persistent filters when refreshing sticky agenda When a sticky agenda is buried, then reviving and refreshing, existing filters are ignored even when org-agenda-persistent-filter is `t'. Reported and fixed by Daniel Borchmann --- lisp/org-agenda.el | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index f5d1022..a07eead 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -3642,10 +3642,12 @@ FILTER-ALIST is an alist of filters we need to apply when (defun org-agenda-prepare (&optional name) (let ((filter-alist (if org-agenda-persistent-filter - (list `(tag . ,org-agenda-tag-filter) - `(re . ,org-agenda-regexp-filter) - `(effort . ,org-agenda-effort-filter) - `(car . ,org-agenda-category-filter))))) + (with-current-buffer + (get-buffer-create org-agenda-buffer-name) + (list `(tag . ,org-agenda-tag-filter) + `(re . ,org-agenda-regexp-filter) + `(effort . ,org-agenda-effort-filter) + `(car . ,org-agenda-category-filter)))))) (if (org-agenda-use-sticky-p) (progn (put 'org-agenda-tag-filter :preset-filter nil) -- 1.9.1 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.3: 0002-lisp-org-agenda.el-Fix-non-persistent-regexp-and-cat.patch --] [-- Type: text/x-diff, Size: 1279 bytes --] From 3dc0e17b0887b182309696b2f790dac9ad3ca018 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Jadi?= <gregoire.jadi@univ-nantes.fr> Date: Tue, 23 Jun 2015 10:42:25 +0200 Subject: [PATCH 2/2] lisp/org-agenda.el: Fix non-persistent regexp and category filters in sticky agenda * lisp/org-agenda.el (org-agenda-prepare): Use the correct key for category and regexp filters. `org-agenda-finalize' uses 'regexp and 'category whereas `org-agenda-prepare' used 're and 'car. --- lisp/org-agenda.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index a07eead..8efc037 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -3645,9 +3645,9 @@ FILTER-ALIST is an alist of filters we need to apply when (with-current-buffer (get-buffer-create org-agenda-buffer-name) (list `(tag . ,org-agenda-tag-filter) - `(re . ,org-agenda-regexp-filter) + `(regexp . ,org-agenda-regexp-filter) `(effort . ,org-agenda-effort-filter) - `(car . ,org-agenda-category-filter)))))) + `(category . ,org-agenda-category-filter)))))) (if (org-agenda-use-sticky-p) (progn (put 'org-agenda-tag-filter :preset-filter nil) -- 1.9.1 [-- Attachment #1.4: Type: text/plain, Size: 25 bytes --] -- Daimrod/Greg [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 818 bytes --] ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: Filters lost after reviving buried, sticky agenda 2015-06-23 8:47 ` Daimrod @ 2015-06-23 9:15 ` Daimrod 2015-06-23 21:35 ` Nicolas Goaziou 0 siblings, 1 reply; 10+ messages in thread From: Daimrod @ 2015-06-23 9:15 UTC (permalink / raw) To: Nick Dokos; +Cc: emacs-orgmode [-- Attachment #1.1: Type: text/plain, Size: 113 bytes --] Err, I should have tested it before sending the patch, sorry. Here is an updated version of the second patch : [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1.2: 0002-lisp-org-agenda.el-Fix-non-persistent-category-filte.patch --] [-- Type: text/x-diff, Size: 1099 bytes --] From 11ef3cc8dd804a9498edc856350d5e57d9ce3fff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Jadi?= <gregoire.jadi@univ-nantes.fr> Date: Tue, 23 Jun 2015 10:42:25 +0200 Subject: [PATCH 2/2] lisp/org-agenda.el: Fix non-persistent category filters in sticky agenda * lisp/org-agenda.el (org-agenda-prepare): Use the correct key for category filter. `org-agenda-prepare-window' uses 'cat whereas `org-agenda-prepare' used 'car. --- lisp/org-agenda.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index a07eead..32509a5 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -3647,7 +3647,7 @@ FILTER-ALIST is an alist of filters we need to apply when (list `(tag . ,org-agenda-tag-filter) `(re . ,org-agenda-regexp-filter) `(effort . ,org-agenda-effort-filter) - `(car . ,org-agenda-category-filter)))))) + `(cat . ,org-agenda-category-filter)))))) (if (org-agenda-use-sticky-p) (progn (put 'org-agenda-tag-filter :preset-filter nil) -- 1.9.1 [-- Attachment #1.3: Type: text/plain, Size: 30 bytes --] Best, -- Daimrod/Greg [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 818 bytes --] ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: Filters lost after reviving buried, sticky agenda 2015-06-23 9:15 ` Daimrod @ 2015-06-23 21:35 ` Nicolas Goaziou 2015-06-24 7:54 ` Daimrod 0 siblings, 1 reply; 10+ messages in thread From: Nicolas Goaziou @ 2015-06-23 21:35 UTC (permalink / raw) To: Daimrod; +Cc: Nick Dokos, emacs-orgmode Daimrod <daimrod@gmail.com> writes: > Here is an updated version of the second patch : Both look good. Could you can push them. Thank you. Regards, ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Filters lost after reviving buried, sticky agenda 2015-06-23 21:35 ` Nicolas Goaziou @ 2015-06-24 7:54 ` Daimrod 0 siblings, 0 replies; 10+ messages in thread From: Daimrod @ 2015-06-24 7:54 UTC (permalink / raw) To: Nick Dokos; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 260 bytes --] Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Daimrod <daimrod@gmail.com> writes: > >> Here is an updated version of the second patch : > > Both look good. Could you can push them. Thank you. Done, thank you. > Regards, -- Daimrod/Greg [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 818 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2015-06-24 7:54 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-05-01 21:19 Filters lost after reviving buried, sticky agenda Daniel Borchmann 2015-06-21 15:47 ` Daimrod 2015-06-21 18:40 ` Daniel Borchmann 2015-06-22 4:11 ` Daimrod 2015-06-22 15:09 ` Subhan Michael Tindall 2015-06-22 13:27 ` Nick Dokos 2015-06-23 8:47 ` Daimrod 2015-06-23 9:15 ` Daimrod 2015-06-23 21:35 ` Nicolas Goaziou 2015-06-24 7:54 ` Daimrod
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).