Hi,
Since upgrading to Emacs 29.1 and Org 9.6.6, I am getting an error when
opening a bookmark to an Org subtree buffer created with burly.el. When
opening the bookmark, burly calls org-tree-to-indirect-buffer to make a
new indirect buffer showing the subtree in question. This worked fine
in Emacs 28 and the previous Org version I was using, 9.5.something,
IIRC. Now I get this error (please see the attached backtrace, which is
abbreviated, and some functions were re-evaluated so as to be interpreted).
FWIW, I also tried setting org-fold-core-style to overlays and
restarting Emacs, but the error still happens, although with a different
symbol in place of org-fold-outline.
Thanks for your work on Org.
Adam
Debugger entered--Lisp error: (wrong-type-argument listp org-fold-outline)
car(org-fold-outline)
alist-get(org-fold-outline ((:alias . org-link) (org-link . org-link) (:alias
. org-link-description) (org-link-description . org-link-description)
(property-drawer . org-fold-drawer) (drawer . org-fold-drawer) (:alias .
org-fold-drawer) (org-fold-drawer . org-fold-drawer) (verse-block .
org-fold-block) (src-block . org-fold-block) (special-block . org-fold-block)
(quote-block . org-fold-block) (export-block . org-fold-block) (example-block .
org-fold-block) (dynamic-block . org-fold-block) (comment-block .
org-fold-block) (center-block . org-fold-block) (block . org-fold-block)
(:alias . org-fold-block) (org-fold-block . org-fold-block) (plain-list .
org-fold-outline) (inlinetask . org-fold-outline) (outline . org-fold-outline)
(heading . org-fold-outline) (headline . org-fold-outline) (:alias .
org-fold-outline) (org-fold-outline . org-fold-outline)))
org-fold-core-get-folding-spec-from-alias(org-fold-outline)
org-fold-core--property-symbol-get-create(org-fold-outline)
org-fold-core-decouple-indirect-buffer-folds()
org-get-indirect-buffer(#<buffer USHIN.org> #("Meetings / Sessions" 0 19
(fontified nil line-prefix "" wrap-prefix #("* " 0 2 (face org-indent)))))
#<subr org-tree-to-indirect-buffer>()
apply(#<subr org-tree-to-indirect-buffer> nil)
org-tree-to-indirect-buffer()
(cond (indirect (org-tree-to-indirect-buffer)) (narrowed (progn
(org-narrow-to-subtree) (goto-char (org-find-olp (read point-olp)
'this-buffer)))))
(progn (widen) (if heading-pos (goto-char heading-pos) (goto-char
(string-to-number pos))) (cond (indirect (org-tree-to-indirect-buffer))
(narrowed (progn (org-narrow-to-subtree) (goto-char (org-find-olp (read
point-olp) 'this-buffer))))) (if (and heading-pos relative-pos) (progn
(forward-char (string-to-number relative-pos)))) (current-buffer))
(let* ((heading-pos (if top-olp (progn (org-find-olp (read top-olp)
'this-buffer))))) (progn (widen) (if heading-pos (goto-char heading-pos)
(goto-char (string-to-number pos))) (cond (indirect
(org-tree-to-indirect-buffer)) (narrowed (progn (org-narrow-to-subtree)
(goto-char (org-find-olp (read point-olp) 'this-buffer))))) (if (and
heading-pos relative-pos) (progn (forward-char (string-to-number
relative-pos)))) (current-buffer)))
(let ((pos x2699) (indirect x2700) (narrowed x2701) (top-olp x2702)
(point-olp x2703) (relative-pos x2704)) (let* ((heading-pos (if top-olp (progn
(org-find-olp (read top-olp) 'this-buffer))))) (progn (widen) (if heading-pos
(goto-char heading-pos) (goto-char (string-to-number pos))) (cond (indirect
(org-tree-to-indirect-buffer)) (narrowed (progn (org-narrow-to-subtree)
(goto-char (org-find-olp ... ...))))) (if (and heading-pos relative-pos) (progn
(forward-char (string-to-number relative-pos)))) (current-buffer))))
(let* ((x2699 (map-elt query "pos")) (x2700 (map-elt query "indirect"))
(x2701 (map-elt query "narrowed")) (x2702 (map-elt query "top-olp")) (x2703
(map-elt query "point-olp")) (x2704 (map-elt query "relative-pos"))) (let ((pos
x2699) (indirect x2700) (narrowed x2701) (top-olp x2702) (point-olp x2703)
(relative-pos x2704)) (let* ((heading-pos (if top-olp (progn (org-find-olp ...
...))))) (progn (widen) (if heading-pos (goto-char heading-pos) (goto-char
(string-to-number pos))) (cond (indirect (org-tree-to-indirect-buffer))
(narrowed (progn (org-narrow-to-subtree) (goto-char ...)))) (if (and
heading-pos relative-pos) (progn (forward-char (string-to-number
relative-pos)))) (current-buffer)))))
(progn (ignore (mapp query)) (let* ((x2699 (map-elt query "pos")) (x2700
(map-elt query "indirect")) (x2701 (map-elt query "narrowed")) (x2702 (map-elt
query "top-olp")) (x2703 (map-elt query "point-olp")) (x2704 (map-elt query
"relative-pos"))) (let ((pos x2699) (indirect x2700) (narrowed x2701) (top-olp
x2702) (point-olp x2703) (relative-pos x2704)) (let* ((heading-pos (if top-olp
(progn ...)))) (progn (widen) (if heading-pos (goto-char heading-pos)
(goto-char (string-to-number pos))) (cond (indirect
(org-tree-to-indirect-buffer)) (narrowed (progn ... ...))) (if (and heading-pos
relative-pos) (progn (forward-char ...))) (current-buffer))))))
(progn (fset 'alist-get vnew) (progn (ignore (mapp query)) (let* ((x2699
(map-elt query "pos")) (x2700 (map-elt query "indirect")) (x2701 (map-elt query
"narrowed")) (x2702 (map-elt query "top-olp")) (x2703 (map-elt query
"point-olp")) (x2704 (map-elt query "relative-pos"))) (let ((pos x2699)
(indirect x2700) (narrowed x2701) (top-olp x2702) (point-olp x2703)
(relative-pos x2704)) (let* ((heading-pos (if top-olp ...))) (progn (widen) (if
heading-pos (goto-char heading-pos) (goto-char ...)) (cond (indirect ...)
(narrowed ...)) (if (and heading-pos relative-pos) (progn ...))
(current-buffer)))))))
(unwind-protect (progn (fset 'alist-get vnew) (progn (ignore (mapp query))
(let* ((x2699 (map-elt query "pos")) (x2700 (map-elt query "indirect")) (x2701
(map-elt query "narrowed")) (x2702 (map-elt query "top-olp")) (x2703 (map-elt
query "point-olp")) (x2704 (map-elt query "relative-pos"))) (let ((pos x2699)
(indirect x2700) (narrowed x2701) (top-olp x2702) (point-olp x2703)
(relative-pos x2704)) (let* ((heading-pos ...)) (progn (widen) (if heading-pos
... ...) (cond ... ...) (if ... ...) (current-buffer))))))) (fset 'alist-get
old))
(let* ((vnew #'(lambda (key alist &optional _default _remove _testfn) (car
(cdr (assoc-string key alist))))) (old (symbol-function 'alist-get)))
(unwind-protect (progn (fset 'alist-get vnew) (progn (ignore (mapp query))
(let* ((x2699 (map-elt query "pos")) (x2700 (map-elt query "indirect")) (x2701
(map-elt query "narrowed")) (x2702 (map-elt query "top-olp")) (x2703 (map-elt
query "point-olp")) (x2704 (map-elt query "relative-pos"))) (let ((pos x2699)
(indirect x2700) (narrowed x2701) (top-olp x2702) (point-olp x2703)
(relative-pos x2704)) (let* (...) (progn ... ... ... ... ...)))))) (fset
'alist-get old)))
(save-current-buffer (set-buffer buffer) (let* ((vnew #'(lambda (key alist
&optional _default _remove _testfn) (car (cdr ...)))) (old (symbol-function
'alist-get))) (unwind-protect (progn (fset 'alist-get vnew) (progn (ignore
(mapp query)) (let* ((x2699 ...) (x2700 ...) (x2701 ...) (x2702 ...) (x2703
...) (x2704 ...)) (let (... ... ... ... ... ...) (let* ... ...))))) (fset
'alist-get old))))
(progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car
--cl-keys--) '(:buffer :query :allow-other-keys)) (if (cdr --cl-keys--) nil
(error "Missing argument for %s" (car --cl-keys--))) (setq --cl-keys-- (cdr
(cdr --cl-keys--)))) ((car (cdr (memq ... --cl-rest--))) (setq --cl-keys--
nil)) (t (error "Keyword argument %s not one of (:buffer :query)" (car
--cl-keys--)))))) (save-current-buffer (set-buffer buffer) (let* ((vnew
#'(lambda (key alist &optional _default _remove _testfn) (car ...))) (old
(symbol-function 'alist-get))) (unwind-protect (progn (fset 'alist-get vnew)
(progn (ignore (mapp query)) (let* (... ... ... ... ... ...) (let ... ...))))
(fset 'alist-get old)))))
(let* ((buffer (car (cdr (plist-member --cl-rest-- ':buffer)))) (query (car
(cdr (plist-member --cl-rest-- ':query))))) (progn (let ((--cl-keys--
--cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) '...) (if (cdr
--cl-keys--) nil (error "Missing argument for %s" ...)) (setq --cl-keys-- (cdr
...))) ((car (cdr ...)) (setq --cl-keys-- nil)) (t (error "Keyword argument %s
not one of (:buffer :query)" (car --cl-keys--)))))) (save-current-buffer
(set-buffer buffer) (let* ((vnew #'(lambda ... ...)) (old (symbol-function
'alist-get))) (unwind-protect (progn (fset 'alist-get vnew) (progn (ignore ...)
(let* ... ...))) (fset 'alist-get old))))))
burly-follow-url-org-mode(:buffer #<buffer USHIN.org> :query (("narrowed"
"t") ("indirect" "t") ("relative-pos" "0") ("point-olp" "(\"Meetings /
Sessions\")") ("top-olp" "(\"Meetings / Sessions\")") ("pos" "35523")))
funcall(burly-follow-url-org-mode :buffer #<buffer USHIN.org> :query
(("narrowed" "t") ("indirect" "t") ("relative-pos" "0") ("point-olp"
"(\"Meetings / Sessions\")") ("top-olp" "(\"Meetings / Sessions\")") ("pos"
"35523")))