diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2013-02-11 15:37:18 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2013-02-11 15:37:18 -0800 |
commit | a84b7c5334e232913111b840f2283d0138a6f5fb (patch) | |
tree | 8ee4e55f7059d1eb918fb5966cd81ee3f84153bc /src/doc.c | |
parent | 71d4202f204ea5fad93eb34406f0ef671630f271 (diff) | |
download | emacs-a84b7c5334e232913111b840f2283d0138a6f5fb.tar.gz |
Tune by using memchr and memrchr.
* .bzrignore: Add string.h.
* admin/merge-gnulib (GNULIB_MODULES): Add memrchr.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/memrchr.c, lib/string.in.h, m4/memrchr.m4, m4/string_h.m4:
New files, from gnulib.
* src/doc.c (Fsnarf_documentation):
* src/fileio.c (Fsubstitute_in_file_name):
* src/search.c (find_newline, scan_newline):
* src/xdisp.c (pos_visible_p, display_count_lines):
Use memchr and memrchr rather than scanning byte-by-byte.
* src/search.c (find_newline): Rename from scan_buffer.
Omit first arg TARGET, as it's always '\n'. All callers changed.
Diffstat (limited to 'src/doc.c')
-rw-r--r-- | src/doc.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/doc.c b/src/doc.c index fa2eca66a1d..7234fb38bf9 100644 --- a/src/doc.c +++ b/src/doc.c @@ -630,11 +630,10 @@ the same file name is found in the `doc-directory'. */) break; buf[filled] = 0; - p = buf; end = buf + (filled < 512 ? filled : filled - 128); - while (p != end && *p != '\037') p++; + p = memchr (buf, '\037', end - buf); /* p points to ^_Ffunctionname\n or ^_Vvarname\n or ^_Sfilename\n. */ - if (p != end) + if (p) { end = strchr (p, '\n'); |