elisp: Modifying Strings
4.4 Modifying Strings
=====================
The most basic way to alter the contents of an existing string is with
‘aset’ (
Array Functions). ‘(aset STRING IDX CHAR)’ stores CHAR
into STRING at index IDX. Each character occupies one or more bytes,
and if CHAR needs a different number of bytes from the character already
present at that index, ‘aset’ signals an error.
A more powerful function is ‘store-substring’:
-- Function: store-substring string idx obj
This function alters part of the contents of the string STRING, by
storing OBJ starting at index IDX. The argument OBJ may be either
a character or a (smaller) string.
Since it is impossible to change the length of an existing string,
it is an error if OBJ doesn’t fit within STRING’s actual length, or
if any new character requires a different number of bytes from the
character currently present at that point in STRING.
To clear out a string that contained a password, use ‘clear-string’:
-- Function: clear-string string
This makes STRING a unibyte string and clears its contents to
zeros. It may also change STRING’s length.