Am 29.08.2012 20:30, schrieb Achim Gratz: > Nick Dokos writes: >> There was a backtrace in Rainer's original message complaining about >> org-keys not being defined. If I had to guess, I'd say it looks like a >> frankenstein build to me, but I'm really not sure. > > Yes, but he's since re-made the autoloads file at least and the new > backtrace might be different. > > Anyway, org-keys is defined in org-agenda and it looks like most if not > all of the backtrace is also from org-agenda, and it's been a recent > addition by Bastien… it seems that it is declared as a dynamic variable > but not bound in all autoloaded functions, so there definitely are > codepaths that might find this variable undefined. I don't know if > something would preclude the declaration be changed to e definition with > nil as a value, but I think Bastien would know. > > > Regards, > Achim. >
I use sticky Agenda since some months. Doing a "org-toggle-sticky-agenda" and calling any agenda function makes the error disappear! example of one of my sticky Agendas: .. ("01" "agenda - prio A,B todos - sorted prio up - 1 day" ;; ( (agenda "prio ABC agenda" ( ;; (org-agenda-skip-function ;; (lambda nil ;; (org-agenda-skip-entry-if (quote notregexp) "\\=.*\\[#A\\|#B\\|#C\\]"))) (org-agenda-span 'day) ;; (org-agenda-span 1) (org-agenda-start-with-log-mode t) (org-agenda-overriding-header "Today's Agenda + Prio A todos "))) (alltodo "todos Prio A+B" ((org-agenda-skip-function (lambda nil (or (org-agenda-skip-entry-if (quote notregexp) "\\=.*\\[#A\\|#B\\]") ;; (org-agenda-skip-entry-if 'todo '("MOVED")) ;; (org-agenda-skip-entry-if 'todo 'done) (org-agenda-skip-entry-if 'scheduled 'deadline )))))) ) ((org-agenda-sorting-strategy '(time-up priority-down todo-state-up)))) .. Here is my currrent backtrace, make autoloads does not change anything: Debugger entered--Lisp error: (void-variable org-keys) (and org-keys (stringp org-match)) (cond ((and org-keys (stringp org-match)) (format "*Org Agenda(%s:%s)*" org-keys org-match)) (org-keys (format "*Org Agenda(%s)*" org-keys)) (t "*Org Agenda(a)*")) (setq org-agenda-buffer-name (cond ((and org-keys (stringp org-match)) (format "*Org Agenda(%s:%s)*" org-keys org-match)) (org-keys (format "*Org Agenda(%s)*" org-keys)) (t "*Org Agenda(a)*"))) (if org-agenda-sticky (setq org-agenda-buffer-name (cond ((and org-keys (stringp org-match)) (format "*Org Agenda(%s:%s)*" org-keys org-match)) (org-keys (format "*Org Agenda(%s)*" org-keys)) (t "*Org Agenda(a)*")))) (catch (quote exit) (if org-agenda-sticky (setq org-agenda-buffer-name (cond ((and org-keys (stringp org-match)) (format "*Org Agenda(%s:%s)*" org-keys org-match)) (org-keys (format "*Org Agenda(%s)*" org-keys)) (t "*Org Agenda(a)*")))) (org-agenda-prepare "Day/Week") (setq start-day (or start-day org-agenda-start-day)) (if org-agenda-overriding-arguments (setq arg (car org-agenda-overriding-arguments) start-day (nth 1 org-agenda-overriding-arguments) span (nth 2 org-agenda-overriding-arguments))) (if (stringp start-day) (setq start-day (time-to-days (org-read-date nil t start-day)))) (setq org-agenda-last-arguments (list arg start-day span)) (org-compile-prefix-format (quote agenda)) (org-set-sorting-strategy (quote agenda)) (let* ((span (org-agenda-ndays-to-span (or span org-agenda-ndays org-agenda-span))) (today (org-today)) (sd (or start-day today)) (ndays (org-agenda-span-to-ndays span sd)) (org-agenda-start-on-weekday (if (eq ndays 7) org-agenda-start-on-weekday)) (thefiles (org-agenda-files nil (quote ifmode))) (files thefiles) (start (if (or (null org-agenda-start-on-weekday) (< ndays 7)) sd (let* ((nt ...) (n1 org-agenda-start-on-weekday) (d ...)) (- sd (+ ... d))))) (day-numbers (list start)) (day-cnt 0) (inhibit-redisplay (not debug-on-error)) (org-agenda-show-log-scoped org-agenda-show-log) s e rtn rtnall file date d start-pos end-pos todayp clocktable-start clocktable-end filter) (setq org-agenda-redo-command (list (quote org-agenda-list) (list (quote quote) arg) start-day (list (quote quote) span))) (dotimes (n (1- ndays)) (push (1+ (car day-numbers)) day-numbers)) (setq day-numbers (nreverse day-numbers)) (setq clocktable-start (car day-numbers) clocktable-end (1+ (or (org-last day-numbers) 0))) (org-set-local (quote org-starting-day) (car day-numbers)) (org-set-local (quote org-arg-loc) arg) (org-set-local (quote org-agenda-current-span) (org-agenda-ndays-to-span span)) (unless org-agenda-compact-blocks (let* ((d1 (car day-numbers)) (d2 (org-last day-numbers)) (w1 (org-days-to-iso-week d1)) (w2 (org-days-to-iso-week d2))) (setq s (point)) (if org-agenda-overriding-header (insert (org-add-props (copy-sequence org-agenda-overriding-header) nil (quote face) (quote org-agenda-structure)) "\n") (insert (org-agenda-span-name span) "-agenda" (if (< ... 350) (if ... ... ...) "") ":\n"))) (add-text-properties s (1- (point)) (list (quote face) (quote org-agenda-structure) (quote org-date-line) t)) (org-agenda-mark-header-line s)) (while (setq d (pop day-numbers)) (setq date (calendar-gregorian-from-absolute d) s (point)) (if (or (setq todayp (= d today)) (and (not start-pos) (= d sd))) (setq start-pos (point)) (if (and start-pos (not end-pos)) (setq end-pos (point)))) (setq files thefiles rtnall nil) (while (setq file (pop files)) (catch (quote nextfile) (org-check-agenda-file file) (let ((org-agenda-entry-types org-agenda-entry-types)) (unless org-agenda-include-deadlines (setq org-agenda-entry-types ...)) (cond (... ...) (org-agenda-show-log-scoped ...) (t ...))) (setq rtnall (append rtnall rtn)))) (if org-agenda-include-diary (let ((org-agenda-search-headline-for-time t)) (require (quote diary-lib)) (setq rtn (org-get-entries-from-diary date)) (setq rtnall (append rtnall rtn)))) (if (or rtnall org-agenda-show-all-dates) (progn (setq day-cnt (1+ day-cnt)) (insert (if (stringp org-agenda-format-date) (format-time-string org-agenda-format-date ...) (funcall org-agenda-format-date date)) "\n") (put-text-property s (1- (point)) (quote face) (org-agenda-get-day-face date)) (put-text-property s (1- (point)) (quote org-date-line) t) (put-text-property s (1- (point)) (quote org-agenda-date-header) t) (put-text-property s (1- (point)) (quote org-day-cnt) day-cnt) (when todayp (put-text-property s (1- ...) (quote org-today) t)) (setq rtnall (org-agenda-add-time-grid-maybe rtnall ndays todayp)) (if rtnall (insert (org-finalize-agenda-entries rtnall) "\n")) (put-text-property s (1- (point)) (quote day) d) (put-text-property s (1- (point)) (quote org-day-cnt) day-cnt)))) (when (and org-agenda-clockreport-mode clocktable-start) (let ((org-agenda-files (org-agenda-files nil (quote ifmode))) (p (copy-sequence org-agenda-clockreport-parameter-plist)) tbl) (setq p (org-plist-delete p :block)) (setq p (plist-put p :tstart clocktable-start)) (setq p (plist-put p :tend clocktable-end)) (setq p (plist-put p :scope (quote agenda))) (when (and (eq org-agenda-clockreport-mode (quote with-filter)) (setq filter (or org-agenda-tag-filter-while-redo ...))) (setq p (plist-put p :tags (mapconcat ... filter "")))) (setq tbl (apply (quote org-get-clocktable) p)) (insert tbl))) (goto-char (point-min)) (or org-agenda-multi (org-agenda-fit-window-to-buffer)) (unless (and (pos-visible-in-window-p (point-min)) (pos-visible-in-window-p (point-max))) (goto-char (1- (point-max))) (recenter -1) (if (not (pos-visible-in-window-p (or start-pos 1))) (progn (goto-char (or start-pos 1)) (recenter 1)))) (goto-char (or start-pos 1)) (add-text-properties (point-min) (point-max) (quote (org-agenda-type agenda))) (if (eq org-agenda-show-log-scoped (quote clockcheck)) (org-agenda-show-clocking-issues)) (org-finalize-agenda) (setq buffer-read-only t) (message ""))) org-agenda-list(nil "2012-08-22") org-agenda-goto-date("2012-08-22") call-interactively(org-agenda-goto-date nil nil)