update from texinfo
[gnulib.git] / cfg.mk
diff --git a/cfg.mk b/cfg.mk
index ab75ffe..5b9456b 100644 (file)
--- a/cfg.mk
+++ b/cfg.mk
@@ -1,9 +1,20 @@
 # This file is used via the maint.mk-using rule in Makefile.
 
+# This is a gnulib-specific rule to keep non-ascii characters
+# from creeping into our .texi files.  There is nothing inherently
+# wrong with e.g., UTF-8 characters in texinfo sources, but here,
+# we had accumulated some non-ascii apostrophes and hyphens, and
+# they were recently replaced with their ascii analogs.  This rule
+# should help keep things consistent.
+sc_keep_gnulib_texi_files_mostly_ascii:
+       @prohibit='[^][  a-zA-Z0-9'\''`~!\@#$$%^&*(){}=+";:,./<>?|\_-]' \
+       in_vc_files='\.texi$$'                                          \
+       halt='invalid bytes in gnulib .texi file'                       \
+         $(_sc_search_regexp)
+
 local-checks-to-skip =                 \
   sc_GFDL_version                      \
   sc_GPL_version                       \
-  sc_avoid_if_before_free              \
   sc_bindtextdomain                    \
   sc_cast_of_alloca_return_value       \
   sc_cast_of_argument_to_free          \
@@ -23,16 +34,12 @@ local-checks-to-skip =                      \
   sc_prohibit_always-defined_macros    \
   sc_prohibit_atoi_atof                        \
   sc_prohibit_c_ctype_without_use      \
-  sc_prohibit_cloexec_without_use      \
   sc_prohibit_dirent_without_use       \
   sc_prohibit_error_without_use                \
   sc_prohibit_getopt_without_use       \
-  sc_prohibit_hash_pjw_without_use     \
   sc_prohibit_have_config_h            \
-  sc_prohibit_intprops_without_use     \
   sc_prohibit_inttostr_without_use     \
   sc_prohibit_magic_number_exit                \
-  sc_prohibit_openat_without_use       \
   sc_prohibit_path_max_allocation      \
   sc_prohibit_reversed_compare_failure \
   sc_prohibit_safe_read_without_use    \
@@ -48,7 +55,6 @@ local-checks-to-skip =                        \
   sc_require_config_h_first            \
   sc_space_tab                         \
   sc_texinfo_acronym                   \
-  sc_trailing_blank                    \
   sc_two_space_separator_in_usage      \
   sc_unmarked_diagnostics              \
   sc_useless_cpp_parens
@@ -58,3 +64,31 @@ exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = \
   ^modules/|^lib/javaversion\.class$$|$(empty-at-EOF)
 exclude_file_name_regexp--sc_prohibit_doubled_word = \
   ^(tests/test-init\.sh|lib/base(32|64)\.c)$$
+exclude_file_name_regexp--sc_prohibit_openat_without_use = ^lib/selinux-at\.c$$
+exclude_file_name_regexp--sc_trailing_blank = \
+  ^(.*\.class|build-aux/texinfo\.tex|doc/Copyright/assign\.future\.manual)$$
+
+# Disable strncpy prohibition completely, for now.
+exclude_file_name_regexp--sc_prohibit_strncpy = .*
+
+if_before_free_offenders_ =    \
+  clean-temp.c                 \
+  csharpcomp.c                 \
+  free.c                       \
+  fstrcmp.c                    \
+  gl_carray_list.c             \
+  glob.c                       \
+  glthread/lock.c              \
+  propername.c                 \
+  relocatable.c                        \
+  vasnprintf.c
+
+if_before_free_basename_re_ = \
+  $(shell printf '%s\n' '$(if_before_free_offenders_)' \
+    |sed 's|\.c\>||g'|tr -s '[\n[:space:]]' '|')
+
+exclude_file_name_regexp--sc_avoid_if_before_free = \
+  ^lib/($(if_before_free_basename_re_))\.c$$
+
+exclude_file_name_regexp--sc_prohibit_defined_have_decl_tests = \
+  ^lib/((error|getopt|strtoimax)\.c|(argp-namefrob)\.h)$$