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 (See
      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.