emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master bf11c69: * lisp/nxml/nxml-mode.el (nxml-mode): Use add-function


From: Stefan Monnier
Subject: master bf11c69: * lisp/nxml/nxml-mode.el (nxml-mode): Use add-function
Date: Sun, 15 Aug 2021 10:18:14 -0400 (EDT)

branch: master
commit bf11c698b6af5eb243da656b57d99084a2c2e890
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    * lisp/nxml/nxml-mode.el (nxml-mode): Use add-function
    
    This avoids calling the internal function `buffer-substring--filter`
    from `nxml.el`.
    
    (nxml--buffer-substring-filter): Adjust accordingly.
---
 lisp/nxml/nxml-mode.el | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/lisp/nxml/nxml-mode.el b/lisp/nxml/nxml-mode.el
index 5a3499d..b7d1b19 100644
--- a/lisp/nxml/nxml-mode.el
+++ b/lisp/nxml/nxml-mode.el
@@ -540,7 +540,8 @@ Many aspects this mode can be customized using
          (nxml-scan-prolog)))))
   (setq-local syntax-ppss-table sgml-tag-syntax-table)
   (setq-local syntax-propertize-function #'nxml-syntax-propertize)
-  (setq-local filter-buffer-substring-function #'nxml--buffer-substring-filter)
+  (add-function :filter-return (local 'filter-buffer-substring-function)
+                #'nxml--buffer-substring-filter)
   (add-hook 'change-major-mode-hook #'nxml-cleanup nil t)
 
   (when (not (and (buffer-file-name) (file-exists-p (buffer-file-name))))
@@ -565,18 +566,16 @@ Many aspects this mode can be customized using
 
   (with-demoted-errors (rng-nxml-mode-init)))
 
-(defun nxml--buffer-substring-filter (beg end &optional delete)
-  (let ((string (buffer-substring--filter beg end delete)))
-    ;; The `rng-state' property is huge, so don't copy it to the kill
-    ;; ring.  This avoids problems when saving the kill ring with
-    ;; savehist.
-    (when (seq-find (lambda (elem)
-                      (plist-get (nth 2 elem) 'rng-state))
-                    (object-intervals string))
-      (remove-text-properties 0 (length string)
-                              '(rng-state nil fontified nil)
-                              string))
-    string))
+(defun nxml--buffer-substring-filter (string)
+  ;; The `rng-state' property is huge, so don't copy it to the kill ring.
+  ;; This avoids problems when saving the kill ring with savehist.
+  (when (seq-find (lambda (elem)
+                    (plist-get (nth 2 elem) 'rng-state))
+                  (object-intervals string))
+    (remove-text-properties 0 (length string)
+                            '(rng-state nil fontified nil)
+                            string))
+    string)
 
 (defun nxml-cleanup ()
   "Clean up after nxml-mode."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]