Download raw body.
diff: limit search effort for function prototypes
Stefan Sperling: > > GNU diff caches the last function prototype and the line number > > from which it started searching. > > Yes, we could. This is a great idea. Implemented below. This approach > is also much faster than my previous patch. > > So with this diff we only search the 'left' version of the file for > prototypes. But that's probably how other diff tools do it as well. Yes, GNU diff does this as well. > ok? Basically, yes. That's a malloc/free for each prototype. Would a static buffer in the state be better? > --- lib/diff_output_unidiff.c > +++ lib/diff_output_unidiff.c > if (left_len == 1 && right_len == 1) { > rc = fprintf(dest, "@@ -%d +%d @@%s%s\n", > left_start, right_start, > - prototype ? " " : "", > - prototype ? : ""); > + state->prototype ? " " : "", > + state->prototype ? : ""); That is not C. I had to look it up: "x ? : y" is a GCC extension. Something for a separate clean-up commit, I guess. -- Christian "naddy" Weisgerber naddy@mips.inka.de
diff: limit search effort for function prototypes