Noorul Islam K M <noo...@noorul.com> wrote: > > Hello all, > > I have the following setup similar to Bernt Hansen. > > (setq org-tag-alist (quote ((:startgroup) > ("@errand" . ?e) > ("@office" . ?o) > ("@home" . ?h) > (:endgroup) > ("PHONE" . ?p) > ("WAITING" . ?w) > ("HOME" . ?H) > ("CANCELLED" . ?c) > ("NOTE" . ?n) > ("ORG" . ?O)))) > > New when I try to add a new tag with the key press "C-c C-q TAB" from a > heading, I get following backtrace. > > Debugger entered--Lisp error: (wrong-type-argument stringp :endgroup) > string-match("" :endgroup) > ido-read-internal(list "Tag: " nil nil nil nil) > ido-completing-read("Tag: " (#("REFILE" 0 6 (inherited t)) :startgroup > "@errand" "@office" "@home" :endgroup "PHONE" "WAITING" "HOME" "CANCELLED" > "NOTE" "ORG")) > apply(ido-completing-read "Tag: " (#("REFILE" 0 6 (inherited t)) > :startgroup "@errand" "@office" "@home" :endgroup "PHONE" "WAITING" "HOME" > "CANCELLED" "NOTE" "ORG") nil) > org-icompleting-read("Tag: " (#("REFILE" 0 6 (inherited t)) :startgroup > "@errand" "@office" "@home" :endgroup "PHONE" "WAITING" "HOME" "CANCELLED" > "NOTE" "ORG")) > org-fast-tag-selection(nil (#("REFILE" 0 6 (inherited t))) ((:startgroup) > ("@errand" . 101) ("@office" . 111) ("@home" . 104) (:endgroup) ("PHONE" . > 112) ("WAITING" . 119) ("HOME" . 72) ("CANCELLED" . 99) ("NOTE" . 110) ("ORG" > . 79) (#("REFILE" 0 6 (inherited t)))) nil) > org-set-tags(nil nil) > org-set-tags-command(nil) > call-interactively(org-set-tags-command nil nil) > > I think I nailed down the problem and fixed it in the attached patch. >
Why did the :endgroup fail and not the :startgroup? Nick > Changelog: > > * lisp/org.el (org-fast-tag-selection): Remove non-string object from > org-tag-alist. > > Thanks and Regards > Noorul > > diff --git a/lisp/org.el b/lisp/org.el > index 8ffb6c8..2df860e 100644 > --- a/lisp/org.el > +++ b/lisp/org.el > @@ -13756,7 +13756,10 @@ Returns the new tags string, or nil to not change > the current settings." > (append (or buffer-tags > (with-current-buffer buf > (mapcar 'car > (org-get-buffer-tags)))) > - (mapcar 'car table))))) > + (delq nil > + (mapcar (lambda (x) > + (if (stringp > + (car x)) x)) > table)))))) > (quit (setq tg ""))) > (when (string-match "\\S-" tg) > (add-to-list 'buffer-tags (list tg))