comparison src/doc.c @ 109955:4ed076eb5529

Merge changes from emacs-23 branch.
author Chong Yidong <cyd@stupidchicken.com>
date Sun, 22 Aug 2010 16:04:34 -0400
parents 53205019b195
children ce960720ed3f
comparison
equal deleted inserted replaced
109953:bcdbcc64ea7d 109955:4ed076eb5529
620 620
621 buf[filled] = 0; 621 buf[filled] = 0;
622 p = buf; 622 p = buf;
623 end = buf + (filled < 512 ? filled : filled - 128); 623 end = buf + (filled < 512 ? filled : filled - 128);
624 while (p != end && *p != '\037') p++; 624 while (p != end && *p != '\037') p++;
625 /* p points to ^_Ffunctionname\n or ^_Vvarname\n. */ 625 /* p points to ^_Ffunctionname\n or ^_Vvarname\n or ^_Sfilename\n. */
626 if (p != end) 626 if (p != end)
627 { 627 {
628 end = strchr (p, '\n'); 628 end = strchr (p, '\n');
629 629
630 /* See if this is a file name, and if it is a file in build-files. */ 630 /* See if this is a file name, and if it is a file in build-files. */
631 if (p[1] == 'S' && end - p > 4 && end[-2] == '.' 631 if (p[1] == 'S')
632 && (end[-1] == 'o' || end[-1] == 'c'))
633 { 632 {
634 int len = end - p - 2; 633 skip_file = 0;
635 char *fromfile = alloca (len + 1); 634 if (end - p > 4 && end[-2] == '.'
636 strncpy (fromfile, &p[2], len); 635 && (end[-1] == 'o' || end[-1] == 'c'))
637 fromfile[len] = 0; 636 {
638 if (fromfile[len-1] == 'c') 637 int len = end - p - 2;
639 fromfile[len-1] = 'o'; 638 char *fromfile = alloca (len + 1);
640 639 strncpy (fromfile, &p[2], len);
641 skip_file = NILP (Fmember (build_string (fromfile), 640 fromfile[len] = 0;
642 Vbuild_files)); 641 if (fromfile[len-1] == 'c')
642 fromfile[len-1] = 'o';
643
644 skip_file = NILP (Fmember (build_string (fromfile),
645 Vbuild_files));
646 }
643 } 647 }
644 648
645 sym = oblookup (Vobarray, p + 2, 649 sym = oblookup (Vobarray, p + 2,
646 multibyte_chars_in_text (p + 2, end - p - 2), 650 multibyte_chars_in_text (p + 2, end - p - 2),
647 end - p - 2); 651 end - p - 2);