On Sat, Dec 30, 2017 at 3:38 AM, Allen Li <vianchielfa...@gmail.com> wrote:
> Doing a text agenda search with org-agenda-text-search-extra-files
> set to (agenda-archives) and with a buffer restriction results in an error:
>
> Debugger entered--Lisp error: (wrong-type-argument stringp agenda-archives)
>   file-exists-p(agenda-archives)
>   #[(a b) "\302 !\205 \302 !\205 \303  \"\207" [a b file-exists-p
> file-equal-p] 3]("/tmp/tmp.org" agenda-archives)
>   cl--position("/tmp/tmp.org" (agenda-archives) 0 1)
>   cl--delete-duplicates(("/tmp/tmp.org" agenda-archives) (:test #[(a
> b) "\302 !\205 \302 !\205 \303  \"\207" [a b file-exists-p
> file-equal-p] 3]) t)
>   cl-remove-duplicates(("/tmp/tmp.org" agenda-archives) :test #[(a b)
> "\302 !\205 \302 !\205 \303  \"\207" [a b file-exists-p file-equal-p]
> 3])
>   org-search-view(nil)
>   funcall-interactively(org-search-view nil)
>   call-interactively(org-search-view)
>   org-agenda(nil)
>   funcall-interactively(org-agenda nil)
>   call-interactively(org-agenda nil nil)
>   command-execute(org-agenda)

I made a patch for this (attached), which works when evaluated in my
working session.
We were not removing the agenda-archives symbol if a restriction is in effect.

>
>
> Emacs  : GNU Emacs 25.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.26)
>  of 2017-12-04
> Package: Org mode version 9.1.5 (9.1.5-1-gb3ddb0-elpaplus @
> /home/ionasal/.emacs.d/elpa/org-plus-contrib-20171225/)
From ea7602a50ce258eeb4833962f91150d401303171 Mon Sep 17 00:00:00 2001
From: Allen Li <darkfel...@felesatra.moe>
Date: Sat, 30 Dec 2017 03:41:51 -0800
Subject: [PATCH] Remove agenda-archives even with buffer restriction

---
 lisp/org-agenda.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 888818630..7f3b9d0ca 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -4482,9 +4482,9 @@ is active."
       (setq files (org-agenda-files nil 'ifmode))
       ;; Add `org-agenda-text-search-extra-files' unless there is some
       ;; restriction.
-      (unless (get 'org-agenda-files 'org-restrict)
-	(when (eq (car org-agenda-text-search-extra-files) 'agenda-archives)
-	  (pop org-agenda-text-search-extra-files)
+      (when (eq (car org-agenda-text-search-extra-files) 'agenda-archives)
+	(pop org-agenda-text-search-extra-files)
+	(unless (get 'org-agenda-files 'org-restrict)
 	  (setq files (org-add-archive-files files))))
       ;; Uniquify files.  However, let `org-check-agenda-file' handle
       ;; non-existent ones.
-- 
2.15.1

Reply via email to