On Fri, Oct 6, 2017 at 7:47 AM, Eric Blake <eblake@xxxxxxxxxx> wrote: > On 10/05/2017 06:07 AM, Pino Toscano wrote: >> The majority of the syntax check is taylored for C sources, so some of >> the checks already cause false positives for non-C sources (and thus >> there are exclusion regexps in place). >> >> Instead, just exclude more non-C files from all the checks: >> - pot files: they are templates for po files (already excluded), and >> they are automatically generated from sources >> - pl files: Perl sources, which have own APIs, style, etc; they are >> helper scripts, not "real" sources >> - spec/spec.in files: RPM packaging files >> - js/woff/html.in files: files for web pages >> - diff/patch files: patches >> - stp files: SystemTap scripts >> - syms files: linker symbols files >> - conf files: generic configuration files >> - data/cpuinfo files: procinfo/cpuinfo files > > There are still some useful syntax checks for performing on ALL files > (for example, prohibit_doubled_word). So I'm not quite sure that > blindly exempting these files from all possible checks makes sense. > > Maybe it's worth teaching upstream gnulib syntax-check to make it easier > to auto-exclude non-C files from checks that ARE specific to the C > language, without weakening the global checks that are good on all > files. Maybe even something as simple as adding some sort of language= > tag to feed to $(_sc_search_regexp (if not specified, run on all files, > but if specified as C, the syntax-check is specific to C-like files, so > it limits to .h, .c. .y). > > I'm adding the gnulib list to get feedback on the idea; maybe Jim > Meyering has an opinion as one of the original syntax-check authors. Hi Eric, Is there some reason not to use a directive like this in a rule applying exclusively to version-controlled C-like files? in_vc_files='\.[chly]$$' I looked at libvirt's cfg.mk, and if you add that line to the sc_prohibit_sprintf rule, you can then remove the lines that exempt files with unrelated suffixes from that rule: exclude_file_name_regexp--sc_prohibit_sprintf = \ ^(cfg\.mk|docs/hacking\.html\.in|.*\.stp|.*\.pl)$$ Another rule that can catch things in any non-binary file is sc_prohibit_undesirable_word_seq, even if it's only for pet peeves like detecting "can not". ... >> # Files that should never cause syntax check failures. >> VC_LIST_ALWAYS_EXCLUDE_REGEX = \ >> - (^(docs/(news(-[0-9]*)?\.html\.in|.*\.patch))|\.(po|fig|gif|ico|png))$$ >> + \.(po|fig|gif|ico|png|pot|pl|spec|spec\.in|js|woff|diff|patch|html\.in|stp|syms|conf|data|cpuinfo)$$ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list