aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorMattias EngdegÄrd2020-05-28 16:37:27 +0200
committerMattias EngdegÄrd2020-05-28 16:58:57 +0200
commit2bdb2cd10d08a1d9c9a187c7d967fdc64b8e6743 (patch)
tree4fc24048cdf3148f3b94fe51bb30531f9fd37896 /lisp
parent4939beacb33ea91cd35e18fa7d43a4392d47f6f4 (diff)
downloademacs-2bdb2cd10d08a1d9c9a187c7d967fdc64b8e6743.tar.gz
emacs-2bdb2cd10d08a1d9c9a187c7d967fdc64b8e6743.zip
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).
Diffstat (limited to 'lisp')
-rw-r--r--lisp/international/mule.el25
1 files changed, 13 insertions, 12 deletions
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 72e8cad9d62..df71205d515 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
769`after-insert-functions' are called. This function is passed one 769`after-insert-functions' are called. This function is passed one
770argument: the number of characters in the text to convert, with 770argument: the number of characters in the text to convert, with
771point at the start of the text. The function should leave point 771point at the start of the text. The function should leave point
772unchanged, and should return the new character count. Note that 772and the match data unchanged, and should return the new character
773this function should avoid reading from files or receiving text 773count. Note that this function should avoid reading from files
774from subprocesses -- anything that could invoke decoding; if it 774or receiving text from subprocesses -- anything that could invoke
775must do so, it should bind `coding-system-for-read' to a value 775decoding; if it must do so, it should bind
776other than the current coding-system, to avoid infinite recursion. 776`coding-system-for-read' to a value other than the current
777coding-system, to avoid infinite recursion.
777 778
778`:pre-write-conversion' 779`:pre-write-conversion'
779 780
@@ -781,13 +782,13 @@ VALUE must be a function to call after all functions in
781`write-region-annotate-functions' and `buffer-file-format' are 782`write-region-annotate-functions' and `buffer-file-format' are
782called, and before the text is encoded by the coding system 783called, and before the text is encoded by the coding system
783itself. This function should convert the whole text in the 784itself. This function should convert the whole text in the
784current buffer. For backward compatibility, this function is 785current buffer, and leave the match data unchanged. For backward
785passed two arguments which can be ignored. Note that this 786compatibility, this function is passed two arguments which can be
786function should avoid writing to files or sending text to 787ignored. Note that this function should avoid writing to files
787subprocesses -- anything that could invoke encoding; if it 788or sending text to subprocesses -- anything that could invoke
788must do so, it should bind `coding-system-for-write' to a 789encoding; if it must do so, it should bind
789value other than the current coding-system, to avoid infinite 790`coding-system-for-write' to a value other than the current
790recursion. 791coding-system, to avoid infinite recursion.
791 792
792`:default-char' 793`:default-char'
793 794