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).
This commit is contained in:
Mattias Engdegård 2020-05-28 16:37:27 +02:00
parent 4939beacb3
commit 2bdb2cd10d
2 changed files with 15 additions and 14 deletions

View file

@ -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'

View file

@ -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,