diff options
| author | Paul Eggert | 2012-06-25 19:33:51 -0700 |
|---|---|---|
| committer | Paul Eggert | 2012-06-25 19:33:51 -0700 |
| commit | 99027bdd81f63ea690394a153ef49a08f55e498d (patch) | |
| tree | b7b7083784549ae09d9e688441168627262d4b6d /src/term.c | |
| parent | cf38a720e81b545f90dc7be81891d94df6ed059a (diff) | |
| download | emacs-99027bdd81f63ea690394a153ef49a08f55e498d.tar.gz emacs-99027bdd81f63ea690394a153ef49a08f55e498d.zip | |
Use sprintf return value instead of invoking strlen on result.
In the old days this wasn't portable, since some sprintf
implementations returned char *. But they died out years ago and
Emacs already assumes sprintf returns int.
Similarly for float_to_string.
This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
* ccl.c (ccl_driver):
* character.c (string_escape_byte8):
* data.c (Fnumber_to_string):
* doprnt.c (doprnt):
* print.c (print_object):
* xdisp.c (message_dolog):
* xfns.c (syms_of_xfns):
Use sprintf or float_to_string result to avoid need to call strlen.
* data.c (Fnumber_to_string):
Use make_unibyte_string, since the string must be ASCII.
* lisp.h, print.c (float_to_string): Now returns int length.
* term.c (produce_glyphless_glyph):
Use sprintf result rather than recomputing it.
Diffstat (limited to 'src/term.c')
| -rw-r--r-- | src/term.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/term.c b/src/term.c index d58dc2ba878..98f5639fb4a 100644 --- a/src/term.c +++ b/src/term.c | |||
| @@ -1851,8 +1851,7 @@ produce_glyphless_glyph (struct it *it, int for_no_font, Lisp_Object acronym) | |||
| 1851 | len = 1; | 1851 | len = 1; |
| 1852 | else if (len > 4) | 1852 | else if (len > 4) |
| 1853 | len = 4; | 1853 | len = 4; |
| 1854 | sprintf (buf, "[%.*s]", len, str); | 1854 | len = sprintf (buf, "[%.*s]", len, str); |
| 1855 | len += 2; | ||
| 1856 | str = buf; | 1855 | str = buf; |
| 1857 | } | 1856 | } |
| 1858 | else | 1857 | else |