elisp: Substitution
31.20 Substituting for a Character Code
=======================================
The following functions replace characters within a specified region
based on their character codes.
-- Function: subst-char-in-region start end old-char new-char &optional
noundo
This function replaces all occurrences of the character OLD-CHAR
with the character NEW-CHAR in the region of the current buffer
defined by START and END.
If NOUNDO is non-‘nil’, then ‘subst-char-in-region’ does not record
the change for undo and does not mark the buffer as modified. This
was useful for controlling the old selective display feature (
Selective Display).
‘subst-char-in-region’ does not move point and returns ‘nil’.
---------- Buffer: foo ----------
This is the contents of the buffer before.
---------- Buffer: foo ----------
(subst-char-in-region 1 20 ?i ?X)
⇒ nil
---------- Buffer: foo ----------
ThXs Xs the contents of the buffer before.
---------- Buffer: foo ----------
-- Command: translate-region start end table
This function applies a translation table to the characters in the
buffer between positions START and END.
The translation table TABLE is a string or a char-table; ‘(aref
TABLE OCHAR)’ gives the translated character corresponding to
OCHAR. If TABLE is a string, any characters with codes larger than
the length of TABLE are not altered by the translation.
The return value of ‘translate-region’ is the number of characters
that were actually changed by the translation. This does not count
characters that were mapped into themselves in the translation
table.