On Sat, Feb 15, 2020 at 08:49:26AM +0900, Akira Yokosawa wrote: > >From f445ac887a125bbff303b80921f981ea0704c748 Mon Sep 17 00:00:00 2001 > From: Akira Yokosawa <akiyks@xxxxxxxxx> > Date: Sat, 15 Feb 2020 08:36:53 +0900 > Subject: [PATCH v2] Makefile: Add check of \crefrange and \clnrefrange misuse > > To prevent typos simillar to the one fixed in commit b3b06a98bb7c > ("datastruct.tex: fix some minor typos") to happen again, > add checks to detect the following patterns of misuses: > > ... \cref{label A}{label B} ... > > ... \cref{long label X} > {another long label Y} > > In the formar case, counts of violating lines are presented in > the error message. > In the latter case, only the file name can be presented due > to the "-zo" option to enable multi-line pattern search. > > Note: There can be false negatives in the check. > For example, it can't not detect: > > ... \cref{label E}% some comment > {label F} > > , at the moment. > > Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> > --- > Hi Paul, > > This one uses a regex to cover both \cref and \clnref pattern. Queued and pushed, thank you! Thanx, Paul > Thanks, Akira > -- > Makefile | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/Makefile b/Makefile > index ccc840be..7d1ec630 100644 > --- a/Makefile > +++ b/Makefile > @@ -131,6 +131,9 @@ LINEREF_ENV_END := $(shell grep -l -F '\end{lineref}' $(LATEXSOURCES)) > LINELABEL_ENV := $(sort $(LINELABEL_ENV_BEGIN) $(LINELABEL_ENV_END)) > LINEREF_ENV := $(sort $(LINEREF_ENV_BEGIN) $(LINEREF_ENV_END)) > > +CREFPTN := '\\[Cc](ln)?ref{[^{]+}\s*{[^}]+}' > +CREFPAIR := $(shell grep -l -zo -E $(CREFPTN) $(LATEXSOURCES)) > + > SOURCES_OF_SNIPPET_ALL := $(shell grep -r -l -F '\begin{snippet}' CodeSamples) > SOURCES_OF_LITMUS := $(shell grep -r -l -F '\begin[snippet]' CodeSamples) > SOURCES_OF_LTMS := $(patsubst %.litmus,%.ltms,$(SOURCES_OF_LITMUS)) > @@ -202,6 +205,18 @@ endif > echo "Substitute 'fcvref' for 'lineref' in $(LINEREF_ENV)." ; \ > exit 1 ; \ > fi > + @if [ ! -z "$(CREFPAIR)" -a "$(CREFPAIR)" != " " ]; then \ > + echo "------" ; \ > + if grep -q -E $(CREFPTN) $(CREFPAIR) ; then \ > + grep -n -B 2 -A 2 -E $(CREFPTN) $(CREFPAIR) ; \ > + else \ > + grep -zo -B 2 -A 2 -E $(CREFPTN) $(CREFPAIR) ; \ > + echo ; \ > + fi ; \ > + echo "------" ; \ > + echo "Need to use \[Cc]refrange or \[Cc]lnrefrangein $(CREFPAIR)." ; \ > + exit 1 ; \ > + fi > echo > qqz.tex > echo > contrib.tex > echo > origpub.tex > -- > 2.17.1 > >