
On 06/04/2014 03:15 AM, Martin Kletzander wrote:
On Wed, Jun 04, 2014 at 10:59:08AM +0200, Michal Privoznik wrote:
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 <mprivozn@redhat.com> --- cfg.mk | 9 +++++++++ 1 file changed, 9 insertions(+)
+# Require #include <locale.h> in all files that call setlocale() +sc_require_locale_h: + @for i in $$($(VC_LIST_EXCEPT) | grep '\.[chx]$$'); do \ + if test -z "$$(grep setlocale $$i)" ; then continue; fi; \
Why not:
if ! grep -q setlocale $$i; then continue; fi
Even simpler, let maint.mk do it for you: sc_require_locale_h: @require='include.*locale\.h' \ containing='setlocale *(' \ halt='setlocale() requires <locale.h>' \ $(_sc_search_regexp) -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org