summaryrefslogtreecommitdiff
path: root/cfg.mk
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2011-03-31 17:59:16 +0200
committerJim Meyering <meyering@redhat.com>2011-04-03 21:55:27 +0200
commit03583f8d646f4cc4d5f91b7ed763c147a00e2f44 (patch)
treee75e865b606e1fd762b53fa0d1240f619a4338a4 /cfg.mk
parent1c3654cb1fb0d8f3c422c766028d0783a40f4a42 (diff)
downloadcoreutils-03583f8d646f4cc4d5f91b7ed763c147a00e2f44.tar.xz
maint: prohibit direct use of strncmp: prefer STREQ_LEN, STRNCMP_LIT
* cfg.mk (sc_prohibit_strncmp): New rule, mostly from libvirt. * src/system.h (STREQ_LEN, STRPREFIX, STRNCMP_LIT): Define. * src/df.c (get_dev, get_point): Convert. * src/extent-scan.c (extent_need_sync): Likewise. * src/ls.c (is_colored, decode_switches): Likewise. (parse_ls_color, (print_color_indicator): Likewise. * src/md5sum.c (split_3): Likewise. * src/split.c (main, emit_ancillary_info): Likewise. * src/tr.c (look_up_char_class): Likewise. * src/uname.c (main): Likewise. * src/who.c (scan_entries): Likewise.
Diffstat (limited to 'cfg.mk')
-rw-r--r--cfg.mk9
1 files changed, 9 insertions, 0 deletions
diff --git a/cfg.mk b/cfg.mk
index 99a6e5e5d..48e5a4736 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -315,6 +315,15 @@ sc_space_before_open_paren:
else :; \
fi
+# Similar to the gnulib maint.mk rule for sc_prohibit_strcmp
+# Use STREQ_LEN or STRPREFIX rather than comparing strncmp == 0, or != 0.
+sc_prohibit_strncmp:
+ @grep -nE '! *str''ncmp *\(|\<str''ncmp *\(.+\) *[!=]=' \
+ $$($(VC_LIST_EXCEPT)) \
+ | grep -vE ':# *define STR(N?EQ_LEN|PREFIX)\(' && \
+ { echo '$(ME): use STREQ_LEN or STRPREFIX instead of str''ncmp' \
+ 1>&2; exit 1; } || :
+
# Override the default Cc: used in generating an announcement.
announcement_Cc_ = $(translation_project_), \
coreutils@gnu.org, coreutils-announce@gnu.org