emacs-diffs
[Top][All Lists]
Advanced

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

master 2bdb2cd: Document that {en, de}code-coding-string preserve match


From: Mattias Engdegård
Subject: master 2bdb2cd: Document that {en, de}code-coding-string preserve match data
Date: Thu, 28 May 2020 10:59:04 -0400 (EDT)

branch: master
commit 2bdb2cd10d08a1d9c9a187c7d967fdc64b8e6743
Author: Mattias Engdegård <mattiase@acm.org>
Commit: Mattias Engdegård <mattiase@acm.org>

    Document that {en,de}code-coding-string preserve match data
    
    * lisp/international/mule.el (define-coding-system):
    Require :pre-write-conversion and :post-read-conversion functions
    to leave the match data untouched.
    * src/coding.c (Fdecode_coding_string, Fencode_coding_string):
    Document functions as match-data-preserving.
    
    Suggested by Stefan Monnier (see bug#41445).
---
 lisp/international/mule.el | 25 +++++++++++++------------
 src/coding.c               |  4 ++--
 2 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 72e8cad..df71205 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -769,11 +769,12 @@ decoded by the coding system itself and before any 
functions in
 `after-insert-functions' are called.  This function is passed one
 argument: the number of characters in the text to convert, with
 point at the start of the text.  The function should leave point
-unchanged, and should return the new character count.  Note that
-this function should avoid reading from files or receiving text
-from subprocesses -- anything that could invoke decoding; if it
-must do so, it should bind `coding-system-for-read' to a value
-other than the current coding-system, to avoid infinite recursion.
+and the match data unchanged, and should return the new character
+count.  Note that this function should avoid reading from files
+or receiving text from subprocesses -- anything that could invoke
+decoding; if it must do so, it should bind
+`coding-system-for-read' to a value other than the current
+coding-system, to avoid infinite recursion.
 
 `:pre-write-conversion'
 
@@ -781,13 +782,13 @@ VALUE must be a function to call after all functions in
 `write-region-annotate-functions' and `buffer-file-format' are
 called, and before the text is encoded by the coding system
 itself.  This function should convert the whole text in the
-current buffer.  For backward compatibility, this function is
-passed two arguments which can be ignored.  Note that this
-function should avoid writing to files or sending text to
-subprocesses -- anything that could invoke encoding; if it
-must do so, it should bind `coding-system-for-write' to a
-value other than the current coding-system, to avoid infinite
-recursion.
+current buffer, and leave the match data unchanged.  For backward
+compatibility, this function is passed two arguments which can be
+ignored.  Note that this function should avoid writing to files
+or sending text to subprocesses -- anything that could invoke
+encoding; if it must do so, it should bind
+`coding-system-for-write' to a value other than the current
+coding-system, to avoid infinite recursion.
 
 `:default-char'
 
diff --git a/src/coding.c b/src/coding.c
index 34f36d5..071124b 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -10395,7 +10395,7 @@ representation of the decoded text.
 
 This function sets `last-coding-system-used' to the precise coding system
 used (which may be different from CODING-SYSTEM if CODING-SYSTEM is
-not fully specified.)  */)
+not fully specified.)  The function does not change the match data.  */)
   (Lisp_Object string, Lisp_Object coding_system, Lisp_Object nocopy, 
Lisp_Object buffer)
 {
   return code_convert_string (string, coding_system, buffer,
@@ -10415,7 +10415,7 @@ case, the return value is the length of the encoded 
text.
 
 This function sets `last-coding-system-used' to the precise coding system
 used (which may be different from CODING-SYSTEM if CODING-SYSTEM is
-not fully specified.)  */)
+not fully specified.)  The function does not change the match data.  */)
   (Lisp_Object string, Lisp_Object coding_system, Lisp_Object nocopy, 
Lisp_Object buffer)
 {
   return code_convert_string (string, coding_system, buffer,



reply via email to

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