emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] externals/compat c1501b497a 1/2: compat-29: Drop with-buffer-unmo


From: ELPA Syncer
Subject: [elpa] externals/compat c1501b497a 1/2: compat-29: Drop with-buffer-unmodified-if-unchanged
Date: Sat, 7 Jan 2023 15:57:25 -0500 (EST)

branch: externals/compat
commit c1501b497a2e2215b1560579f2c552b7414a88c7
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    compat-29: Drop with-buffer-unmodified-if-unchanged
---
 NEWS.org     |  2 ++
 compat-29.el | 37 -------------------------------------
 compat.texi  | 17 -----------------
 3 files changed, 2 insertions(+), 54 deletions(-)

diff --git a/NEWS.org b/NEWS.org
index c2a4000409..084a1babeb 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -24,6 +24,8 @@
   downstream issue in the doom-modeline package. If a more efficient solution 
is
   possible, the function will be added back.
 - compat-29: Drop broken function ~string-limit~.
+- compat-29: Drop broken macro ~with-buffer-unmodified-if-unchanged~, which 
relied
+  on ~buffer-hash~ which does not exist on all supported Emacs versions.
 - compat-29: Add ~pos-bol~ and ~pos-eol~.
 
 * Release of "Compat" Version 29.1.0.1
diff --git a/compat-29.el b/compat-29.el
index 194e87f75a..c3f4d52218 100644
--- a/compat-29.el
+++ b/compat-29.el
@@ -272,43 +272,6 @@ CONDITION."
 
 ;;;; Defined in subr-x.el
 
-(compat-defmacro with-buffer-unmodified-if-unchanged (&rest body) ;; <UNTESTED>
-  "Like `progn', but change buffer-modified status only if buffer text changes.
-If the buffer was unmodified before execution of BODY, and
-buffer text after execution of BODY is identical to what it was
-before, ensure that buffer is still marked unmodified afterwards.
-For example, the following won't change the buffer's modification
-status:
-
-  (with-buffer-unmodified-if-unchanged
-    (insert \"a\")
-    (delete-char -1))
-
-Note that only changes in the raw byte sequence of the buffer text,
-as stored in the internal representation, are monitored for the
-purpose of detecting the lack of changes in buffer text.  Any other
-changes that are normally perceived as \"buffer modifications\", such
-as changes in text properties, `buffer-file-coding-system', buffer
-multibyteness, etc. -- will not be noticed, and the buffer will still
-be marked unmodified, effectively ignoring those changes."
-  (declare (debug t) (indent 0))
-  (let ((hash (make-symbol "hash"))
-        (buffer (make-symbol "buffer")))
-    `(let ((,hash (and (not (buffer-modified-p))
-                       (buffer-hash)))
-           (,buffer (current-buffer)))
-       (prog1
-           (progn
-             ,@body)
-         ;; If we didn't change anything in the buffer (and the buffer
-         ;; was previously unmodified), then flip the modification status
-         ;; back to "unchanged".
-         (when (and ,hash (buffer-live-p ,buffer))
-           (with-current-buffer ,buffer
-             (when (and (buffer-modified-p)
-                        (equal ,hash (buffer-hash)))
-               (restore-buffer-modified-p nil))))))))
-
 (compat-defun add-display-text-property (start end prop value ;; <OK>
                                                &optional object)
   "Add display property PROP with VALUE to the text from START to END.
diff --git a/compat.texi b/compat.texi
index 500fddd1b9..891382fa25 100644
--- a/compat.texi
+++ b/compat.texi
@@ -2221,23 +2221,6 @@ you can say:
 @xref{Size of Displayed Text,,,elisp}.
 @end defun
 
-@c based on lisp/subr-x.el
-@defmac with-buffer-unmodified-if-unchanged &rest body@dots{}
-Evaluate @var{body} like @code{progn}, but change buffer-modified status
-only if buffer text changes.  If the buffer was unmodified before
-execution of BODY, and buffer text after execution of BODY is identical
-to what it was before, ensure that buffer is still marked unmodified
-afterwards.
-
-Note that only changes in the raw byte sequence of the buffer text, as
-stored in the internal representation, are monitored for the purpose of
-detecting the lack of changes in buffer text.  Any other changes that
-are normally perceived as "buffer modifications", such as changes in
-text properties, @code{buffer-file-coding-system}, buffer multibyteness,
-etc. -- will not be noticed, and the buffer will still be marked
-unmodified, effectively ignoring those changes.
-@end defmac
-
 @defun file-attribute-file-identifier
 Return the fields @code{(inodenum device)} as a list from attributes
 generated by @code{file-attributes}.



reply via email to

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