aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2020-04-26 19:30:37 -0700
committerPaul Eggert2020-04-26 19:31:54 -0700
commit08408b13faa911b586ac0c181159ada452a942cc (patch)
tree1743fb97325f7c03b23ccfe6ab8a90d23e3d11c1 /src
parented2def7d5e423388ca75c6e10fd7b42e0c4789c7 (diff)
downloademacs-08408b13faa911b586ac0c181159ada452a942cc.tar.gz
emacs-08408b13faa911b586ac0c181159ada452a942cc.zip
Simplify string-to-char
* src/editfns.c (Fstring_to_char): Simplify. * src/editfns.c (Fstring_to_char): Simplify. This tweak improved the CPU time performance of ‘make compile-always’ by about 1.8% on my platform.
Diffstat (limited to 'src')
-rw-r--r--src/editfns.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/src/editfns.c b/src/editfns.c
index 1a199bad6de..c32488e271f 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -162,20 +162,14 @@ DEFUN ("byte-to-string", Fbyte_to_string, Sbyte_to_string, 1, 1, 0,
162 162
163DEFUN ("string-to-char", Fstring_to_char, Sstring_to_char, 1, 1, 0, 163DEFUN ("string-to-char", Fstring_to_char, Sstring_to_char, 1, 1, 0,
164 doc: /* Return the first character in STRING. */) 164 doc: /* Return the first character in STRING. */)
165 (register Lisp_Object string) 165 (Lisp_Object string)
166{ 166{
167 register Lisp_Object val;
168 CHECK_STRING (string); 167 CHECK_STRING (string);
169 if (SCHARS (string)) 168
170 { 169 /* This returns zero if STRING is empty. */
171 if (STRING_MULTIBYTE (string)) 170 return make_fixnum (STRING_MULTIBYTE (string)
172 XSETFASTINT (val, STRING_CHAR (SDATA (string))); 171 ? STRING_CHAR (SDATA (string))
173 else 172 : SREF (string, 0));
174 XSETFASTINT (val, SREF (string, 0));
175 }
176 else
177 XSETFASTINT (val, 0);
178 return val;
179} 173}
180 174
181DEFUN ("point", Fpoint, Spoint, 0, 0, 0, 175DEFUN ("point", Fpoint, Spoint, 0, 0, 0,