alphapapa / burly.el

Save and restore frames and windows with their buffers in Emacs
GNU General Public License v3.0
301 stars 14 forks source link

Invalid read syntax: "#" #28

Open tumashu opened 3 years ago

tumashu commented 3 years ago
(defun burly--frameset-restore (urlobj)
  "Restore FRAMESET according to URLOBJ."
  (pcase-let* ((`(,_ . ,query-string) (url-path-and-query urlobj))
               (frameset (read (url-unhex-string query-string)))
               (frameset-filter-alist (append burly-frameset-filter-alist frameset-filter-alist)))
    ;; Restore buffers.  (Apparently `cl-loop''s in-ref doesn't work with
    ;; its destructuring, so we can't just `setf' on `window-state'.)
    (setf (frameset-states frameset)
          (cl-loop for (frame-parameters . window-state) in (frameset-states frameset)
                   collect (cons frame-parameters (burly--bufferize-window-state window-state))))
    (frameset-restore frameset)))

I think read will have problem when we have like (cursor-color . "#dcdccc")

alphapapa commented 3 years ago

Could you share a backtrace of the error occurring, please?

tumashu commented 3 years ago
Debugger entered--Lisp error: (invalid-read-syntax "#")
  read("[frameset 1 (24670 49106 650942 294000) nil nil ni...")
  burly--frameset-restore(#s(url :type "emacs+burly+frames" :user nil :password nil :host nil :portspec nil :filename "?%5Bframeset%201%20%2824670%2049106%20650942%20294..." :target nil :attributes nil :fullness nil :silent nil :use-cookies t :asynchronous t))
  burly-open-url("emacs+burly+frames:?%5Bframeset%201%20%2824670%204...")
  burly-bookmark-handler(("burly:frame" (url . "emacs+burly+frames:?%5Bframeset%201%20%2824670%204...") (handler . burly-bookmark-handler)))
  bookmark-handle-bookmark("burly:frame")
  bookmark--jump-via("burly:frame" pop-to-buffer-same-window)
  bookmark-jump("burly:frame")
  burly-open-bookmark("burly:frame")
  (let* ((n (- (length bookmarks) 1)) (pos (or eh-burly-bookmark-position 0)) (bookmark (nth pos bookmarks))) (burly-open-bookmark bookmark) (message "Revert to bookmark: %S" bookmark) (setq eh-burly-bookmark-position (if (>= pos n) 0 (1+ pos))))
  (if bookmarks (let* ((n (- (length bookmarks) 1)) (pos (or eh-burly-bookmark-position 0)) (bookmark (nth pos bookmarks))) (burly-open-bookmark bookmark) (message "Revert to bookmark: %S" bookmark) (setq eh-burly-bookmark-position (if (>= pos n) 0 (1+ pos)))) (burly-bookmark-windows "burly:0") (message "Create bookmark: burly:0") (setq eh-burly-bookmark-position nil))
  (let ((bookmarks (burly-bookmark-names))) (if bookmarks (let* ((n (- (length bookmarks) 1)) (pos (or eh-burly-bookmark-position 0)) (bookmark (nth pos bookmarks))) (burly-open-bookmark bookmark) (message "Revert to bookmark: %S" bookmark) (setq eh-burly-bookmark-position (if (>= pos n) 0 (1+ pos)))) (burly-bookmark-windows "burly:0") (message "Create bookmark: burly:0") (setq eh-burly-bookmark-position nil)))
  eh-burly-open-bookmark()
  funcall-interactively(eh-burly-open-bookmark)
  call-interactively(eh-burly-open-bookmark nil nil)
  command-execute(eh-burly-open-bookmark)
tumashu commented 3 years ago
"[frameset 1 (24670 49106 650942 294000) nil nil nil nil ((((minibuffer) (undecorated . t) (override-redirect) (font . \"-fsdf-PragmataPro-normal-normal-normal-*-17-*-*-*-*-0-iso10646-1\") (font-parameter . \"-fsdf-PragmataPro-normal-normal-normal-*-17-*-*-*-*-0-iso10646-1\") (border-width . 0) (internal-border-width . 0) (right-divider-width . 0) (bottom-divider-width . 0) (vertical-scroll-bars) (horizontal-scroll-bars) (foreground-color . \"#d3d3d3\") (background-color . \"#8B8989\") (mouse-color . \"black\") (border-color . \"black\") (screen-gamma) (line-spacing . 0) (left-fringe . 0) (right-fringe . 0) (no-special-glyphs . t) (scroll-bar-foreground) (scroll-bar-background) (min-width . 0) (min-height . 0) (menu-bar-lines . 0) (tab-bar-lines . 0) (height . 10) (tool-bar-lines . 0) (title) (wait-for-wm . t) (tool-bar-position . top) (inhibit-double-buffering) (icon-type . t) (auto-raise) (auto-lower) (cursor-type) (scroll-bar-width . 16) (scroll-bar-height . 16) (alpha) (no-focus-on-map) (no-accept-focus . t) (fullscreen) (visibility) (skip-taskbar) (z-group) (keep-ratio nil) (posframe-buffer \" *company-posframe-buffer*\" . #<buffer  *company-posframe-buffer*>) (child-frame-border-width . 0) (no-other-frame . t) (desktop-dont-save . t) (display-type . color) (background-mode . dark) (cursor-color . \"#dcdccc\") (posframe-hidehandler) (posframe-parent-buffer \"*scratch*\" . #<buffer *scratch*>) (frameset--id . \"56EC-005D-2C2E-1354\") (frameset--parent-frame . \"0CBE-FB7E-4807-49E5\") (frameset--mini nil . \"9A61-ABF1-5350-2888\") (name . \"\") (width . 45) (modeline . t) (unsplittable . t) (left . 8) (top . 21) (icon-name) (display . \":0.0\") (explicit-name)) ((min-height . 10) (min-width . 60) (min-height-ignore . 1) (min-width-ignore . 2) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 210) (min-pixel-width . 540) (min-pixel-height-ignore . 21) (min-pixel-width-ignore . 18) (min-pixel-height-safe . 21) (min-pixel-width-safe . 18)) leaf (last . t) (pixel-width . 405) (pixel-height . 210) (total-width . 45) (total-height . 10) (normal-height . 1.0) (normal-width . 1.0) (parameters (mode-line-format . none) (burly-url . \"emacs+burly+name://? *company-posframe-buffer*\")) (buffer \" *company-posframe-buffer*\" (selected) (hscroll . 0) (fringes 0 0 t nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated . t) (point . 1) (start . 1)) (prev-buffers (\"*scratch*\" 1 3))) (((minibuffer . t) (undecorated) (override-redirect) (font . \"-fsdf-PragmataPro-normal-normal-normal-*-17-*-*-*-*-0-iso10646-1\") (font-parameter . \"-fsdf-PragmataPro-normal-normal-normal-*-*-*-*-*-*-0-iso10646-1\") (border-width . 0) (internal-border-width . 0) (right-divider-width . 0) (bottom-divider-width . 0) (vertical-scroll-bars) (horizontal-scroll-bars) (foreground-color . \"#d3d3d3\") (background-color . \"#000000\") (mouse-color . \"black\") (border-color . \"black\") (screen-gamma) (line-spacing) (left-fringe . 8) (right-fringe . 8) (no-special-glyphs) (scroll-bar-foreground) (scroll-bar-background) (menu-bar-lines . 0) (tab-bar-lines . 0) (height . 31) (tool-bar-lines . 0) (title) (wait-for-wm . t) (tool-bar-position . top) (inhibit-double-buffering) (icon-type . t) (auto-raise) (auto-lower) (cursor-type . box) (scroll-bar-width . 16) (scroll-bar-height . 16) (alpha) (no-focus-on-map) (no-accept-focus) (fullscreen . maximized) (visibility . t) (skip-taskbar) (z-group) (display-type . color) (background-mode . dark) (cursor-color . \"#dcdccc\") (hyperb:window-system . \"emacs\") (sticky) (environment) (last-focus-update) (frameset--id . \"9A61-ABF1-5350-2888\") (frameset--mini t . t) (name . \"emacs@tumashu\") (modeline . t) (unsplittable) (icon-name) (display . \":0.0\") (explicit-name . t) (width . 150) (left . 0) (top . 31)) ((min-height . 10) (min-width . 60) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 210) (min-pixel-width . 540) (min-pixel-height-ignore . 42) (min-pixel-width-ignore . 36) (min-pixel-height-safe . 21) (min-pixel-width-safe . 18)) leaf (pixel-width . 1366) (pixel-height . 641) (total-width . 151) (total-height . 30) (normal-height . 1.0) (normal-width . 1.0) (parameters (burly-url . \"emacs+burly+bookmark://burly:frame?filename=%22~%2F.emacs.d%2Felpa-27%2Fburly-20201211.58%2Fburly.el%22&front-context-string=%22%20%20%28interactive%29%0A%22&rear-context-string=%22the%20kill%20ring.%5C%22%0A%22&position=4837&defaults=%28%22burly%3Aframe%22%20%22burly.el%22%29\")) (buffer \"burly.el\" (selected) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 4837) (start . 4837)) (prev-buffers (\"*scratch*\" 1 1) (\"burly.el\" 10169 10663))) (((minibuffer . t) (undecorated) (override-redirect) (font . \"-fsdf-PragmataPro-normal-normal-normal-*-17-*-*-*-*-0-iso10646-1\") (font-parameter . \"-fsdf-PragmataPro-normal-normal-normal-*-*-*-*-*-*-0-iso10646-1\") (border-width . 0) (internal-border-width . 0) (right-divider-width . 0) (bottom-divider-width . 0) (vertical-scroll-bars) (horizontal-scroll-bars) (foreground-color . \"#d3d3d3\") (background-color . \"#000000\") (mouse-color . \"black\") (border-color . \"black\") (screen-gamma) (line-spacing) (left-fringe . 8) (right-fringe . 8) (no-special-glyphs) (scroll-bar-foreground) (scroll-bar-background) (menu-bar-lines . 0) (tab-bar-lines . 0) (height . 31) (tool-bar-lines . 0) (title) (wait-for-wm . t) (tool-bar-position . top) (inhibit-double-buffering) (icon-type . t) (auto-raise) (auto-lower) (cursor-type . box) (scroll-bar-width . 16) (scroll-bar-height . 16) (alpha) (no-focus-on-map) (no-accept-focus) (fullscreen . maximized) (visibility . t) (skip-taskbar) (z-group) (display-type . color) (background-mode . dark) (cursor-color . \"#dcdccc\") (hyperb:window-system . \"emacs\") (sticky) (environment) (last-focus-update) (frameset--id . \"8C64-700A-AFC4-4B08\") (frameset--mini t) (name . \"emacs@tumashu\") (modeline . t) (unsplittable) (icon-name) (display . \":0.0\") (explicit-name . t) (width . 150) (left . 0) (top . 31)) ((min-height . 10) (min-width . 60) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 210) (min-pixel-width . 540) (min-pixel-height-ignore . 42) (min-pixel-width-ignore . 36) (min-pixel-height-safe . 21) (min-pixel-width-safe . 18)) leaf (pixel-width . 1366) (pixel-height . 641) (total-width . 151) (total-height . 30) (normal-height . 1.0) (normal-width . 1.0) (parameters (burly-url . \"emacs+burly+bookmark://burly:frame?filename=%22~%2F.emacs.d%2Felpa-27%2Fburly-20201211.58%2Fburly.el%22&front-context-string=%22%20%20%28interactive%29%0A%22&rear-context-string=%22the%20kill%20ring.%5C%22%0A%22&position=4837&defaults=%28%22burly%3Aframe%22%20%22burly.el%22%29\")) (buffer \"burly.el\" (selected) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 4837) (start . 4837)) (prev-buffers (\"*scratch*\" 1 1) (\"burly.el\" 10169 10663))) (((minibuffer . t) (undecorated) (override-redirect) (font . \"-fsdf-PragmataPro-normal-normal-normal-*-17-*-*-*-*-0-iso10646-1\") (font-parameter . \"-fsdf-PragmataPro-normal-normal-normal-*-*-*-*-*-*-0-iso10646-1\") (border-width . 0) (internal-border-width . 0) (right-divider-width . 0) (bottom-divider-width . 0) (vertical-scroll-bars) (horizontal-scroll-bars) (foreground-color . \"#d3d3d3\") (background-color . \"#000000\") (mouse-color . \"black\") (border-color . \"black\") (screen-gamma) (line-spacing) (left-fringe . 8) (right-fringe . 8) (no-special-glyphs) (scroll-bar-foreground) (scroll-bar-background) (menu-bar-lines . 0) (tab-bar-lines . 0) (height . 31) (tool-bar-lines . 0) (title) (wait-for-wm . t) (tool-bar-position . top) (inhibit-double-buffering) (icon-type . t) (auto-raise) (auto-lower) (cursor-type . box) (scroll-bar-width . 16) (scroll-bar-height . 16) (alpha) (no-focus-on-map) (no-accept-focus) (fullscreen . maximized) (visibility . t) (skip-taskbar) (z-group) (display-type . color) (background-mode . dark) (cursor-color . \"#dcdccc\") (sticky) (environment) (hyperb:window-system . \"emacs\") (last-focus-update . t) (frameset--id . \"0CBE-FB7E-4807-49E5\") (frameset--mini t) (name . \" *Minibuf-1*\") (width . 150) (modeline . t) (unsplittable) (left . 0) (top . 31) (icon-name) (display . \":0.0\") (explicit-name)) ((min-height . 10) (min-width . 60) (min-height-ignore . 2) (min-width-ignore . 4) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 210) (min-pixel-width . 540) (min-pixel-height-ignore . 42) (min-pixel-width-ignore . 36) (min-pixel-height-safe . 21) (min-pixel-width-safe . 18)) leaf (pixel-width . 1366) (pixel-height . 641) (total-width . 152) (total-height . 31) (normal-height . 1.0) (normal-width . 1.0) (parameters (burly-url . \"emacs+burly+name://?*scratch*\")) (buffer \"*scratch*\" (selected . t) (hscroll . 0) (fringes 8 8 nil nil) (margins nil) (scroll-bars nil 0 t nil 0 t nil) (vscroll . 0) (dedicated) (point . 3) (start . 1)) (prev-buffers (\"burly.el\" 4837 4837) (\"*scratch*\" 1 1))))]"
alphapapa commented 3 years ago

Thanks, I'm a little busy, but I'll take a look when I have time. Your PR may be a good fix, but there may be a better way that would fix the issue more generally.

seagle0128 commented 3 years ago

Same issue here.

Debugger entered--Lisp error: (invalid-read-syntax "#")
  burly--frameset-restore(#s(url :type "emacs+burly+frames" :user nil :password nil :host nil :portspec nil :filename "?%5Bframeset%201%20%2824672%207294%20797875%200%29..." :target nil :attributes nil :fullness nil :silent nil :use-cookies t :asynchronous t))
  burly-open-url("emacs+burly+frames:?%5Bframeset%201%20%2824672%207...")
  burly-bookmark-handler(("Burly: test" (url . "emacs+burly+frames:?%5Bframeset%201%20%2824672%207...") (handler . burly-bookmark-handler)))
  bookmark-handle-bookmark("Burly: test")
  bookmark--jump-via("Burly: test" pop-to-buffer-same-window)
  bookmark-jump("Burly: test")
  burly-open-bookmark("Burly: test")
  funcall-interactively(burly-open-bookmark "Burly: test")
  #<subr command-execute>(burly-open-bookmark record nil nil)
  ad-Advice-command-execute(#<subr command-execute> burly-open-bookmark record)
  apply(ad-Advice-command-execute #<subr command-execute> (burly-open-bookmark record))
  command-execute(burly-open-bookmark record)
  counsel-M-x-action("burly-open-bookmark")
  #f(compiled-function (x) #<bytecode 0x976502685a2fa82>)("burly-open-bookmark")
  ivy-call()
  #<subr ivy-read>("M-x " ("burly-open-bookmark" "burly-bookmark-frames" "kubel" "centaur-update" "transient-posframe-mode" "ivy-posframe-mode" "org-tree-slide-mode" "list-packages" "all-the-icons-insert" "list-processes" "copyit-file-pathname" "package-reinstall" "rainbow-mode" "customize-group" "eldoc-mode" "find-pdf-file" "centaur-find-pdf-file" "counsel-find-file" "calc" "esup" "centaur-update-packages" "hydra-ivy/ivy-call" "doom-modeline-mode" "tooltip-mode" "all-the-icons-ivy-rich-mode" "counsel-company" "company-box-mode" "toggle-debug-on-error" "lsp-update-server" "ivy-rich-mode" "lsp-install-server" "org-roam-server-mode" "lsp-pyright-format-buffer" "all-the-icons-ivy-rich-kill-buffer" "save-buffer-gbk-as-utf8" "display-battery-mode" "lsp-mode" "flycheck-posframe-mode" "describe-char" "checkdoc" "lsp-organize-imports" "org-capture" "org-toggle-link-display" "persp-mode" "all-the-icons-reset" "counsel-major" "package-install" "treemacs-load-theme" "grip-mode" "count-words" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x :sort t)
  ivy-posframe--read(#<subr ivy-read> "M-x " ("burly-open-bookmark" "burly-bookmark-frames" "kubel" "centaur-update" "transient-posframe-mode" "ivy-posframe-mode" "org-tree-slide-mode" "list-packages" "all-the-icons-insert" "list-processes" "copyit-file-pathname" "package-reinstall" "rainbow-mode" "customize-group" "eldoc-mode" "find-pdf-file" "centaur-find-pdf-file" "counsel-find-file" "calc" "esup" "centaur-update-packages" "hydra-ivy/ivy-call" "doom-modeline-mode" "tooltip-mode" "all-the-icons-ivy-rich-mode" "counsel-company" "company-box-mode" "toggle-debug-on-error" "lsp-update-server" "ivy-rich-mode" "lsp-install-server" "org-roam-server-mode" "lsp-pyright-format-buffer" "all-the-icons-ivy-rich-kill-buffer" "save-buffer-gbk-as-utf8" "display-battery-mode" "lsp-mode" "flycheck-posframe-mode" "describe-char" "checkdoc" "lsp-organize-imports" "org-capture" "org-toggle-link-display" "persp-mode" "all-the-icons-reset" "counsel-major" "package-install" "treemacs-load-theme" "grip-mode" "count-words" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x :sort t)
  apply(ivy-posframe--read #<subr ivy-read> ("M-x " ("burly-open-bookmark" "burly-bookmark-frames" "kubel" "centaur-update" "transient-posframe-mode" "ivy-posframe-mode" "org-tree-slide-mode" "list-packages" "all-the-icons-insert" "list-processes" "copyit-file-pathname" "package-reinstall" "rainbow-mode" "customize-group" "eldoc-mode" "find-pdf-file" "centaur-find-pdf-file" "counsel-find-file" "calc" "esup" "centaur-update-packages" "hydra-ivy/ivy-call" "doom-modeline-mode" "tooltip-mode" "all-the-icons-ivy-rich-mode" "counsel-company" "company-box-mode" "toggle-debug-on-error" "lsp-update-server" "ivy-rich-mode" "lsp-install-server" "org-roam-server-mode" "lsp-pyright-format-buffer" "all-the-icons-ivy-rich-kill-buffer" "save-buffer-gbk-as-utf8" "display-battery-mode" "lsp-mode" "flycheck-posframe-mode" "describe-char" "checkdoc" "lsp-organize-imports" "org-capture" "org-toggle-link-display" "persp-mode" "all-the-icons-reset" "counsel-major" "package-install" "treemacs-load-theme" "grip-mode" "count-words" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x :sort t))
  #f(advice-wrapper :around #<subr ivy-read> ivy-posframe--read)("M-x " ("burly-open-bookmark" "burly-bookmark-frames" "kubel" "centaur-update" "transient-posframe-mode" "ivy-posframe-mode" "org-tree-slide-mode" "list-packages" "all-the-icons-insert" "list-processes" "copyit-file-pathname" "package-reinstall" "rainbow-mode" "customize-group" "eldoc-mode" "find-pdf-file" "centaur-find-pdf-file" "counsel-find-file" "calc" "esup" "centaur-update-packages" "hydra-ivy/ivy-call" "doom-modeline-mode" "tooltip-mode" "all-the-icons-ivy-rich-mode" "counsel-company" "company-box-mode" "toggle-debug-on-error" "lsp-update-server" "ivy-rich-mode" "lsp-install-server" "org-roam-server-mode" "lsp-pyright-format-buffer" "all-the-icons-ivy-rich-kill-buffer" "save-buffer-gbk-as-utf8" "display-battery-mode" "lsp-mode" "flycheck-posframe-mode" "describe-char" "checkdoc" "lsp-organize-imports" "org-capture" "org-toggle-link-display" "persp-mode" "all-the-icons-reset" "counsel-major" "package-install" "treemacs-load-theme" "grip-mode" "count-words" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x :sort t)
  apply(#f(advice-wrapper :around #<subr ivy-read> ivy-posframe--read) ("M-x " ("burly-open-bookmark" "burly-bookmark-frames" "kubel" "centaur-update" "transient-posframe-mode" "ivy-posframe-mode" "org-tree-slide-mode" "list-packages" "all-the-icons-insert" "list-processes" "copyit-file-pathname" "package-reinstall" "rainbow-mode" "customize-group" "eldoc-mode" "find-pdf-file" "centaur-find-pdf-file" "counsel-find-file" "calc" "esup" "centaur-update-packages" "hydra-ivy/ivy-call" "doom-modeline-mode" "tooltip-mode" "all-the-icons-ivy-rich-mode" "counsel-company" "company-box-mode" "toggle-debug-on-error" "lsp-update-server" "ivy-rich-mode" "lsp-install-server" "org-roam-server-mode" "lsp-pyright-format-buffer" "all-the-icons-ivy-rich-kill-buffer" "save-buffer-gbk-as-utf8" "display-battery-mode" "lsp-mode" "flycheck-posframe-mode" "describe-char" "checkdoc" "lsp-organize-imports" "org-capture" "org-toggle-link-display" "persp-mode" "all-the-icons-reset" "counsel-major" "package-install" "treemacs-load-theme" "grip-mode" "count-words" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x :sort t))
  ivy-read("M-x " ("burly-open-bookmark" "burly-bookmark-frames" "kubel" "centaur-update" "transient-posframe-mode" "ivy-posframe-mode" "org-tree-slide-mode" "list-packages" "all-the-icons-insert" "list-processes" "copyit-file-pathname" "package-reinstall" "rainbow-mode" "customize-group" "eldoc-mode" "find-pdf-file" "centaur-find-pdf-file" "counsel-find-file" "calc" "esup" "centaur-update-packages" "hydra-ivy/ivy-call" "doom-modeline-mode" "tooltip-mode" "all-the-icons-ivy-rich-mode" "counsel-company" "company-box-mode" "toggle-debug-on-error" "lsp-update-server" "ivy-rich-mode" "lsp-install-server" "org-roam-server-mode" "lsp-pyright-format-buffer" "all-the-icons-ivy-rich-kill-buffer" "save-buffer-gbk-as-utf8" "display-battery-mode" "lsp-mode" "flycheck-posframe-mode" "describe-char" "checkdoc" "lsp-organize-imports" "org-capture" "org-toggle-link-display" "persp-mode" "all-the-icons-reset" "counsel-major" "package-install" "treemacs-load-theme" "grip-mode" "count-words" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  counsel-M-x()
  funcall-interactively(counsel-M-x)
  #<subr command-execute>(counsel-M-x nil nil nil)
  ad-Advice-command-execute(#<subr command-execute> counsel-M-x)
  apply(ad-Advice-command-execute #<subr command-execute> counsel-M-x)
  command-execute(counsel-M-x)
alphapapa commented 3 years ago

@seagle0128 Are you also using posframe, like @tumashu is?

seagle0128 commented 3 years ago

@alphapapa Yes. I saw @tumashu fixed this in https://github.com/tumashu/burly.el/commit/8a94e91b66b66957f88f4fff6fc1d4d714bf8054.

alphapapa commented 3 years ago

@seagle0128 Thanks.

Should posframe frames be completely excluded, then? Is there any reason for them to ever be saved and restored? AFAIK they're used for temporary UI popups.

tumashu commented 3 years ago

I am posframe's maintainer, I think posframe should not be saved and restored, all posframes are only managed by posframe-show,

alphapapa commented 3 years ago

@tumashu Thanks, I would tend to agree. Two questions, then:

  1. Under what circumstances are posframes being saved? In other words, what is causing them to be saved? I would generally expect them to be not displayed when a Burly bookmark is made.
  2. What would be the best way to prevent posframes from being saved by Burly?
tumashu commented 3 years ago

for speed reason, most posframes only be hide, instead of delete, so it will be saved by burly

tumashu commented 3 years ago

posframe is a child-frame, so https://github.com/alphapapa/burly.el/pull/24 seem to be a good idea

sauvala commented 2 years ago

Hi, I also see this error:

Debugger entered--Lisp error: (invalid-read-syntax "#")
  burly--frameset-restore(#s(url :type "emacs+burly+frames" :user nil :password nil :host nil :portspec nil :filename "?%5Bframeset%201%20%2824968%2018452%20641428%200%2..." :target nil :attributes nil :fullness nil :silent nil :use-cookies t :asynchronous t))
  burly-open-url("emacs+burly+frames:?%5Bframeset%201%20%2824968%201...")
  burly-bookmark-handler(("Burly: abc" (url . "emacs+burly+frames:?%5Bframeset%201%20%2824968%201...") (handler . burly-bookmark-handler)))
  bookmark-handle-bookmark("Burly: abc")
  bookmark--jump-via("Burly: abc" pop-to-buffer-same-window)
  bookmark-jump("Burly: abc")
  burly-open-bookmark("Burly: abc")
  funcall-interactively(burly-open-bookmark "Burly: abc")
  command-execute(burly-open-bookmark record)
  execute-extended-command(nil "burly-open-bookmark" nil)
  funcall-interactively(execute-extended-command nil "burly-open-bookmark" nil)
  command-execute(execute-extended-command)

To my knowledge I don't use postframe so it could be a different error?

gagbo commented 2 years ago

You have to go deeper in the backtrace to find the culprit.

When you check the (really) long line with the frameset in this comment you see in the middle this particular frame-local parameter:

(posframe-buffer \" *company-posframe-buffer*\" . #<buffer  *company-posframe-buffer*>)

It is when Burly tries to restore the posframe-buffer value that it reads #<buffer *company-posframe-buffer*>, triggering the "invalid read syntax" error. So if you are not using posframe you have to look for the frame-local parameter that triggers the issue and find a way to remove it from the synchronised parameters.

TauPan commented 1 year ago

Edit: Hidden because of the large string, see https://github.com/alphapapa/burly.el/issues/28#issuecomment-1508118391

I got a backtrace without posframe (trying out burly 20221024.2019 for the first time):

Debugger entered--Lisp error: (invalid-read-syntax "#")
  signal(invalid-read-syntax ("#"))
* burly-bookmark-handler(("Burly: apps history"
                          (url . "emacs+burly+frames:?%5Bframeset%201%20%2825656%2064690%20841630%20601000%29%20nil%20nil%20nil%20nil%20%28%28%28%28minibuffer%20.%20t%29%20%28undecorated%29%20%28override-redirect%29%20%28font%20.%20%22-ADBO-Source%20Code%20Pro-normal-normal-normal-%2A-17-%2A-%2A-%2A-m-0-iso10646-1%22%29%20%28font-parameter%29%20%28border-width%20.%200%29%20%28internal-border-width%20.%200%29%20%28child-frame-border-width%29%20%28right-divider-width%20.%200%29%20%28bottom-divider-width%20.%200%29%20%28vertical-scroll-bars%29%20%28horizontal-scroll-bars%29%20%28foreground-color%20.%20%22black%22%29%20%28background-color%20.%20%22%23b8bbb8%22%29%20%28mouse-color%20.%20%22black%22%29%20%28border-color%20.%20%22black%22%29%20%28screen-gamma%29%20%28line-spacing%29%20%28left-fringe%20.%208%29%20%28right-fringe%20.%208%29%20%28no-special-glyphs%29%20%28scroll-bar-foreground%20.%20%22black%22%29%20%28scroll-bar-background%20.%20%22%23657b83%22%29%20%28menu-bar-lines%20.%201%29%20%28tab-bar-lines%20.%200%29%20%28tool-bar-lines%20.%200%29%20%28title%29%20%28wait-for-wm%20.%20t%29%20%28tool-bar-position%20.%20top%29%20%28inhibit-double-buffering%29%20%28icon-type%20.%20t%29%20%28auto-raise%29%20%28auto-lower%29%20%28cursor-type%20.%20box%29%20%28scroll-bar-width%20.%2016%29%20%28scroll-bar-height%20.%2016%29%20%28alpha%29%20%28no-focus-on-map%29%20%28no-accept-focus%29%20%28fullscreen%29%20%28visibility%20.%20t%29%20%28skip-taskbar%29%20%28z-group%29%20%28cursor-color%20.%20%22%23586e75%22%29%20%28display-type%20.%20color%29%20%28background-mode%20.%20light%29%20%28environment%29%20%28sticky%29%20%28persp--modestring%20%22%5B%22%20%23%28%22main%22%200%204%20%28face%20persp-selected-face%29%29%20%22%5D%22%29%20%28persp--recursive%29%20%28persp--last%29%20%28persp--curr%20.%20%23s%28perspective%20%22main%22%20%28%23%3Cbuffer%20%2APackages%2A%3E%20%23%3Cbuffer%20%2AHelp%2A%3E%20%23%3Ckilled%20buffer%3E%20%23%3Ckilled%20buffer%3E%20%23%3Cbuffer%20%20%2AMetahelp%2A%3E%20%23%3Cbuffer%20tagebuch.org%3E%20%23%3Cbuffer%20%2Ascratch%2A%3E%20%23%3Cbuffer%20manager.py%3E%20%23%3Cbuffer%20models%2Fquery.py%3E%20%23%3Cbuffer%20backends.py%3E%20%23%3Cbuffer%20filters.py%3E%20%23%3Cbuffer%20sql%2Fquery.py%3E%20%23%3Cbuffer%20resolvers.py%3E%20%23%3Cbuffer%20rest%2Fsettings.py%3E%20%23%3Cbuffer%20sis%2Fsettings.py%3E%20%23%3Cbuffer%20pagination.py%3E%20%23%3Cbuffer%20common.py%3E%20%23%3Cbuffer%20sis%2Furls.py%3E%20%23%3Cbuffer%20domains%2Furls.py%3E%20%23%3Cbuffer%20test_views_history.py%3E%20%23%3Cbuffer%20organization%2Ftest_rest.py%3E%20%23%3Cbuffer%20organization%2Fmodels.py%3E%20%23%3Cbuffer%20package.json%3E%20%23%3Cbuffer%20graylog-exceptions.js%3E%20%23%3Cbuffer%20.zsh_history%3E%20%23%3Cbuffer%20notification_types_size_sinis.test.csv%3E%20%23%3Cbuffer%202023-04-04--1098--wachsende-Tabellen%3E%20%23%3Cbuffer%20advlegacy%3E%20%23%3Cbuffer%20restic-excludes%3E%20%23%3Cbuffer%20restic-backup.sh%3E%20%23%3Cbuffer%20mailreindeer%2Fmain.py%3E%20%23%3Cbuffer%20site-conditionals.el%3E%20%23%3Cbuffer%20Collect.org%3E%20%23%3Cbuffer%20processors.py%3E%20%23%3Cbuffer%20.yarnrc%3E%20%23%3Cbuffer%20.emacs%3E%20%23%3Cbuffer%20sis%2Fmodels.py%3E%20%23%3Cbuffer%20forge-commands.el%3E%20%23%3Cbuffer%20version.py%3E%20%23%3Cbuffer%20Common.org%3E%20%23%3Cbuffer%20matterircd.toml%3E%20%23%3Cbuffer%20doc%2FINSTALL.md%3E%20%23%3Cbuffer%20README.ITS.md%3E%20%23%3Cbuffer%20mail.status.default.template%3E%20%23%3Cbuffer%20mail.default.template%3E%20%23%3Cbuffer%20mailer.py%3E%20%23%3Cbuffer%20runnable.py%3E%20%23%3Cbuffer%20monitor.py%3E%20%23%3Cbuffer%20test_monitor.py%3E%20%23%3Cbuffer%20sissession.py%3E%20%23%3Cbuffer%20marvin%2Fmodels.py%3E%20%23%3Cbuffer%20fake-notification-data.py%3E%20%23%3Cbuffer%20Season3%3E%20%23%3Cbuffer%202022-04-26--1043--lange-Anfragen%3E%20%23%3Cbuffer%20test_views_confirmations.py%3E%20%23%3Cbuffer%20sisdomainvetter%2Fmain.py%3E%20%23%3Cbuffer%20domains%2Fmodels.py%3E%20%23%3Cbuffer%20domains%2Fserializers.py%3E%20%23%3Cbuffer%20sis-domain-vetter%2FUPGRADE.md%3E%20%23%3Cbuffer%20sis.spec%3E%20%23%3Cbuffer%20sis-domain-vetter.spec%3E%20%23%3Cbuffer%20sis-domain-vetter%2FINSTALL.md%3E%20%23%3Cbuffer%20doc%2FUPGRADE.md%3E%20%23%3Cbuffer%20sis-domain-vetter%3E%20%23%3Cbuffer%20doc%3E%20%23%3Cbuffer%20__init__.py%3E%20%23%3Cbuffer%20decoder.py%3E%20%23%3Cbuffer%20reconfirmator.py%3E%20%23%3Cbuffer%20adv%2Fmodels.py%3E%20%23%3Cbuffer%20test_reconfirmator.py%3E%20%23%3Cbuffer%20sis-tooling%2FPipfile%3E%20%23%3Cbuffer%20fixtures.py%3E%20%23%3Cbuffer%20mocker.py%3E%20%23%3Cbuffer%20requests%2Fmodels.py%3E%20%23%3Cbuffer%20_result.py%3E%20%23%3Cbuffer%20_manager.py%3E%20%23%3Cbuffer%20_hooks.py%3E%20%23%3Cbuffer%20runner.py%3E%20%23%3Cbuffer%20response.py%3E%20%23%3Cbuffer%20vetter.py%3E%20%23%3Cbuffer%20sis%2Ftest_rest.py%3E%20%23%3Cbuffer%20sis-tooling%3E%20%23%3Cbuffer%20work%2FSonstiges.org%3E%20%23%3Cbuffer%20friedel-config%3E%20%23%3Cbuffer%20Org%2FRechner.org%3E%20%23%3Cbuffer%20Familie.org%3E%20%23%3Cbuffer%20Haus.org%3E%20%23%3Cbuffer%20Gesundheit.org%3E%20%23%3Cbuffer%20Musik.org%3E%20%23%3Cbuffer%20home%2FRechner.org%3E%20%23%3Cbuffer%20home%2FSonstiges.org%3E%20%23%3Cbuffer%20Weiterentwicklung.org%3E%20%23%3Cbuffer%20Airbus.org%3E%20%23%3Cbuffer%20Arbeitsumgebung.org%3E%20%23%3Cbuffer%20Systemadministration.org%3E%20%23%3Cbuffer%20test_views_subscriptions.py%3E%20%23%3Cbuffer%20domains%2Fviews.py%3E%20%23%3Cbuffer%20Cert.org%3E%20%23%3Cbuffer%20history.py%3E%20%23%3Cbuffer%20installed%3E%20%23%3Cbuffer%20.gitignore%3E%20%23%3Cbuffer%20export-inventories.py%3E%20%23%3Cbuffer%20util.py%3E%20%23%3Cbuffer%20inventories-list.txt%3E%20%23%3Cbuffer%20delete-inventories.py%3E%20%23%3Cbuffer%20notification%2Fmodels.py%3E%20%23%3Cbuffer%20cve-aggregation%2FPipfile%3E%20%23%3Cbuffer%20Pipfile.lock%3E%20%23%3Cbuffer%20requirements.txt%3E%20%23%3Cbuffer%20static%3E%20%23%3Cbuffer%20tar%3E%20%23%3Cbuffer%20airshield%3E%20%23%3Cbuffer%20css%3E%20%23%3Cbuffer%20img%3E%20%23%3Cbuffer%20organization%2Fserializers.py%3E%20%23%3Cbuffer%20test_history.py%3E%20%23%3Cbuffer%20notification%2Ftest_rest.py%3E%20%23%3Cbuffer%20test.py%3E%20%23%3Cbuffer%20mixins.py%3E%20%23%3Cbuffer%20router.py%3E%20%23%3Cbuffer%20viewsets.py%3E%20%23%3Cbuffer%20notification%2Fviews.py%3E%20%23%3Cbuffer%20apps.py%3E%20%23%3Cbuffer%20%20%2AMinibuf-0%2A%3E%20%23%3Cbuffer%20%2AMessages%2A%3E%20%23%3Cbuffer%20%20%2AEcho%20Area%200%2A%3E%20%23%3Cbuffer%20%20%2AEcho%20Area%201%2A%3E%20%23%3Cbuffer%20%20%2Astrokes%2A%3E%20%23%3Cbuffer%20diary%3E%20%23%3Cbuffer%20%20%2Acode-conversion-work%2A%3E%20%23%3Cbuffer%20%20%2Aorg-src-fontification%3Asql-mode%2A%3E%20%23%3Cbuffer%20%20%2Aorg-src-fontification%3Ajson-mode%2A%3E%20%23%3Cbuffer%20%2AShell%20Command%20Output%2A%3E%20%23%3Cbuffer%20%20%2Aserver%2A%3E%29%20nil%20nil%20%2825656%2060417%20767055%20846000%29%20%2825656%2060415%2070633%2018000%29%20%23%3Cwindow-configuration%3E%20%23%3Cmarker%20at%20752139%20in%20tagebuch.org%3E%29%29%20%28persp--hash%20.%20%23s%28hash-table%20size%2010%20test%20equal%20rehash-size%201.5%20rehash-threshold%200.8125%20data%20%28%22main%22%20%23s%28perspective%20%22main%22%20%28%23%3Cbuffer%20%2APackages%2A%3E%20%23%3Cbuffer%20%2AHelp%2A%3E%20%23%3Ckilled%20buffer%3E%20%23%3Ckilled%20buffer%3E%20%23%3Cbuffer%20%20%2AMetahelp%2A%3E%20%23%3Cbuffer%20tagebuch.org%3E%20%23%3Cbuffer%20%2Ascratch%2A%3E%20%23%3Cbuffer%20manager.py%3E%20%23%3Cbuffer%20models%2Fquery.py%3E%20%23%3Cbuffer%20backends.py%3E%20%23%3Cbuffer%20filters.py%3E%20%23%3Cbuffer%20sql%2Fquery.py%3E%20%23%3Cbuffer%20resolvers.py%3E%20%23%3Cbuffer%20rest%2Fsettings.py%3E%20%23%3Cbuffer%20sis%2Fsettings.py%3E%20%23%3Cbuffer%20pagination.py%3E%20%23%3Cbuffer%20common.py%3E%20%23%3Cbuffer%20sis%2Furls.py%3E%20%23%3Cbuffer%20domains%2Furls.py%3E%20%23%3Cbuffer%20test_views_history.py%3E%20%23%3Cbuffer%20organization%2Ftest_rest.py%3E%20%23%3Cbuffer%20organization%2Fmodels.py%3E%20%23%3Cbuffer%20package.json%3E%20%23%3Cbuffer%20graylog-exceptions.js%3E%20%23%3Cbuffer%20.zsh_history%3E%20%23%3Cbuffer%20notification_types_size_sinis.test.csv%3E%20%23%3Cbuffer%202023-04-04--1098--wachsende-Tabellen%3E%20%23%3Cbuffer%20advlegacy%3E%20%23%3Cbuffer%20restic-excludes%3E%20%23%3Cbuffer%20restic-backup.sh%3E%20%23%3Cbuffer%20mailreindeer%2Fmain.py%3E%20%23%3Cbuffer%20site-conditionals.el%3E%20%23%3Cbuffer%20Collect.org%3E%20%23%3Cbuffer%20processors.py%3E%20%23%3Cbuffer%20.yarnrc%3E%20%23%3Cbuffer%20.emacs%3E%20%23%3Cbuffer%20sis%2Fmodels.py%3E%20%23%3Cbuffer%20forge-commands.el%3E%20%23%3Cbuffer%20version.py%3E%20%23%3Cbuffer%20Common.org%3E%20%23%3Cbuffer%20matterircd.toml%3E%20%23%3Cbuffer%20doc%2FINSTALL.md%3E%20%23%3Cbuffer%20README.ITS.md%3E%20%23%3Cbuffer%20mail.status.default.template%3E%20%23%3Cbuffer%20mail.default.template%3E%20%23%3Cbuffer%20mailer.py%3E%20%23%3Cbuffer%20runnable.py%3E%20%23%3Cbuffer%20monitor.py%3E%20%23%3Cbuffer%20test_monitor.py%3E%20%23%3Cbuffer%20sissession.py%3E%20%23%3Cbuffer%20marvin%2Fmodels.py%3E%20%23%3Cbuffer%20fake-notification-data.py%3E%20%23%3Cbuffer%20Season3%3E%20%23%3Cbuffer%202022-04-26--1043--lange-Anfragen%3E%20%23%3Cbuffer%20test_views_confirmations.py%3E%20%23%3Cbuffer%20sisdomainvetter%2Fmain.py%3E%20%23%3Cbuffer%20domains%2Fmodels.py%3E%20%23%3Cbuffer%20domains%2Fserializers.py%3E%20%23%3Cbuffer%20sis-domain-vetter%2FUPGRADE.md%3E%20%23%3Cbuffer%20sis.spec%3E%20%23%3Cbuffer%20sis-domain-vetter.spec%3E%20%23%3Cbuffer%20sis-domain-vetter%2FINSTALL.md%3E%20%23%3Cbuffer%20doc%2FUPGRADE.md%3E%20%23%3Cbuffer%20sis-domain-vetter%3E%20%23%3Cbuffer%20doc%3E%20%23%3Cbuffer%20__init__.py%3E%20%23%3Cbuffer%20decoder.py%3E%20%23%3Cbuffer%20reconfirmator.py%3E%20%23%3Cbuffer%20adv%2Fmodels.py%3E%20%23%3Cbuffer%20test_reconfirmator.py%3E%20%23%3Cbuffer%20sis-tooling%2FPipfile%3E%20%23%3Cbuffer%20fixtures.py%3E%20%23%3Cbuffer%20mocker.py%3E%20%23%3Cbuffer%20requests%2Fmodels.py%3E%20%23%3Cbuffer%20_result.py%3E%20%23%3Cbuffer%20_manager.py%3E%20%23%3Cbuffer%20_hooks.py%3E%20%23%3Cbuffer%20runner.py%3E%20%23%3Cbuffer%20response.py%3E%20%23%3Cbuffer%20vetter.py%3E%20%23%3Cbuffer%20sis%2Ftest_rest.py%3E%20%23%3Cbuffer%20sis-tooling%3E%20%23%3Cbuffer%20work%2FSonstiges.org%3E%20%23%3Cbuffer%20friedel-config%3E%20%23%3Cbuffer%20Org%2FRechner.org%3E%20%23%3Cbuffer%20Familie.org%3E%20%23%3Cbuffer%20Haus.org%3E%20%23%3Cbuffer%20Gesundheit.org%3E%20%23%3Cbuffer%20Musik.org%3E%20%23%3Cbuffer%20home%2FRechner.org%3E%20%23%3Cbuffer%20home%2FSonstiges.org%3E%20%23%3Cbuffer%20Weiterentwicklung.org%3E%20%23%3Cbuffer%20Airbus.org%3E%20%23%3Cbuffer%20Arbeitsumgebung.org%3E%20%23%3Cbuffer%20Systemadministration.org%3E%20%23%3Cbuffer%20test_views_subscriptions.py%3E%20%23%3Cbuffer%20domains%2Fviews.py%3E%20%23%3Cbuffer%20Cert.org%3E%20%23%3Cbuffer%20history.py%3E%20%23%3Cbuffer%20installed%3E%20%23%3Cbuffer%20.gitignore%3E%20%23%3Cbuffer%20export-inventories.py%3E%20%23%3Cbuffer%20util.py%3E%20%23%3Cbuffer%20inventories-list.txt%3E%20%23%3Cbuffer%20delete-inventories.py%3E%20%23%3Cbuffer%20notification%2Fmodels.py%3E%20%23%3Cbuffer%20cve-aggregation%2FPipfile%3E%20%23%3Cbuffer%20Pipfile.lock%3E%20%23%3Cbuffer%20requirements.txt%3E%20%23%3Cbuffer%20static%3E%20%23%3Cbuffer%20tar%3E%20%23%3Cbuffer%20airshield%3E%20%23%3Cbuffer%20css%3E%20%23%3Cbuffer%20img%3E%20%23%3Cbuffer%20organization%2Fserializers.py%3E%20%23%3Cbuffer%20test_history.py%3E%20%23%3Cbuffer%20notification%2Ftest_rest.py%3E%20%23%3Cbuffer%20test.py%3E%20%23%3Cbuffer%20mixins.py%3E%20%23%3Cbuffer%20router.py%3E%20%23%3Cbuffer%20viewsets.py%3E%20%23%3Cbuffer%20notification%2Fviews.py%3E%20%23%3Cbuffer%20apps.py%3E%20%23%3Cbuffer%20%20%2AMinibuf-0%2A%3E%20%23%3Cbuffer%20%2AMessages%2A%3E%20%23%3Cbuffer%20%20%2AEcho%20Area%200%2A%3E%20%23%3Cbuffer%20%20%2AEcho%20Area%201%2A%3E%20%23%3Cbuffer%20%20%2Astrokes%2A%3E%20%23%3Cbuffer%20diary%3E%20%23%3Cbuffer%20%20%2Acode-conversion-work%2A%3E%20%23%3Cbuffer%20%20%2Aorg-src-fontification%3Asql-mode%2A%3E%20%23%3Cbuffer%20%20%2Aorg-src-fontification%3Ajson-mode%2A%3E%20%23%3Cbuffer%20%2AShell%20Command%20Output%2A%3E%20%23%3Cbuffer%20%20%2Aserver%2A%3E%29%20nil%20nil%20%2825656%2060417%20767055%20846000%29%20%2825656%2060415%2070633%2018000%29%20%23%3Cwindow-configuration%3E%20%23%3Cmarker%20at%20752139%20in%20tagebuch.org%3E%29%29%29%29%20%28last-focus-update%20.%20t%29%20%28frameset--id%20.%20%223ABC-C88E-7B1A-7D8E%22%29%20%28frameset--mini%20t%20.%20t%29%20%28name%20.%20%22%20%2AMinibuf-1%2A%22%29%20%28height%20.%2062%29%20%28width%20.%20254%29%20%28modeline%20.%20t%29%20%28unsplittable%29%20%28left%20.%202560%29%20%28top%20.%200%29%20%28icon-name%29%20%28display%20.%20%22%3A0%22%29%20%28explicit-name%29%29%20%28%28min-height%20.%204%29%20%28min-width%20.%2020%29%20%28min-height-ignore%20.%203%29%20%28min-width-ignore%20.%208%29%20%28min-height-safe%20.%201%29%20%28min-width-safe%20.%204%29%20%28min-pixel-height%20.%2088%29%20%28min-pixel-width%20.%20200%29%20%28min-pixel-height-ignore%20.%2066%29%20%28min-pixel-width-ignore%20.%2080%29%20%28min-pixel-height-safe%20.%2022%29%20%28min-pixel-width-safe%20.%2040%29%29%20hc%20%28pixel-width%20.%202560%29%20%28pixel-height%20.%201359%29%20%28total-width%20.%20256%29%20%28total-height%20.%2062%29%20%28normal-height%20.%201.0%29%20%28normal-width%20.%201.0%29%20%28combination-limit%29%20%28leaf%20%28pixel-width%20.%201280%29%20%28pixel-height%20.%201359%29%20%28total-width%20.%20128%29%20%28total-height%20.%2062%29%20%28normal-height%20.%201.0%29%20%28normal-width%20.%200.5%29%20%28parameters%20%28burly-url%20.%20%22emacs%2Bburly%2Bbookmark%3A%2F%2Fapps.py%3Ffilename%3D%2522~%252Fprojects%252FSIS%252Fsis-tooling%252Fsis%252Flib%252Fpython3%252Fsis%252Fmodules%252Fdomains%252Fapps.py%2522%26front-context-string%3D%2522%2520%2520%2520%2520%2520%2520%2520%2520post_sav%2522%26rear-context-string%3D%2522%2520import%2520history%250A%2522%26position%3D301%26defaults%3D%2528%2522apps.py%2522%2529%22%29%29%20%28buffer%20%22apps.py%22%20%28selected%20.%20t%29%20%28hscroll%20.%200%29%20%28fringes%208%208%20nil%20nil%29%20%28margins%20nil%29%20%28scroll-bars%20nil%200%20t%20nil%200%20t%20nil%29%20%28vscroll%20.%200%29%20%28dedicated%29%20%28point%20.%20301%29%20%28start%20.%201%29%29%20%28prev-buffers%20%28%22%2AHelp%2A%22%201%201016%29%20%28%22%2APackages%2A%22%201061102%201063802%29%20%28%22apps.py%22%201%20301%29%20%28%22tagebuch.org%22%20751812%20752182%29%20%28%22history.py%22%202322%202952%29%20%28%22adv%2Fmodels.py%22%201%20247%29%20%28%22home%2FSonstiges.org%22%201%206606%29%20%28%22organization%2Ftest_rest.py%22%208661%209733%29%20%28%22graylog-exceptions.js%22%201%201100%29%20%28%22test_views_history.py%22%203672%204906%29%20%28%22%2Ascratch%2A%22%201%201%29%20%28%22mixins.py%22%201009%201411%29%20%28%22domains%2Fviews.py%22%2011119%2012239%29%20%28%22sis%2Furls.py%22%201%201566%29%20%28%22Cert.org%22%201%204073%29%20%28%22work%2FSonstiges.org%22%2026601%2030582%29%20%28%22test_views_confirmations.py%22%2034181%2035270%29%20%28%22test_views_subscriptions.py%22%2029937%2030988%29%20%28%22sis.spec%22%202182%203038%29%20%28%22sis-tooling%2FPipfile%22%201%20280%29%20%28%22cve-aggregation%2FPipfile%22%201%201350%29%20%28%22version.py%22%201%2019%29%20%28%22vetter.py%22%202136%203079%29%20%28%22img%22%201%20184%29%20%28%22domains%2Fmodels.py%22%2019770%2020944%29%20%28%22marvin%2Fmodels.py%22%201%20356%29%20%28%22models%2Fquery.py%22%2025323%2026744%29%20%28%22filters.py%22%2019192%2019614%29%20%28%22pagination.py%22%201%20814%29%20%28%22domains%2Furls.py%22%201%20457%29%20%28%22sis%2Fmodels.py%22%2018933%2021424%29%20%28%22common.py%22%201%201099%29%20%28%22domains%2Fserializers.py%22%208678%2010121%29%29%29%20%28leaf%20%28last%20.%20t%29%20%28pixel-width%20.%201280%29%20%28pixel-height%20.%201359%29%20%28total-width%20.%20128%29%20%28total-height%20.%2062%29%20%28normal-height%20.%201.0%29%20%28normal-width%20.%200.5%29%20%28parameters%20%28burly-url%20.%20%22emacs%2Bburly%2Bbookmark%3A%2F%2Fhistory.py%3Ffilename%3D%2522~%252Fprojects%252FSIS%252Fsis-tooling%252Fsis%252Flib%252Fpython3%252Fsis%252Fmodules%252Fdomains%252Fhistory.py%2522%26front-context-string%3D%2522_trigger%2528sender%253D%2522%26rear-context-string%3D%2522apshot_post_save%2522%26position%3D2952%26defaults%3D%2528%2522history.py%2522%2529%22%29%29%20%28buffer%20%22history.py%22%20%28selected%29%20%28hscroll%20.%200%29%20%28fringes%208%208%20nil%20nil%29%20%28margins%20nil%29%20%28scroll-bars%20nil%200%20t%20nil%200%20t%20nil%29%20%28vscroll%20.%200%29%20%28dedicated%29%20%28point%20.%202952%29%20%28start%20.%202322%29%29%29%29%29%5D")
                          (handler . burly-bookmark-handler)))
  bookmark-handle-bookmark("Burly: apps history")
  bookmark--jump-via("Burly: apps history" pop-to-buffer-same-window)
  bookmark-jump("Burly: apps history")
  burly-open-bookmark("Burly: apps history")
  funcall-interactively(burly-open-bookmark "Burly: apps history")
  call-interactively(burly-open-bookmark record nil)
  command-execute(burly-open-bookmark record)
  counsel-M-x-action("burly-open-bookmark")
  ivy-call()
  ivy-read("M-x " ("burly-open-bookmark" "toggle-debug-on-error" "burly-bookmark-frames" "package-list-packages" "save-buffers-kill-emacs" "auto-fill-mode" "notmuch" "customize-variable" "lsp-describe-session" "lsp-workspace-folders-remove" "lsp-restart-workspace" "revert-buffer" "replace-regexp" "json-mode" "replace-string" "string-rectangle" "waswarmit" "boxquote-insert-file" "notmuch-show" "kill-emacs" "calendar" "sum-time-strings-region" "sum-next-levels" "sum-time-strings" "customize-face" "forge-visit-issue" "info" "describe-function" "forge-pull" "customize-group" "customize" "describe-variable" "pyvenv-workon" "boxquote-region" "magit-show-commit" "forge-browse-dwim" "post-mode" "python-mode" "org-mode" "notmuch-tree" "org-table-sum" "font-lock-mode" "sql-mode" "ni-narrow-to-region-other-window" "man" "org-narrow-to-subtree" "package-install" "lsp-python-ms-update-server" "notmuch-search" "tramp-cleanup-all-buffers" ...) :predicate counsel--M-x-externs-predicate :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  counsel-M-x()
  funcall-interactively(counsel-M-x)
  call-interactively(counsel-M-x nil nil)
  command-execute(counsel-M-x)

How do I get at the frameset value as hinted by https://github.com/alphapapa/burly.el/issues/28#issuecomment-962691077 ?

The url in question from my backtrace would be

"emacs+burly+frames:?%5Bframeset%201%20%2825656%2064690%20841630%20601000%29%20nil%20nil%20nil%20nil%20%28%28%28%28minibuffer%20.%20t%29%20%28undecorated%29%20%28override-redirect%29%20%28font%20.%20%22-ADBO-Source%20Code%20Pro-normal-normal-normal-%2A-17-%2A-%2A-%2A-m-0-iso10646-1%22%29%20%28font-parameter%29%20%28border-width%20.%200%29%20%28internal-border-width%20.%200%29%20%28child-frame-border-width%29%20%28right-divider-width%20.%200%29%20%28bottom-divider-width%20.%200%29%20%28vertical-scroll-bars%29%20%28horizontal-scroll-bars%29%20%28foreground-color%20.%20%22black%22%29%20%28background-color%20.%20%22%23b8bbb8%22%29%20%28mouse-color%20.%20%22black%22%29%20%28border-color%20.%20%22black%22%29%20%28screen-gamma%29%20%28line-spacing%29%20%28left-fringe%20.%208%29%20%28right-fringe%20.%208%29%20%28no-special-glyphs%29%20%28scroll-bar-foreground%20.%20%22black%22%29%20%28scroll-bar-background%20.%20%22%23657b83%22%29%20%28menu-bar-lines%20.%201%29%20%28tab-bar-lines%20.%200%29%20%28tool-bar-lines%20.%200%29%20%28title%29%20%28wait-for-wm%20.%20t%29%20%28tool-bar-position%20.%20top%29%20%28inhibit-double-buffering%29%20%28icon-type%20.%20t%29%20%28auto-raise%29%20%28auto-lower%29%20%28cursor-type%20.%20box%29%20%28scroll-bar-width%20.%2016%29%20%28scroll-bar-height%20.%2016%29%20%28alpha%29%20%28no-focus-on-map%29%20%28no-accept-focus%29%20%28fullscreen%29%20%28visibility%20.%20t%29%20%28skip-taskbar%29%20%28z-group%29%20%28cursor-color%20.%20%22%23586e75%22%29%20%28display-type%20.%20color%29%20%28background-mode%20.%20light%29%20%28environment%29%20%28sticky%29%20%28persp--modestring%20%22%5B%22%20%23%28%22main%22%200%204%20%28face%20persp-selected-face%29%29%20%22%5D%22%29%20%28persp--recursive%29%20%28persp--last%29%20%28persp--curr%20.%20%23s%28perspective%20%22main%22%20%28%23%3Cbuffer%20%2APackages%2A%3E%20%23%3Cbuffer%20%2AHelp%2A%3E%20%23%3Ckilled%20buffer%3E%20%23%3Ckilled%20buffer%3E%20%23%3Cbuffer%20%20%2AMetahelp%2A%3E%20%23%3Cbuffer%20tagebuch.org%3E%20%23%3Cbuffer%20%2Ascratch%2A%3E%20%23%3Cbuffer%20manager.py%3E%20%23%3Cbuffer%20models%2Fquery.py%3E%20%23%3Cbuffer%20backends.py%3E%20%23%3Cbuffer%20filters.py%3E%20%23%3Cbuffer%20sql%2Fquery.py%3E%20%23%3Cbuffer%20resolvers.py%3E%20%23%3Cbuffer%20rest%2Fsettings.py%3E%20%23%3Cbuffer%20sis%2Fsettings.py%3E%20%23%3Cbuffer%20pagination.py%3E%20%23%3Cbuffer%20common.py%3E%20%23%3Cbuffer%20sis%2Furls.py%3E%20%23%3Cbuffer%20domains%2Furls.py%3E%20%23%3Cbuffer%20test_views_history.py%3E%20%23%3Cbuffer%20organization%2Ftest_rest.py%3E%20%23%3Cbuffer%20organization%2Fmodels.py%3E%20%23%3Cbuffer%20package.json%3E%20%23%3Cbuffer%20graylog-exceptions.js%3E%20%23%3Cbuffer%20.zsh_history%3E%20%23%3Cbuffer%20notification_types_size_sinis.test.csv%3E%20%23%3Cbuffer%202023-04-04--1098--wachsende-Tabellen%3E%20%23%3Cbuffer%20advlegacy%3E%20%23%3Cbuffer%20restic-excludes%3E%20%23%3Cbuffer%20restic-backup.sh%3E%20%23%3Cbuffer%20mailreindeer%2Fmain.py%3E%20%23%3Cbuffer%20site-conditionals.el%3E%20%23%3Cbuffer%20Collect.org%3E%20%23%3Cbuffer%20processors.py%3E%20%23%3Cbuffer%20.yarnrc%3E%20%23%3Cbuffer%20.emacs%3E%20%23%3Cbuffer%20sis%2Fmodels.py%3E%20%23%3Cbuffer%20forge-commands.el%3E%20%23%3Cbuffer%20version.py%3E%20%23%3Cbuffer%20Common.org%3E%20%23%3Cbuffer%20matterircd.toml%3E%20%23%3Cbuffer%20doc%2FINSTALL.md%3E%20%23%3Cbuffer%20README.ITS.md%3E%20%23%3Cbuffer%20mail.status.default.template%3E%20%23%3Cbuffer%20mail.default.template%3E%20%23%3Cbuffer%20mailer.py%3E%20%23%3Cbuffer%20runnable.py%3E%20%23%3Cbuffer%20monitor.py%3E%20%23%3Cbuffer%20test_monitor.py%3E%20%23%3Cbuffer%20sissession.py%3E%20%23%3Cbuffer%20marvin%2Fmodels.py%3E%20%23%3Cbuffer%20fake-notification-data.py%3E%20%23%3Cbuffer%20Season3%3E%20%23%3Cbuffer%202022-04-26--1043--lange-Anfragen%3E%20%23%3Cbuffer%20test_views_confirmations.py%3E%20%23%3Cbuffer%20sisdomainvetter%2Fmain.py%3E%20%23%3Cbuffer%20domains%2Fmodels.py%3E%20%23%3Cbuffer%20domains%2Fserializers.py%3E%20%23%3Cbuffer%20sis-domain-vetter%2FUPGRADE.md%3E%20%23%3Cbuffer%20sis.spec%3E%20%23%3Cbuffer%20sis-domain-vetter.spec%3E%20%23%3Cbuffer%20sis-domain-vetter%2FINSTALL.md%3E%20%23%3Cbuffer%20doc%2FUPGRADE.md%3E%20%23%3Cbuffer%20sis-domain-vetter%3E%20%23%3Cbuffer%20doc%3E%20%23%3Cbuffer%20init.py%3E%20%23%3Cbuffer%20decoder.py%3E%20%23%3Cbuffer%20reconfirmator.py%3E%20%23%3Cbuffer%20adv%2Fmodels.py%3E%20%23%3Cbuffer%20test_reconfirmator.py%3E%20%23%3Cbuffer%20sis-tooling%2FPipfile%3E%20%23%3Cbuffer%20fixtures.py%3E%20%23%3Cbuffer%20mocker.py%3E%20%23%3Cbuffer%20requests%2Fmodels.py%3E%20%23%3Cbuffer%20_result.py%3E%20%23%3Cbuffer%20_manager.py%3E%20%23%3Cbuffer%20_hooks.py%3E%20%23%3Cbuffer%20runner.py%3E%20%23%3Cbuffer%20response.py%3E%20%23%3Cbuffer%20vetter.py%3E%20%23%3Cbuffer%20sis%2Ftest_rest.py%3E%20%23%3Cbuffer%20sis-tooling%3E%20%23%3Cbuffer%20work%2FSonstiges.org%3E%20%23%3Cbuffer%20friedel-config%3E%20%23%3Cbuffer%20Org%2FRechner.org%3E%20%23%3Cbuffer%20Familie.org%3E%20%23%3Cbuffer%20Haus.org%3E%20%23%3Cbuffer%20Gesundheit.org%3E%20%23%3Cbuffer%20Musik.org%3E%20%23%3Cbuffer%20home%2FRechner.org%3E%20%23%3Cbuffer%20home%2FSonstiges.org%3E%20%23%3Cbuffer%20Weiterentwicklung.org%3E%20%23%3Cbuffer%20Airbus.org%3E%20%23%3Cbuffer%20Arbeitsumgebung.org%3E%20%23%3Cbuffer%20Systemadministration.org%3E%20%23%3Cbuffer%20test_views_subscriptions.py%3E%20%23%3Cbuffer%20domains%2Fviews.py%3E%20%23%3Cbuffer%20Cert.org%3E%20%23%3Cbuffer%20history.py%3E%20%23%3Cbuffer%20installed%3E%20%23%3Cbuffer%20.gitignore%3E%20%23%3Cbuffer%20export-inventories.py%3E%20%23%3Cbuffer%20util.py%3E%20%23%3Cbuffer%20inventories-list.txt%3E%20%23%3Cbuffer%20delete-inventories.py%3E%20%23%3Cbuffer%20notification%2Fmodels.py%3E%20%23%3Cbuffer%20cve-aggregation%2FPipfile%3E%20%23%3Cbuffer%20Pipfile.lock%3E%20%23%3Cbuffer%20requirements.txt%3E%20%23%3Cbuffer%20static%3E%20%23%3Cbuffer%20tar%3E%20%23%3Cbuffer%20airshield%3E%20%23%3Cbuffer%20css%3E%20%23%3Cbuffer%20img%3E%20%23%3Cbuffer%20organization%2Fserializers.py%3E%20%23%3Cbuffer%20test_history.py%3E%20%23%3Cbuffer%20notification%2Ftest_rest.py%3E%20%23%3Cbuffer%20test.py%3E%20%23%3Cbuffer%20mixins.py%3E%20%23%3Cbuffer%20router.py%3E%20%23%3Cbuffer%20viewsets.py%3E%20%23%3Cbuffer%20notification%2Fviews.py%3E%20%23%3Cbuffer%20apps.py%3E%20%23%3Cbuffer%20%20%2AMinibuf-0%2A%3E%20%23%3Cbuffer%20%2AMessages%2A%3E%20%23%3Cbuffer%20%20%2AEcho%20Area%200%2A%3E%20%23%3Cbuffer%20%20%2AEcho%20Area%201%2A%3E%20%23%3Cbuffer%20%20%2Astrokes%2A%3E%20%23%3Cbuffer%20diary%3E%20%23%3Cbuffer%20%20%2Acode-conversion-work%2A%3E%20%23%3Cbuffer%20%20%2Aorg-src-fontification%3Asql-mode%2A%3E%20%23%3Cbuffer%20%20%2Aorg-src-fontification%3Ajson-mode%2A%3E%20%23%3Cbuffer%20%2AShell%20Command%20Output%2A%3E%20%23%3Cbuffer%20%20%2Aserver%2A%3E%29%20nil%20nil%20%2825656%2060417%20767055%20846000%29%20%2825656%2060415%2070633%2018000%29%20%23%3Cwindow-configuration%3E%20%23%3Cmarker%20at%20752139%20in%20tagebuch.org%3E%29%29%20%28persp--hash%20.%20%23s%28hash-table%20size%2010%20test%20equal%20rehash-size%201.5%20rehash-threshold%200.8125%20data%20%28%22main%22%20%23s%28perspective%20%22main%22%20%28%23%3Cbuffer%20%2APackages%2A%3E%20%23%3Cbuffer%20%2AHelp%2A%3E%20%23%3Ckilled%20buffer%3E%20%23%3Ckilled%20buffer%3E%20%23%3Cbuffer%20%20%2AMetahelp%2A%3E%20%23%3Cbuffer%20tagebuch.org%3E%20%23%3Cbuffer%20%2Ascratch%2A%3E%20%23%3Cbuffer%20manager.py%3E%20%23%3Cbuffer%20models%2Fquery.py%3E%20%23%3Cbuffer%20backends.py%3E%20%23%3Cbuffer%20filters.py%3E%20%23%3Cbuffer%20sql%2Fquery.py%3E%20%23%3Cbuffer%20resolvers.py%3E%20%23%3Cbuffer%20rest%2Fsettings.py%3E%20%23%3Cbuffer%20sis%2Fsettings.py%3E%20%23%3Cbuffer%20pagination.py%3E%20%23%3Cbuffer%20common.py%3E%20%23%3Cbuffer%20sis%2Furls.py%3E%20%23%3Cbuffer%20domains%2Furls.py%3E%20%23%3Cbuffer%20test_views_history.py%3E%20%23%3Cbuffer%20organization%2Ftest_rest.py%3E%20%23%3Cbuffer%20organization%2Fmodels.py%3E%20%23%3Cbuffer%20package.json%3E%20%23%3Cbuffer%20graylog-exceptions.js%3E%20%23%3Cbuffer%20.zsh_history%3E%20%23%3Cbuffer%20notification_types_size_sinis.test.csv%3E%20%23%3Cbuffer%202023-04-04--1098--wachsende-Tabellen%3E%20%23%3Cbuffer%20advlegacy%3E%20%23%3Cbuffer%20restic-excludes%3E%20%23%3Cbuffer%20restic-backup.sh%3E%20%23%3Cbuffer%20mailreindeer%2Fmain.py%3E%20%23%3Cbuffer%20site-conditionals.el%3E%20%23%3Cbuffer%20Collect.org%3E%20%23%3Cbuffer%20processors.py%3E%20%23%3Cbuffer%20.yarnrc%3E%20%23%3Cbuffer%20.emacs%3E%20%23%3Cbuffer%20sis%2Fmodels.py%3E%20%23%3Cbuffer%20forge-commands.el%3E%20%23%3Cbuffer%20version.py%3E%20%23%3Cbuffer%20Common.org%3E%20%23%3Cbuffer%20matterircd.toml%3E%20%23%3Cbuffer%20doc%2FINSTALL.md%3E%20%23%3Cbuffer%20README.ITS.md%3E%20%23%3Cbuffer%20mail.status.default.template%3E%20%23%3Cbuffer%20mail.default.template%3E%20%23%3Cbuffer%20mailer.py%3E%20%23%3Cbuffer%20runnable.py%3E%20%23%3Cbuffer%20monitor.py%3E%20%23%3Cbuffer%20test_monitor.py%3E%20%23%3Cbuffer%20sissession.py%3E%20%23%3Cbuffer%20marvin%2Fmodels.py%3E%20%23%3Cbuffer%20fake-notification-data.py%3E%20%23%3Cbuffer%20Season3%3E%20%23%3Cbuffer%202022-04-26--1043--lange-Anfragen%3E%20%23%3Cbuffer%20test_views_confirmations.py%3E%20%23%3Cbuffer%20sisdomainvetter%2Fmain.py%3E%20%23%3Cbuffer%20domains%2Fmodels.py%3E%20%23%3Cbuffer%20domains%2Fserializers.py%3E%20%23%3Cbuffer%20sis-domain-vetter%2FUPGRADE.md%3E%20%23%3Cbuffer%20sis.spec%3E%20%23%3Cbuffer%20sis-domain-vetter.spec%3E%20%23%3Cbuffer%20sis-domain-vetter%2FINSTALL.md%3E%20%23%3Cbuffer%20doc%2FUPGRADE.md%3E%20%23%3Cbuffer%20sis-domain-vetter%3E%20%23%3Cbuffer%20doc%3E%20%23%3Cbuffer%20init.py%3E%20%23%3Cbuffer%20decoder.py%3E%20%23%3Cbuffer%20reconfirmator.py%3E%20%23%3Cbuffer%20adv%2Fmodels.py%3E%20%23%3Cbuffer%20test_reconfirmator.py%3E%20%23%3Cbuffer%20sis-tooling%2FPipfile%3E%20%23%3Cbuffer%20fixtures.py%3E%20%23%3Cbuffer%20mocker.py%3E%20%23%3Cbuffer%20requests%2Fmodels.py%3E%20%23%3Cbuffer%20_result.py%3E%20%23%3Cbuffer%20_manager.py%3E%20%23%3Cbuffer%20_hooks.py%3E%20%23%3Cbuffer%20runner.py%3E%20%23%3Cbuffer%20response.py%3E%20%23%3Cbuffer%20vetter.py%3E%20%23%3Cbuffer%20sis%2Ftest_rest.py%3E%20%23%3Cbuffer%20sis-tooling%3E%20%23%3Cbuffer%20work%2FSonstiges.org%3E%20%23%3Cbuffer%20friedel-config%3E%20%23%3Cbuffer%20Org%2FRechner.org%3E%20%23%3Cbuffer%20Familie.org%3E%20%23%3Cbuffer%20Haus.org%3E%20%23%3Cbuffer%20Gesundheit.org%3E%20%23%3Cbuffer%20Musik.org%3E%20%23%3Cbuffer%20home%2FRechner.org%3E%20%23%3Cbuffer%20home%2FSonstiges.org%3E%20%23%3Cbuffer%20Weiterentwicklung.org%3E%20%23%3Cbuffer%20Airbus.org%3E%20%23%3Cbuffer%20Arbeitsumgebung.org%3E%20%23%3Cbuffer%20Systemadministration.org%3E%20%23%3Cbuffer%20test_views_subscriptions.py%3E%20%23%3Cbuffer%20domains%2Fviews.py%3E%20%23%3Cbuffer%20Cert.org%3E%20%23%3Cbuffer%20history.py%3E%20%23%3Cbuffer%20installed%3E%20%23%3Cbuffer%20.gitignore%3E%20%23%3Cbuffer%20export-inventories.py%3E%20%23%3Cbuffer%20util.py%3E%20%23%3Cbuffer%20inventories-list.txt%3E%20%23%3Cbuffer%20delete-inventories.py%3E%20%23%3Cbuffer%20notification%2Fmodels.py%3E%20%23%3Cbuffer%20cve-aggregation%2FPipfile%3E%20%23%3Cbuffer%20Pipfile.lock%3E%20%23%3Cbuffer%20requirements.txt%3E%20%23%3Cbuffer%20static%3E%20%23%3Cbuffer%20tar%3E%20%23%3Cbuffer%20airshield%3E%20%23%3Cbuffer%20css%3E%20%23%3Cbuffer%20img%3E%20%23%3Cbuffer%20organization%2Fserializers.py%3E%20%23%3Cbuffer%20test_history.py%3E%20%23%3Cbuffer%20notification%2Ftest_rest.py%3E%20%23%3Cbuffer%20test.py%3E%20%23%3Cbuffer%20mixins.py%3E%20%23%3Cbuffer%20router.py%3E%20%23%3Cbuffer%20viewsets.py%3E%20%23%3Cbuffer%20notification%2Fviews.py%3E%20%23%3Cbuffer%20apps.py%3E%20%23%3Cbuffer%20%20%2AMinibuf-0%2A%3E%20%23%3Cbuffer%20%2AMessages%2A%3E%20%23%3Cbuffer%20%20%2AEcho%20Area%200%2A%3E%20%23%3Cbuffer%20%20%2AEcho%20Area%201%2A%3E%20%23%3Cbuffer%20%20%2Astrokes%2A%3E%20%23%3Cbuffer%20diary%3E%20%23%3Cbuffer%20%20%2Acode-conversion-work%2A%3E%20%23%3Cbuffer%20%20%2Aorg-src-fontification%3Asql-mode%2A%3E%20%23%3Cbuffer%20%20%2Aorg-src-fontification%3Ajson-mode%2A%3E%20%23%3Cbuffer%20%2AShell%20Command%20Output%2A%3E%20%23%3Cbuffer%20%20%2Aserver%2A%3E%29%20nil%20nil%20%2825656%2060417%20767055%20846000%29%20%2825656%2060415%2070633%2018000%29%20%23%3Cwindow-configuration%3E%20%23%3Cmarker%20at%20752139%20in%20tagebuch.org%3E%29%29%29%29%20%28last-focus-update%20.%20t%29%20%28frameset--id%20.%20%223ABC-C88E-7B1A-7D8E%22%29%20%28frameset--mini%20t%20.%20t%29%20%28name%20.%20%22%20%2AMinibuf-1%2A%22%29%20%28height%20.%2062%29%20%28width%20.%20254%29%20%28modeline%20.%20t%29%20%28unsplittable%29%20%28left%20.%202560%29%20%28top%20.%200%29%20%28icon-name%29%20%28display%20.%20%22%3A0%22%29%20%28explicit-name%29%29%20%28%28min-height%20.%204%29%20%28min-width%20.%2020%29%20%28min-height-ignore%20.%203%29%20%28min-width-ignore%20.%208%29%20%28min-height-safe%20.%201%29%20%28min-width-safe%20.%204%29%20%28min-pixel-height%20.%2088%29%20%28min-pixel-width%20.%20200%29%20%28min-pixel-height-ignore%20.%2066%29%20%28min-pixel-width-ignore%20.%2080%29%20%28min-pixel-height-safe%20.%2022%29%20%28min-pixel-width-safe%20.%2040%29%29%20hc%20%28pixel-width%20.%202560%29%20%28pixel-height%20.%201359%29%20%28total-width%20.%20256%29%20%28total-height%20.%2062%29%20%28normal-height%20.%201.0%29%20%28normal-width%20.%201.0%29%20%28combination-limit%29%20%28leaf%20%28pixel-width%20.%201280%29%20%28pixel-height%20.%201359%29%20%28total-width%20.%20128%29%20%28total-height%20.%2062%29%20%28normal-height%20.%201.0%29%20%28normal-width%20.%200.5%29%20%28parameters%20%28burly-url%20.%20%22emacs%2Bburly%2Bbookmark%3A%2F%2Fapps.py%3Ffilename%3D%2522~%252Fprojects%252FSIS%252Fsis-tooling%252Fsis%252Flib%252Fpython3%252Fsis%252Fmodules%252Fdomains%252Fapps.py%2522%26front-context-string%3D%2522%2520%2520%2520%2520%2520%2520%2520%2520post_sav%2522%26rear-context-string%3D%2522%2520import%2520history%250A%2522%26position%3D301%26defaults%3D%2528%2522apps.py%2522%2529%22%29%29%20%28buffer%20%22apps.py%22%20%28selected%20.%20t%29%20%28hscroll%20.%200%29%20%28fringes%208%208%20nil%20nil%29%20%28margins%20nil%29%20%28scroll-bars%20nil%200%20t%20nil%200%20t%20nil%29%20%28vscroll%20.%200%29%20%28dedicated%29%20%28point%20.%20301%29%20%28start%20.%201%29%29%20%28prev-buffers%20%28%22%2AHelp%2A%22%201%201016%29%20%28%22%2APackages%2A%22%201061102%201063802%29%20%28%22apps.py%22%201%20301%29%20%28%22tagebuch.org%22%20751812%20752182%29%20%28%22history.py%22%202322%202952%29%20%28%22adv%2Fmodels.py%22%201%20247%29%20%28%22home%2FSonstiges.org%22%201%206606%29%20%28%22organization%2Ftest_rest.py%22%208661%209733%29%20%28%22graylog-exceptions.js%22%201%201100%29%20%28%22test_views_history.py%22%203672%204906%29%20%28%22%2Ascratch%2A%22%201%201%29%20%28%22mixins.py%22%201009%201411%29%20%28%22domains%2Fviews.py%22%2011119%2012239%29%20%28%22sis%2Furls.py%22%201%201566%29%20%28%22Cert.org%22%201%204073%29%20%28%22work%2FSonstiges.org%22%2026601%2030582%29%20%28%22test_views_confirmations.py%22%2034181%2035270%29%20%28%22test_views_subscriptions.py%22%2029937%2030988%29%20%28%22sis.spec%22%202182%203038%29%20%28%22sis-tooling%2FPipfile%22%201%20280%29%20%28%22cve-aggregation%2FPipfile%22%201%201350%29%20%28%22version.py%22%201%2019%29%20%28%22vetter.py%22%202136%203079%29%20%28%22img%22%201%20184%29%20%28%22domains%2Fmodels.py%22%2019770%2020944%29%20%28%22marvin%2Fmodels.py%22%201%20356%29%20%28%22models%2Fquery.py%22%2025323%2026744%29%20%28%22filters.py%22%2019192%2019614%29%20%28%22pagination.py%22%201%20814%29%20%28%22domains%2Furls.py%22%201%20457%29%20%28%22sis%2Fmodels.py%22%2018933%2021424%29%20%28%22common.py%22%201%201099%29%20%28%22domains%2Fserializers.py%22%208678%2010121%29%29%29%20%28leaf%20%28last%20.%20t%29%20%28pixel-width%20.%201280%29%20%28pixel-height%20.%201359%29%20%28total-width%20.%20128%29%20%28total-height%20.%2062%29%20%28normal-height%20.%201.0%29%20%28normal-width%20.%200.5%29%20%28parameters%20%28burly-url%20.%20%22emacs%2Bburly%2Bbookmark%3A%2F%2Fhistory.py%3Ffilename%3D%2522~%252Fprojects%252FSIS%252Fsis-tooling%252Fsis%252Flib%252Fpython3%252Fsis%252Fmodules%252Fdomains%252Fhistory.py%2522%26front-context-string%3D%2522_trigger%2528sender%253D%2522%26rear-context-string%3D%2522apshot_post_save%2522%26position%3D2952%26defaults%3D%2528%2522history.py%2522%2529%22%29%29%20%28buffer%20%22history.py%22%20%28selected%29%20%28hscroll%20.%200%29%20%28fringes%208%208%20nil%20nil%29%20%28margins%20nil%29%20%28scroll-bars%20nil%200%20t%20nil%200%20t%20nil%29%20%28vscroll%20.%200%29%20%28dedicated%29%20%28point%20.%202952%29%20%28start%20.%202322%29%29%29%29%29%5D"

Yes, I have a lot of buffers. Note that the bookmark in question was created with burly-bookmark-frames... when I use burly-bookmark-windows instead, it just works.

gagbo commented 1 year ago

It would be easier if you tried to get a smaller reproducing case instead of your real usage one I guess. Anyway, this comment still applies, it's not "posframe" that's the issue, the issue is that a variable with a #<...> value is saved. When burly tries to restore values, it needs to read values to put them back into variables, and the #<...> stuff is not readable by default.

The url encoding for #< is %23%3C, so it seems that there's a block with a lot of unreadable variables in it, running the URL inside a URL decoder will probably show you what variables have unreadable values (and should therefore be ignored by burly using the customization options)

TauPan commented 1 year ago

Thanks for the hint. I used url-unhex-string and it turns out that I still had persp-mode enabled, which I never got comfortable with, so I disabled it for now instead of configuring burly to ignore the variables. I guess I will mostly be using burly-bookmark-windows anyways, since I very rarely use multiple emacs frames.

phil-s commented 1 year ago

it's not "posframe" that's the issue, the issue is that a variable with a #<...> value is saved. When burly tries to restore values, it needs to read values to put them back into variables, and the #<...> stuff is not readable by default.

I can only reiterate that. Trying to maintain a list of known problematic cases isn't practical (and leads to frustration when the user goes to restore a bookmark and finds only then that it isn't going to work, on account of some previously-unknown case); what's necessary is to prevent such unreadable syntax being stored in bookmarks in the first place, so that the problem cannot occur.

TauPan commented 1 year ago

it's not "posframe" that's the issue, the issue is that a variable with a #<...> value is saved. When burly tries to restore values, it needs to read values to put them back into variables, and the #<...> stuff is not readable by default.

I can only reiterate that. Trying to maintain a list of known problematic cases isn't practical (and leads to frustration when the user goes to restore a bookmark and finds only then that it isn't going to work, on account of some previously-unknown case); what's necessary is to prevent such unreadable syntax being stored in bookmarks in the first place, so that the problem cannot occur.

Hm, would it be feasible to try to read back the bookmark expression after generating it and catch the exception and convert it into a user friendly error, so the bookmark is not even stored and the user gets a hint about what might be causing the problem?

This idea comes from a very vague understanding what's happening here, so it's likely not possible this way at all.

alphapapa commented 1 year ago

Maybe we can use readablep on values before saving them, and omit ones that aren't. It's defined in Emacs 29 and in compat.

alphapapa commented 1 year ago

All, please try this branch and let me know if it fixes the problem: https://github.com/alphapapa/burly.el/compare/wip/readablep

alphapapa commented 1 year ago

@TauPan @phil-s @tumashu @seagle0128 @sauvala @gagbo

Please try this branch and let me know if it fixes the problem: https://github.com/alphapapa/burly.el/compare/wip/readablep If it does, I'll push it to master and make a new release.

phil-s commented 1 year ago

That seems to work, except...

I managed to crash Emacs while I was testing, by running bookmark-jump for the bookmark in question a second time after having successfully visited it already; but I've attempted to reproduce the crash in new sessions, calling bookmark-jump many times, and it's been fine every time.

I don't believe the saved bookmark would have changed between tests, so I'm not sure what to make of that -- I haven't seen Emacs crash in a long time, but it's not obvious that it was anything to do with the issue at hand.

Edit: And now I've reproduced it. Not consistently, but I've made Emacs 28.2 segfault twice now. I'll need to report this upstream... I can only presume something happening in readablep is behind it. Or, as it's inconsistent, I suppose maybe it could have happened with the previous code as well... I don't know anything more right now.

alphapapa commented 1 year ago

@phil-s Thanks. That's very strange indeed. Please link the bug report here when you file it.

Now I'm not sure what to do about this. I don't want to release code that could make Emacs crash, which is much worse than signaling an error.

alphapapa commented 8 months ago

@phil-s Can you reproduce the crash on 29.1?

phil-s commented 8 months ago

Ah, my apologies, this fell completely off my radar. I stopped using burly once I realised that Ement.el's Notifications buffer enabled me to eliminate the use-case I'd had for wanting to bookmark and restore a complex arrangement of chat room buffers. I'll try to test it again sometime soon. Feel free to bug me about it if I forget again.

nrvale0 commented 7 months ago

I hope I'm not clouding the issue here but I'm seeing similar behavior though the way I'm getting there is a bit different. I have a bookmark set to open 2-window set with "elfeed-summary" and "ytdl-list" buffers.

Here's the stack trace:

Debugger entered--Lisp error: (invalid-read-syntax "#")
  signal(invalid-read-syntax ("#"))
  burly-bookmark-handler(("Burly: elfeed + downloads" (url . "emacs+burly+frames:?%5Bframeset%201%20%2826011%201...") (handler . burly-bookmark-handler)))
  bookmark-handle-bookmark("Burly: elfeed + downloads")
  bookmark--jump-via("Burly: elfeed + downloads" pop-to-buffer-same-window)
  bookmark-jump("Burly: elfeed + downloads")
  burly-open-bookmark("Burly: elfeed + downloads")
  funcall-interactively(burly-open-bookmark "Burly: elfeed + downloads")
  command-execute(burly-open-bookmark record)
  execute-extended-command(nil "burly-open-bookmark" "bur")
  funcall-interactively(execute-extended-command nil "burly-open-bookmark" "bur")
  command-execute(execute-extended-command)

Out of curiosity I opened up ~/.emacs.d/bookmarks and the entry for "elfeed + downloads" has a ton of data in it and a lot of it it is probably wise to treat as private so I'm unable to share.

I'm open to some debugging if it will help.

thx

alphapapa commented 7 months ago

@nrvale0 I guess you'll need to look at what data the elfeed-summary and ytdl-list modes' bookmark functions save. Some of it may include unreadable values. The two potential solutions are to modify their bookmark functions to not include such data (if it's not necessary to include), or to add a translator function to Burly to try to transform it into readable values.

Generally I would expect that the elfeed-summary buffer should only need to include the query, which should be readable. I don't know anything about ytdl. So you should probably try to bookmark just one of those modes and see if only one of them causes the problem.

nrvale0 commented 7 months ago

I will try each of them individually and report back.