From 1fd3bd4c241aeaf811ca8ace719b52b9db772e09 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 13 May 2022 12:06:37 -0700 Subject: [PROPOSED 3/3] Check that FORMAT has / only with rules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Although it’s correct either way, it’s better style to use ‘/’ in the FORMAT column only if the RULES column names a ruleset. Style problem noted by Nick Deguillaume in: https://mm.icann.org/pipermail/tz/2022-May/031408.html * Makefile (s, PRECEDES_STDOFF, STDOFF, RULELESS_SAVE) (RULELESS_SLASHED_ABBRS): New macros. (check_slashed_abbrs): New rule. (check): Add it. (check_white_space, PRECEDES_FILE_NAME) (FILE_NAME_COMPONENT_TOO_LONG): Use $s for brevity. --- Makefile | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index a9a989e..56c4404 100644 --- a/Makefile +++ b/Makefile @@ -448,6 +448,9 @@ UNUSUAL_OK_IPA = u̯ # useful in commentary. UNUSUAL_OK_CHARSET= $(UNUSUAL_OK_LATIN_1)$(UNUSUAL_OK_IPA) +# Put this in a bracket expression to match spaces. +s = [:space:] + # OK_CHAR matches any character allowed in the distributed files. # This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and # multibyte letters are also allowed so that commentary can contain a @@ -755,7 +758,7 @@ tzselect: tzselect.ksh version mv $@.out $@ check: check_character_set check_white_space check_links \ - check_name_lengths check_sorted \ + check_name_lengths check_slashed_abbrs check_sorted \ check_tables check_web check_zishrink check_tzs check_character_set: $(ENCHILADA) @@ -780,19 +783,28 @@ check_white_space: $(ENCHILADA) patfmt=' \t|[\f\r\v]' && pat=`printf "$$patfmt\\n"` && \ ! grep -En "$$pat" \ $$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list) - ! grep -n '[[:space:]]$$' \ + ! grep -n '[$s]$$' \ $$(ls $(ENCHILADA) | grep -Fvx leap-seconds.list) touch $@ -PRECEDES_FILE_NAME = ^(Zone|Link[[:space:]]+[^[:space:]]+)[[:space:]]+ -FILE_NAME_COMPONENT_TOO_LONG = \ - $(PRECEDES_FILE_NAME)[^[:space:]]*[^/[:space:]]{15} +PRECEDES_FILE_NAME = ^(Zone|Link[$s]+[^$s]+)[$s]+ +FILE_NAME_COMPONENT_TOO_LONG = $(PRECEDES_FILE_NAME)[^$s]*[^/$s]{15} check_name_lengths: $(TDATA_TO_CHECK) backzone ! grep -En '$(FILE_NAME_COMPONENT_TOO_LONG)' \ $(TDATA_TO_CHECK) backzone touch $@ +PRECEDES_STDOFF = ^(Zone[$s]+[^$s]+)?[$s]+ +STDOFF = [-+]?[0-9:.]+ +RULELESS_SAVE = (-|$(STDOFF)[sd]?) +RULELESS_SLASHED_ABBRS = \ + $(PRECEDES_STDOFF)$(STDOFF)[$s]+$(RULELESS_SAVE)[$s]+[^$s]*/ + +check_slashed_abbrs: $(TDATA_TO_CHECK) + ! grep -En '$(RULELESS_SLASHED_ABBRS)' $(TDATA_TO_CHECK) + touch $@ + CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; } check_sorted: backward backzone iso3166.tab zone.tab zone1970.tab -- 2.34.1