summaryrefslogtreecommitdiff
path: root/src/print.c
diff options
context:
space:
mode:
authorMattias EngdegÄrd <mattiase@acm.org>2022-07-11 10:34:40 +0200
committerMattias EngdegÄrd <mattiase@acm.org>2022-07-11 10:38:49 +0200
commit69b68099ecfb053ac77e0a954ab7467c440321ff (patch)
tree57f810ec7d6addf847ca4b1c70ff5d0cf5d02e21 /src/print.c
parent96846877930f580e122e9af85b4653918c542f89 (diff)
downloademacs-69b68099ecfb053ac77e0a954ab7467c440321ff.tar.gz
Simplify and speed up string-to-multibyte
* src/character.h (str_to_multibyte): * src/character.c (str_to_multibyte): Change signature and simplify; the conversion is no longer done in-place. * src/fns.c (string_to_multibyte): Drop temporary buffer and memcpy; adapt to new str_to_multibyte signature. * src/print.c (print_string): Drop memcpy; adapt call to str_to_multibyte. * test/src/fns-tests.el (fns--string-to-unibyte): Rename to... (fns--string-to-unibyte-multibyte): ... this and strengthen, so that the test covers string-to-multibyte reasonably well.
Diffstat (limited to 'src/print.c')
-rw-r--r--src/print.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/print.c b/src/print.c
index 4d7e42df1e8..9a31e386f5e 100644
--- a/src/print.c
+++ b/src/print.c
@@ -467,8 +467,7 @@ print_string (Lisp_Object string, Lisp_Object printcharfun)
if (chars < bytes)
{
newstr = make_uninit_multibyte_string (chars, bytes);
- memcpy (SDATA (newstr), SDATA (string), chars);
- str_to_multibyte (SDATA (newstr), bytes, chars);
+ str_to_multibyte (SDATA (newstr), SDATA (string), chars, bytes);
string = newstr;
}
}