Org uses the obsolete variable `filter-buffer-substring-functions'. This variable is likely due for deletion in Emacs 31.1.
Usually, compatibility code looks for the new way of doing things, and then prefers that. But it seems like someone decided here to look for the old symbol instead, and prefer that. Unless I'm missing something, it seems to me that the code for the _new_ variable has been hitherto unused. Could you please take a look to confirm that removing `filter-buffer-substring-functions' from Emacs won't break your code? I have attached a diff. Thanks!
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index 6b586899f..ebfccf19e 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -2375,14 +2375,8 @@ The following commands are available: (add-hook 'post-command-hook #'org-agenda-update-agenda-type nil 'local) (add-hook 'pre-command-hook #'org-unhighlight nil 'local) ;; Make sure properties are removed when copying text - (if (boundp 'filter-buffer-substring-functions) - (add-hook 'filter-buffer-substring-functions - (lambda (fun start end delete) - (substring-no-properties (funcall fun start end delete))) - nil t) - ;; Emacs >= 24.4. - (add-function :filter-return (local 'filter-buffer-substring-function) - #'substring-no-properties)) + (add-function :filter-return (local 'filter-buffer-substring-function) + #'substring-no-properties) (unless org-agenda-keep-modes (setq org-agenda-follow-mode org-agenda-start-with-follow-mode org-agenda-entry-text-mode org-agenda-start-with-entry-text-mode diff --git a/lisp/org-indent.el b/lisp/org-indent.el index cabed6acf..a0a0740ee 100644 --- a/lisp/org-indent.el +++ b/lisp/org-indent.el @@ -193,15 +193,8 @@ during idle time." (when org-indent-mode-turns-on-hiding-stars (setq-local org-hide-leading-stars t)) (org-indent--compute-prefixes) - (if (boundp 'filter-buffer-substring-functions) - (add-hook 'filter-buffer-substring-functions - (lambda (fun start end delete) - (org-indent-remove-properties-from-string - (funcall fun start end delete))) - nil t) - ;; Emacs >= 24.4. - (add-function :filter-return (local 'filter-buffer-substring-function) - #'org-indent-remove-properties-from-string)) + (add-function :filter-return (local 'filter-buffer-substring-function) + #'org-indent-remove-properties-from-string) (add-hook 'after-change-functions 'org-indent-refresh-maybe nil 'local) (add-hook 'before-change-functions 'org-indent-notify-modified-headline nil 'local) @@ -224,13 +217,8 @@ during idle time." (set-marker org-indent--initial-marker nil)) (when (local-variable-p 'org-hide-leading-stars) (kill-local-variable 'org-hide-leading-stars)) - (if (boundp 'filter-buffer-substring-functions) - (remove-hook 'filter-buffer-substring-functions - (lambda (fun start end delete) - (org-indent-remove-properties-from-string - (funcall fun start end delete)))) - (remove-function (local 'filter-buffer-substring-function) - #'org-indent-remove-properties-from-string)) + (remove-function (local 'filter-buffer-substring-function) + #'org-indent-remove-properties-from-string) (remove-hook 'after-change-functions 'org-indent-refresh-maybe 'local) (remove-hook 'before-change-functions 'org-indent-notify-modified-headline 'local)