Subject: bug#75292: closed (Re: bug#75292: 31.0.50; igc: (file-error "Doing vfork" "Bad address"))

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 11 Jan 2025 19:34:02 +0000

Your bug report

#75292: 31.0.50; igc: (file-error "Doing vfork" "Bad address")

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
75292: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=75292
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#75292: 31.0.50; igc: (file-error "Doing vfork" "Bad address")
From: Eli Zaretskii <[email-masked]>
To: Ihor Radchenko <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sat, 11 Jan 2025 21:33:25 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Ihor Radchenko <[email-masked]>
> Cc: [email-masked], [email-masked]
> Date: Sat, 11 Jan 2025 18:43:37 +0000
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> > I guess the next thing to try is to return to the posix_spawn build
> >> > after callproc.c is patched as discussed in bug#75322.
> >> 
> >> Do I understand correctly that the patch is not yet finalized?
> >
> > No.  It was installed, but then reverted.  The plan is to revert the
> > revert, AFAIU.
> 
> AFAIU, the fix has been installed.
> I am running with it for a couple of days, and I am not seeing vfork
> errors anymore. I guess that this bug might be closed.

Thanks, closing.

Subject: 31.0.50; igc: (file-error "Doing vfork" "Bad address")
From: Ihor Radchenko <[email-masked]>
To: [email-masked]
Date: Thu, 02 Jan 2025 17:54:45 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

I am getting the belo error regularly, when Emacs is spawning external
process. Not every time though.

See the full backtrace below.
Please advice what I can do to debug further.

