# HG changeset patch # User Simon Josefsson # Date 1141395079 0 # Node ID de37f8bb7241a6f12af838943b60fdb3b8dbf173 # Parent f7713c547ed6cda447a3f6195dc6f4f4088854cf * build-aux/maint.mk: Add several syntax checks from CoreUtils. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2006-03-03 Simon Josefsson + + * build-aux/maint.mk: Add several syntax checks from CoreUtils. + 2006-03-03 Simon Josefsson * build-aux/maint.mk: Add indent target. diff --git a/build-aux/maint.mk b/build-aux/maint.mk --- a/build-aux/maint.mk +++ b/build-aux/maint.mk @@ -41,10 +41,66 @@ # Casting arguments to free is never necessary. sc_cast_of_argument_to_free: - @grep -nE '\&2; \ exit 1; } || : +sc_cast_of_x_alloc_return_value: + @grep -nE '\*\) *x(m|c|re)alloc\>' $(C_SOURCES) && \ + { echo '$(ME): don'\''t cast x*alloc return value' 1>&2; \ + exit 1; } || : + +sc_cast_of_alloca_return_value: + @grep -nE '\*\) *alloca\>' $(C_SOURCES) && \ + { echo '$(ME): don'\''t cast alloca return value' 1>&2; \ + exit 1; } || : + +sc_space_tab: + @grep -n '[ ] ' $(C_SOURCES) && \ + { echo '$(ME): found SPACE-TAB sequence; remove the SPACE' \ + 1>&2; exit 1; } || : + +# Don't use the old ato* functions in `real' code. +# They provide no error checking mechanism. +# Instead, use strto* functions. +sc_prohibit_atoi_atof: + @grep -nE '\' $(C_SOURCES) && \ + { echo '$(ME): do not use ato''f, ato''i, ato''l, ato''ll, or ato''q' \ + 1>&2; exit 1; } || : + +# Using EXIT_SUCCESS as the first argument to error is misleading, +# since when that parameter is 0, error does not exit. Use `0' instead. +sc_error_exit_success: + @grep -nF 'error (EXIT_SUCCESS,' $(C_SOURCES) && \ + { echo '$(ME): found error (EXIT_SUCCESS' 1>&2; \ + exit 1; } || : + +# Stylistic, use #ifdef instead of #if +sc_no_if_have_config_h: + @grep -n '^# *if HAVE_CONFIG_H' $(C_SOURCES) && \ + { echo '$(ME): found use of #if HAVE_CONFIG_H; use #ifdef' \ + 1>&2; exit 1; } || : + +# Prohibit the inclusion of assert.h without an actual use of assert. +sc_prohibit_assert_without_use: + @files=$$(grep -l '# *include [<"]assert\.h[>"]' $(C_SOURCES) \ + | grep '\.[cy]$$') && \ + grep -L '\ but don't use it" \ + 1>&2; exit 1; } || : + +sc_obsolete_symbols: + @grep -nE '\<(HAVE''_FCNTL_H|O''_NDELAY)\>' $(C_SOURCES) && \ + { echo '$(ME): do not use HAVE''_FCNTL_H or O''_NDELAY' \ + 1>&2; exit 1; } || : + +# Each nonempty line must start with a year number, or a TAB. +sc_changelog: + @grep -n '^[^12 ]' $$(find . -name ChangeLog) && \ + { echo '$(ME): found unexpected prefix in a ChangeLog' 1>&2; \ + exit 1; } || : + # Collect the names of rules starting with `sc_'. syntax-check-rules := $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' $(ME)) .PHONY: $(syntax-check-rules)