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)

Reply via email to