On Sat, Apr 28, 2007 at 01:11:01PM -0400, Dave Jones wrote: > On Sat, Apr 28, 2007 at 11:11:36AM -0500, Matt Mackall wrote: > > > I'm all ears for additional regexps, bug reports or other suggestions. > > > > Neat. > > > > Does it check for: > > > > functions marked extern? > > pulling in external functions or variables without a header file? > > return used as a function, eg return(foo);? > > These sound a little more tricky than just dumb regexps. > I don't want to expand this to a fullblown C parser (given > that we have sparse which can do a better job), but I don't > object to adding some extra code to give the searches more > context.
The first is a straightforward one-line regexp, as is the last: ^extern \w.*\w\( return\s?\( The middle one is a bit trickier. Basically, we don't want people doing either: extern int capital_of_assyria; int sir_not_appearing_in_this_module(); in .c files. The first of those two is easy, provided you can figure out the file type. And both are possible with multiline regexps. This whole thing would be quite a bit more powerful if your search function joined all the lines together, did a potentially multiline search, then calculated the line numbers from the search results. Then you could search for things like: if (...) { if (...) { single_statement; } Looking forward to fully-automated pedantry. This should probably live in scripts/. -- Mathematics is the supreme nostalgia of our time. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/