diff options
author | Chong Yidong <[email protected]> | 2010-08-22 16:02:16 -0400 |
---|---|---|
committer | Chong Yidong <[email protected]> | 2010-08-22 16:02:16 -0400 |
commit | b0126eac41487b9bca5af5cbb2212ff5b2c58b80 (patch) | |
tree | 680ba932d259776ebfdb6d424fa8f668e1001f7c /src/doc.c | |
parent | b613941ba003bbf5024415ac4f8c2a0e12434751 (diff) | |
parent | bc7d7ea63ba9d98b3ecc3b6decf4392a651dcbfb (diff) |
Merge changes from emacs-23 branch.
Diffstat (limited to 'src/doc.c')
-rw-r--r-- | src/doc.c | 28 |
1 files changed, 16 insertions, 12 deletions
@@ -622,24 +622,28 @@ the same file name is found in the `doc-directory'. */) p = buf; end = buf + (filled < 512 ? filled : filled - 128); while (p != end && *p != '\037') p++; - /* p points to ^_Ffunctionname\n or ^_Vvarname\n. */ + /* p points to ^_Ffunctionname\n or ^_Vvarname\n or ^_Sfilename\n. */ if (p != end) { end = strchr (p, '\n'); /* See if this is a file name, and if it is a file in build-files. */ - if (p[1] == 'S' && end - p > 4 && end[-2] == '.' - && (end[-1] == 'o' || end[-1] == 'c')) + if (p[1] == 'S') { - int len = end - p - 2; - char *fromfile = alloca (len + 1); - strncpy (fromfile, &p[2], len); - fromfile[len] = 0; - if (fromfile[len-1] == 'c') - fromfile[len-1] = 'o'; - - skip_file = NILP (Fmember (build_string (fromfile), - Vbuild_files)); + skip_file = 0; + if (end - p > 4 && end[-2] == '.' + && (end[-1] == 'o' || end[-1] == 'c')) + { + int len = end - p - 2; + char *fromfile = alloca (len + 1); + strncpy (fromfile, &p[2], len); + fromfile[len] = 0; + if (fromfile[len-1] == 'c') + fromfile[len-1] = 'o'; + + skip_file = NILP (Fmember (build_string (fromfile), + Vbuild_files)); + } } sym = oblookup (Vobarray, p + 2, |