From 1919e355477b6211cb32a194a4aa895f0a5e4b06 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Wed, 4 Jun 2014 10:57:21 +0200 Subject: [PATCH] cfg.mk: Introduce rule for setlocale() In the past we had some issues where setlocale() was called without corresponding include of locale.h. While on some systems this may work, on others the compilation failed. We should have a syntax-check rule for that to prevent this from happening again. Signed-off-by: Michal Privoznik --- cfg.mk | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cfg.mk b/cfg.mk index 9e8fceced8..675af21fca 100644 --- a/cfg.mk +++ b/cfg.mk @@ -929,6 +929,15 @@ sc_prohibit_mixed_case_abbreviations: halt='Use PCI, USB, SCSI, not Pci, Usb, Scsi' \ $(_sc_search_regexp) +# Require #include in all files that call setlocale() +sc_require_locale_h: + @for i in $$($(VC_LIST_EXCEPT) | grep '\.[chx]$$'); do \ + if ! grep -q setlocale\( $$i ; then continue; fi ; \ + if ! grep -q '# *include ' $$i ; then \ + echo '$(ME): missing locale.h include in' $$i 1>&2; exit 1; \ + fi; \ + done; + # We don't use this feature of maint.mk. prev_version_file = /dev/null