Debugger entered--Lisp error: (file-error "Doing vfork" "Bad address")
  (call-process-shell-command "grep -anE '^:(Sourc.URL\\+?):[ \11[]+https://curiouscoding\\.nl/posts/static-search-tree/[]]*$' '/home/yantar92/Org/rss_archive_2019.org'" nil t)
  (#<subr shell-command> "grep -anE '^:(Sourc.URL\\+?):[ \11[]+https://curiouscoding\\.nl/posts/static-search-tree/[]]*$' '/home/yantar92/Org/rss_archive_2019.org'" t nil)
  (shell-command@shell-command-with-editor-mode #<subr shell-command> "grep -anE '^:(Sourc.URL\\+?):[ \11[]+https://curiouscoding\\.nl/posts/static-search-tree/[]]*$' '/home/yantar92/Org/rss_archive_2019.org'" t nil)
  (apply shell-command@shell-command-with-editor-mode #<subr shell-command> ("grep -anE '^:(Sourc.URL\\+?):[ \11[]+https://curiouscoding\\.nl/posts/static-search-tree/[]]*$' '/home/yantar92/Org/rss_archive_2019.org'" t))
  (shell-command "grep -anE '^:(Sourc.URL\\+?):[ \11[]+https://curiouscoding\\.nl/posts/static-search-tree/[]]*$' '/home/yantar92/Org/rss_archive_2019.org'" t)
  (shell-command-to-string "grep -anE '^:(Sourc.URL\\+?):[ \11[]+https://curiouscoding\\.nl/posts/static-search-tree/[]]*$' '/home/yantar92/Org/rss_archive_2019.org'")
  (let ((ans (shell-command-to-string (format "grep -anE '%s' '%s'" regexp file)))) (if (string-empty-p ans) nil (setq matches (append matches (mapcar #'(lambda (str) (if ... ...)) (string-lines ans))))))
  (progn (let ((ans (shell-command-to-string (format "grep -anE '%s' '%s'" regexp file)))) (if (string-empty-p ans) nil (setq matches (append matches (mapcar #'(lambda ... ...) (string-lines ans)))))))
  (if (file-exists-p file) (progn (let ((ans (shell-command-to-string (format "grep -anE '%s' '%s'" regexp file)))) (if (string-empty-p ans) nil (setq matches (append matches (mapcar #'... (string-lines ans))))))))
  (let ((file (car tail))) (if (file-exists-p file) (progn (let ((ans (shell-command-to-string (format "grep -anE '%s' '%s'" regexp file)))) (if (string-empty-p ans) nil (setq matches (append matches (mapcar ... ...))))))) (setq tail (cdr tail)))
  (while tail (let ((file (car tail))) (if (file-exists-p file) (progn (let ((ans (shell-command-to-string ...))) (if (string-empty-p ans) nil (setq matches (append matches ...)))))) (setq tail (cdr tail))))
  (let ((tail files)) (while tail (let ((file (car tail))) (if (file-exists-p file) (progn (let ((ans ...)) (if (string-empty-p ans) nil (setq matches ...))))) (setq tail (cdr tail)))))
  (let (files matches) (if (eq org-capture-ref--org-agenda-files-cached org-agenda-files) (setq files org-capture-ref--org-agenda-files-and-archives-cached) (setq files (org-agenda-files t t)) (setq org-capture-ref--org-agenda-files-cached org-agenda-files) (setq org-capture-ref--org-agenda-files-and-archives-cached files)) (if (eq (car org-agenda-text-search-extra-files) 'agenda-archives) (progn (car-safe (prog1 org-agenda-text-search-extra-files (setq org-agenda-text-search-extra-files (cdr org-agenda-text-search-extra-files)))))) (setq files (append files org-agenda-text-search-extra-files)) (let ((inhibit-message t)) (org-save-all-org-buffers)) (let ((tail files)) (while tail (let ((file (car tail))) (if (file-exists-p file) (progn (let (...) (if ... nil ...)))) (setq tail (cdr tail))))) (setq matches (remove nil matches)) (if matches (progn (if dont-show-match-p nil (save-excursion (save-restriction (switch-to-buffer (marker-buffer ...)) (goto-char (car matches)) (org-back-to-heading t) (org-show-set-visibility 'lineage) (org-show-entry) (jit-lock-fontify-now (point) (save-excursion ...)) (if (yes-or-no-p "Update the entry according to the new capture? ") (progn ... ... ...))))) (if dont-show-match-p (org-capture-ref-message (string-join (mapcar #'org-capture-ref-get-message-string matches) "\n") 'error) (user-error "")))))
  (org-capture-ref-check-regexp-grep "^:(Sourc.URL\\+?):[ \11[]+https://curiouscoding\\.nl/posts/static-search-tree/[]]*$" t)
  (let nil (org-capture-ref-check-regexp-grep (seq-reduce #'(lambda (str repl-pair) (replace-regexp-in-string (car repl-pair) (cdr repl-pair) str)) '(("\\(^\\|[^\\]\\)|" . ".") ("\\\\|" . "|") ("\\\\\\." . "\\\\.") ("'" . ".") ("\\\\(" . "(") ("\\\\)" . ")")) regexp) dont-show-match-p))
  (cond ((eq org-capture-ref-check-regexp-method 'grep) (let nil (org-capture-ref-check-regexp-grep (seq-reduce #'(lambda (str repl-pair) (replace-regexp-in-string ... ... str)) '(("\\(^\\|[^\\]\\)|" . ".") ("\\\\|" . "|") ("\\\\\\." . "\\\\.") ("'" . ".") ("\\\\(" . "(") ("\\\\)" . ")")) regexp) dont-show-match-p))) ((eq org-capture-ref-check-regexp-method 'org-search-view) (let nil (org-capture-ref-check-regexp-search-view regexp dont-show-match-p))) (t (let nil (org-capture-ref-message (format "Invalid value of org-capture-ref-check-regexp-method: %s" org-capture-ref-check-regexp-method) 'error))))
  (org-capture-ref-check-regexp "^:(Source|URL\\+?):[ \11[]+https://curiouscoding\\.nl/posts/static-search-tree/[]]*$" t)
  (progn (org-capture-ref-check-regexp (format (alist-get org-capture-ref-check-regexp-method org-capture-ref-check-link-regexp) (regexp-quote (org-capture-ref-get-capture-info :link))) (org-capture-ref-get-capture-template-info :immediate-finish)))
  (if (org-capture-ref-get-capture-info :link) (progn (org-capture-ref-check-regexp (format (alist-get org-capture-ref-check-regexp-method org-capture-ref-check-link-regexp) (regexp-quote (org-capture-ref-get-capture-info :link))) (org-capture-ref-get-capture-template-info :immediate-finish))))
  (org-capture-ref-check-link)
  (run-hooks org-capture-ref-check-bibtex-functions)
  (catch :finish (run-hooks 'org-capture-ref-check-bibtex-functions))
  (if (org-capture-ref-get-bibtex-field :org-hd-marker) nil (catch :finish (run-hooks 'org-capture-ref-check-bibtex-functions)))
  (org-capture-ref-check-bibtex)
  (if (org-capture-ref-get-capture-info '(:query :force)) nil (org-capture-ref-check-bibtex))
  (progn (org-capture-ref-reset-state) (add-hook 'org-capture-after-finalize-hook #'org-capture-ref-fetch-collection-maybe 100) (if org-capture-ref-quiet-verbosity nil (org-capture-ref-message "Capturing BiBTeX...")) (if (org-capture-ref-get-capture-info '(:query :force)) nil (org-capture-ref-check-bibtex)) (org-capture-ref-get-bibtex) (if (and (org-capture-ref-get-bibtex-field :key) (not (string-match-p "[a-zA-Z]+_[0-9]+" (org-capture-ref-get-bibtex-field :key))) (< 10 (length (org-capture-ref-get-bibtex-field :key)))) nil (org-capture-ref-set-bibtex-field :key nil 'force) (org-capture-ref-set-bibtex-field :key (org-capture-ref-generate-key))) (org-capture-ref-set-bibtex-field :bibtex-string (org-capture-ref-format-bibtex)) (if (or (org-capture-ref-get-capture-info '(:query :org-hd-marker)) (org-capture-ref-get-bibtex-field :org-hd-marker)) (progn (let ((--mepom (or (org-capture-ref-get-capture-info ...) (org-capture-ref-get-bibtex-field :org-hd-marker)))) (save-excursion (cond ((markerp --mepom) (set-buffer ...)) ((numberp --mepom)) (t (if ... ...) (setq --mepom ...))) (save-excursion (save-restriction (widen) (goto-char ...) (org-back-to-heading) (org-capture-ref-get-bibtex-org-heading) (add-hook ... ... 100))))))) (if (org-capture-ref-get-capture-info '(:query :force)) nil (org-capture-ref-check-bibtex)) (if org-capture-ref-quiet-verbosity nil (org-capture-ref-message "Capturing BiBTeX... done")) (org-capture-ref-message (format "Captured: %s" (string-trim-right (org-capture-ref-get-org-entry) "\n[^z-a]*")) 'info))
  (unwind-protect (progn (org-capture-ref-reset-state) (add-hook 'org-capture-after-finalize-hook #'org-capture-ref-fetch-collection-maybe 100) (if org-capture-ref-quiet-verbosity nil (org-capture-ref-message "Capturing BiBTeX...")) (if (org-capture-ref-get-capture-info '(:query :force)) nil (org-capture-ref-check-bibtex)) (org-capture-ref-get-bibtex) (if (and (org-capture-ref-get-bibtex-field :key) (not (string-match-p "[a-zA-Z]+_[0-9]+" (org-capture-ref-get-bibtex-field :key))) (< 10 (length (org-capture-ref-get-bibtex-field :key)))) nil (org-capture-ref-set-bibtex-field :key nil 'force) (org-capture-ref-set-bibtex-field :key (org-capture-ref-generate-key))) (org-capture-ref-set-bibtex-field :bibtex-string (org-capture-ref-format-bibtex)) (if (or (org-capture-ref-get-capture-info '(:query :org-hd-marker)) (org-capture-ref-get-bibtex-field :org-hd-marker)) (progn (let ((--mepom (or ... ...))) (save-excursion (cond (... ...) (...) (t ... ...)) (save-excursion (save-restriction ... ... ... ... ...)))))) (if (org-capture-ref-get-capture-info '(:query :force)) nil (org-capture-ref-check-bibtex)) (if org-capture-ref-quiet-verbosity nil (org-capture-ref-message "Capturing BiBTeX... done")) (org-capture-ref-message (format "Captured: %s" (string-trim-right (org-capture-ref-get-org-entry) "\n[^z-a]*")) 'info)) (if (buffer-live-p org-capture-ref--buffer) (progn (kill-buffer org-capture-ref--buffer))))
  (org-capture-ref-process-capture)
  ((lambda nil (org-capture-ref-process-capture)))
  (doct--replace-template-strings "%{fetch-bibtex}* TODO %?%{space}%{org-entry}")
  (doct--fill-template "%{fetch-bibtex}* TODO %?%{space}%{org-entry}")
  (#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_16> "%{fetch-bibtex}* TODO %?%{space}%{org-entry}")
  (doct--fill-template)
  (org-capture-get-template)
  (#f(compiled-function (&optional goto keys) "Capture something.\n\\<org-capture-mode-map>\nThis will let you select a template from `org-capture-templates', and\nthen file the newly captured information.  The text is immediately\ninserted at the target location, and an indirect buffer is shown where\nyou can edit it.  Pressing `\\[org-capture-finalize]' brings you back to the previous\nstate of Emacs, so that you can continue your work.\n\nWhen called interactively with a `\\[universal-argument]' prefix argument GOTO, don't\ncapture anything, just go to the file/headline where the selected\ntemplate stores its notes.\n\nWith a `\\[universal-argument] \\[universal-argument]' prefix argument, go to the last note stored.\n\nWhen called with a `C-0' (zero) prefix, insert a template at point.\n\nWhen called with a `C-1' (one) prefix, force prompting for a date when\na datetree entry is made.\n\nELisp programs can set KEYS to a string associated with a template\nin `org-capture-templates'.  In this case, interactive selection\nwill be bypassed.\n\nIf `org-capture-use-agenda-date' is non-nil, capturing from the\nagenda will use the date at point as the default date.  Then, a\n`C-1' prefix will tell the capture process to use the HH:MM time\nof the day at point (if any) or the current HH:MM time." (interactive "P") #<bytecode 0x18ab8d26c4a26010>) nil "B")
  (funcall #f(compiled-function (&optional goto keys) "Capture something.\n\\<org-capture-mode-map>\nThis will let you select a template from `org-capture-templates', and\nthen file the newly captured information.  The text is immediately\ninserted at the target location, and an indirect buffer is shown where\nyou can edit it.  Pressing `\\[org-capture-finalize]' brings you back to the previous\nstate of Emacs, so that you can continue your work.\n\nWhen called interactively with a `\\[universal-argument]' prefix argument GOTO, don't\ncapture anything, just go to the file/headline where the selected\ntemplate stores its notes.\n\nWith a `\\[universal-argument] \\[universal-argument]' prefix argument, go to the last note stored.\n\nWhen called with a `C-0' (zero) prefix, insert a template at point.\n\nWhen called with a `C-1' (one) prefix, force prompting for a date when\na datetree entry is made.\n\nELisp programs can set KEYS to a string associated with a template\nin `org-capture-templates'.  In this case, interactive selection\nwill be bypassed.\n\nIf `org-capture-use-agenda-date' is non-nil, capturing from the\nagenda will use the date at point as the default date.  Then, a\n`C-1' prefix will tell the capture process to use the HH:MM time\nof the day at point (if any) or the current HH:MM time." (interactive "P") #<bytecode 0x18ab8d26c4a26010>) nil "B")
  (if (or (and (boundp 'yant/suppress-pop-frame) yant/suppress-pop-frame) (member :immediate-finish (assoc keys org-capture-templates))) (funcall orig-fun goto keys) (funcall old-fun orig-fun goto keys))
  (ocpf--org-capture@suppress-pop-frame-maybe #f(lambda (orig-fun &optional goto keys) :dynbind "Create a new frame and run org-capture." (interactive nil) (let ((frame-window-system (cond ((eq system-type ...) 'ns) ((eq system-type ...) 'x) ((eq system-type ...) 'w32))) (after-make-frame-functions #'(lambda (frame) (let ... ...)))) (make-frame (cons (cons 'window-system frame-window-system) ocpf-frame-parameters)))) #f(compiled-function (&optional goto keys) "Capture something.\n\\<org-capture-mode-map>\nThis will let you select a template from `org-capture-templates', and\nthen file the newly captured information.  The text is immediately\ninserted at the target location, and an indirect buffer is shown where\nyou can edit it.  Pressing `\\[org-capture-finalize]' brings you back to the previous\nstate of Emacs, so that you can continue your work.\n\nWhen called interactively with a `\\[universal-argument]' prefix argument GOTO, don't\ncapture anything, just go to the file/headline where the selected\ntemplate stores its notes.\n\nWith a `\\[universal-argument] \\[universal-argument]' prefix argument, go to the last note stored.\n\nWhen called with a `C-0' (zero) prefix, insert a template at point.\n\nWhen called with a `C-1' (one) prefix, force prompting for a date when\na datetree entry is made.\n\nELisp programs can set KEYS to a string associated with a template\nin `org-capture-templates'.  In this case, interactive selection\nwill be bypassed.\n\nIf `org-capture-use-agenda-date' is non-nil, capturing from the\nagenda will use the date at point as the default date.  Then, a\n`C-1' prefix will tell the capture process to use the HH:MM time\nof the day at point (if any) or the current HH:MM time." (interactive "P") #<bytecode 0x18ab8d26c4a26010>) nil "B")
  (apply ocpf--org-capture@suppress-pop-frame-maybe #f(lambda (orig-fun &optional goto keys) :dynbind "Create a new frame and run org-capture." (interactive nil) (let ((frame-window-system (cond ((eq system-type ...) 'ns) ((eq system-type ...) 'x) ((eq system-type ...) 'w32))) (after-make-frame-functions #'(lambda (frame) (let ... ...)))) (make-frame (cons (cons 'window-system frame-window-system) ocpf-frame-parameters)))) (#f(compiled-function (&optional goto keys) "Capture something.\n\\<org-capture-mode-map>\nThis will let you select a template from `org-capture-templates', and\nthen file the newly captured information.  The text is immediately\ninserted at the target location, and an indirect buffer is shown where\nyou can edit it.  Pressing `\\[org-capture-finalize]' brings you back to the previous\nstate of Emacs, so that you can continue your work.\n\nWhen called interactively with a `\\[universal-argument]' prefix argument GOTO, don't\ncapture anything, just go to the file/headline where the selected\ntemplate stores its notes.\n\nWith a `\\[universal-argument] \\[universal-argument]' prefix argument, go to the last note stored.\n\nWhen called with a `C-0' (zero) prefix, insert a template at point.\n\nWhen called with a `C-1' (one) prefix, force prompting for a date when\na datetree entry is made.\n\nELisp programs can set KEYS to a string associated with a template\nin `org-capture-templates'.  In this case, interactive selection\nwill be bypassed.\n\nIf `org-capture-use-agenda-date' is non-nil, capturing from the\nagenda will use the date at point as the default date.  Then, a\n`C-1' prefix will tell the capture process to use the HH:MM time\nof the day at point (if any) or the current HH:MM time." (interactive "P") #<bytecode 0x18ab8d26c4a26010>) nil "B"))
  (ocpf--org-capture #f(compiled-function (&optional goto keys) "Capture something.\n\\<org-capture-mode-map>\nThis will let you select a template from `org-capture-templates', and\nthen file the newly captured information.  The text is immediately\ninserted at the target location, and an indirect buffer is shown where\nyou can edit it.  Pressing `\\[org-capture-finalize]' brings you back to the previous\nstate of Emacs, so that you can continue your work.\n\nWhen called interactively with a `\\[universal-argument]' prefix argument GOTO, don't\ncapture anything, just go to the file/headline where the selected\ntemplate stores its notes.\n\nWith a `\\[universal-argument] \\[universal-argument]' prefix argument, go to the last note stored.\n\nWhen called with a `C-0' (zero) prefix, insert a template at point.\n\nWhen called with a `C-1' (one) prefix, force prompting for a date when\na datetree entry is made.\n\nELisp programs can set KEYS to a string associated with a template\nin `org-capture-templates'.  In this case, interactive selection\nwill be bypassed.\n\nIf `org-capture-use-agenda-date' is non-nil, capturing from the\nagenda will use the date at point as the default date.  Then, a\n`C-1' prefix will tell the capture process to use the HH:MM time\nof the day at point (if any) or the current HH:MM time." (interactive "P") #<bytecode 0x18ab8d26c4a26010>) nil "B")
  (apply ocpf--org-capture #f(compiled-function (&optional goto keys) "Capture something.\n\\<org-capture-mode-map>\nThis will let you select a template from `org-capture-templates', and\nthen file the newly captured information.  The text is immediately\ninserted at the target location, and an indirect buffer is shown where\nyou can edit it.  Pressing `\\[org-capture-finalize]' brings you back to the previous\nstate of Emacs, so that you can continue your work.\n\nWhen called interactively with a `\\[universal-argument]' prefix argument GOTO, don't\ncapture anything, just go to the file/headline where the selected\ntemplate stores its notes.\n\nWith a `\\[universal-argument] \\[universal-argument]' prefix argument, go to the last note stored.\n\nWhen called with a `C-0' (zero) prefix, insert a template at point.\n\nWhen called with a `C-1' (one) prefix, force prompting for a date when\na datetree entry is made.\n\nELisp programs can set KEYS to a string associated with a template\nin `org-capture-templates'.  In this case, interactive selection\nwill be bypassed.\n\nIf `org-capture-use-agenda-date' is non-nil, capturing from the\nagenda will use the date at point as the default date.  Then, a\n`C-1' prefix will tell the capture process to use the HH:MM time\nof the day at point (if any) or the current HH:MM time." (interactive "P") #<bytecode 0x18ab8d26c4a26010>) (nil "B"))
  (org-capture nil "B")
  (org-protocol-capture (:template "B" :url "https://curiouscoding.nl/posts/static-search-tree/" :title "Hacker News: Static search trees: faster than binary search" :elfeed-data #s(elfeed-entry :id ("news.ycombinator.com" . "https://curiouscoding.nl/posts/static-search-tree/") :title "Static search trees: faster than binary search" :link "https://curiouscoding.nl/posts/static-search-tree/" :date 1735690083.0 :content #s(elfeed-ref :id "8e2e9d3bf05bcac3908e187a096bb899ea3dfefc") :content-type html :enclosures nil :tags (opened) :feed-id "https://news.ycombinator.com/rss" :meta (:elfeed-score/score 0))))
  (let ((yant/suppress-pop-frame t)) (org-protocol-capture (list :template "B" :url it :title (format "%s: %s" (elfeed-feed-title (elfeed-entry-feed entry)) (elfeed-entry-title entry)) :elfeed-data entry)))
  (progn (fset 'raise-frame vnew) (let ((yant/suppress-pop-frame t)) (org-protocol-capture (list :template "B" :url it :title (format "%s: %s" (elfeed-feed-title (elfeed-entry-feed entry)) (elfeed-entry-title entry)) :elfeed-data entry))))
  (unwind-protect (progn (fset 'raise-frame vnew) (let ((yant/suppress-pop-frame t)) (org-protocol-capture (list :template "B" :url it :title (format "%s: %s" (elfeed-feed-title (elfeed-entry-feed entry)) (elfeed-entry-title entry)) :elfeed-data entry)))) (fset 'raise-frame old))
  (let* ((vnew #'(lambda (&rest _) nil)) (old (symbol-function 'raise-frame))) (unwind-protect (progn (fset 'raise-frame vnew) (let ((yant/suppress-pop-frame t)) (org-protocol-capture (list :template "B" :url it :title (format "%s: %s" (elfeed-feed-title ...) (elfeed-entry-title entry)) :elfeed-data entry)))) (fset 'raise-frame old)))
  (progn (let* ((vnew #'(lambda (&rest _) nil)) (old (symbol-function 'raise-frame))) (unwind-protect (progn (fset 'raise-frame vnew) (let ((yant/suppress-pop-frame t)) (org-protocol-capture (list :template "B" :url it :title (format "%s: %s" ... ...) :elfeed-data entry)))) (fset 'raise-frame old))))
  (if it (progn (let* ((vnew #'(lambda (&rest _) nil)) (old (symbol-function 'raise-frame))) (unwind-protect (progn (fset 'raise-frame vnew) (let ((yant/suppress-pop-frame t)) (org-protocol-capture (list :template "B" :url it :title ... :elfeed-data entry)))) (fset 'raise-frame old)))))
  (let ((it (elfeed-entry-link entry))) (if it (progn (let* ((vnew #'(lambda ... nil)) (old (symbol-function 'raise-frame))) (unwind-protect (progn (fset 'raise-frame vnew) (let (...) (org-protocol-capture ...))) (fset 'raise-frame old))))))
  (while (consp --cl-var--) (setq entry (car --cl-var--)) (elfeed-untag entry 'unread) (let ((it (elfeed-entry-link entry))) (if it (progn (let* ((vnew #'...) (old (symbol-function ...))) (unwind-protect (progn (fset ... vnew) (let ... ...)) (fset 'raise-frame old)))))) (setq --cl-var-- (cdr --cl-var--)))
  (let* ((--cl-var-- entries) (entry nil)) (while (consp --cl-var--) (setq entry (car --cl-var--)) (elfeed-untag entry 'unread) (let ((it (elfeed-entry-link entry))) (if it (progn (let* ((vnew ...) (old ...)) (unwind-protect (progn ... ...) (fset ... old)))))) (setq --cl-var-- (cdr --cl-var--))) nil)
  (let ((entries (elfeed-search-selected))) (let* ((--cl-var-- entries) (entry nil)) (while (consp --cl-var--) (setq entry (car --cl-var--)) (elfeed-untag entry 'unread) (let ((it (elfeed-entry-link entry))) (if it (progn (let* (... ...) (unwind-protect ... ...))))) (setq --cl-var-- (cdr --cl-var--))) nil) (mapc #'elfeed-search-update-entry entries) (if (use-region-p) nil (forward-line)))
  (#f(lambda () :dynbind "Capture selected entries into inbox." (interactive nil) (elfeed-search-tag-all 'opened) (meta-up) (let ((entries (elfeed-search-selected))) (let* ((--cl-var-- entries) (entry nil)) (while (consp --cl-var--) (setq entry (car --cl-var--)) (elfeed-untag entry 'unread) (let ((it ...)) (if it (progn ...))) (setq --cl-var-- (cdr --cl-var--))) nil) (mapc #'elfeed-search-update-entry entries) (if (use-region-p) nil (forward-line)))))
  (apply #f(lambda () :dynbind "Capture selected entries into inbox." (interactive nil) (elfeed-search-tag-all 'opened) (meta-up) (let ((entries (elfeed-search-selected))) (let* ((--cl-var-- entries) (entry nil)) (while (consp --cl-var--) (setq entry (car --cl-var--)) (elfeed-untag entry 'unread) (let ((it ...)) (if it (progn ...))) (setq --cl-var-- (cdr --cl-var--))) nil) (mapc #'elfeed-search-update-entry entries) (if (use-region-p) nil (forward-line)))) nil)
  (yant/elfeed-capture-entry)
  (funcall-interactively yant/elfeed-capture-entry)
  (command-execute yant/elfeed-capture-entry)

In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.42, cairo version 1.18.2) of 2024-12-28 built on localhost
Repository revision: ae6924ac7e76c40bb2c1e99dda60fbad5a971046
Repository branch: scratch/igc
Windowing system distributor 'The X.Org Foundation', version 11.0.12101014
System Description: Gentoo Linux

Configured using:
 'configure --with-mps=yes --with-native-compilation 'CFLAGS=-g3
 -I/opt/mps/include -L/opt/mps/lib'
 JAVAC=/etc/java-config-2/current-system-vm/bin/javac
 PKG_CONFIG_PATH=/usr/share/guile-data/3.0/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG
LCMS2 LIBXML2 MODULES MPS NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG
SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM
XINPUT2 XPM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

-- 
Ihor Radchenko // yantar92,
Org mode maintainer,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>