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")))

Reply via email to