Skip to content

Commit

Permalink
#31 capitalization improved
Browse files Browse the repository at this point in the history
  • Loading branch information
yegor256 committed May 19, 2023
1 parent f528f25 commit cb33468
Show file tree
Hide file tree
Showing 8 changed files with 445 additions and 17 deletions.
16 changes: 14 additions & 2 deletions bibcop.pl
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,21 @@ sub check_capitalization {
}
$pos = $pos + 1;
if (exists $minors{$word}) {
next;
if ($pos eq 1) {
return "The minor word in the '$tag' must be upper-cased since it is the first one"
}
if (not @words[$pos - 2] =~ /^.*:$/) {
next;
}
return "The minor word in the '$tag' must be upper-cased, becuase it follows the colon"
}
if (exists $minors{lc($word)} and $pos gt 1) {
if (exists $minors{lc($word)}) {
if ($pos eq 1) {
next;
}
if (@words[$pos - 2] =~ /^.*:$/) {
next;
}
return "All minor words in the '$tag' must be lower-cased, while '$word' (no.$pos) is not"
}
if ($word =~ /^[a-z].*/) {
Expand Down
3 changes: 3 additions & 0 deletions perl-tests/checks.pl
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,12 @@ package bibcop;
check_fails($f, ('title' => 'The TeX book'));
check_fails($f, ('title' => 'Data Flow Languages And Architecture'));
check_fails($f, ('title' => 'Object-oriented Programming'));
check_fails($f, ('title' => 'Cilk: an Efficient Multithreaded Runtime System'));
check_fails($f, ('title' => 'in the Database'));
check_passes($f, ('title' => 'The TeX Book'));
check_passes($f, ('title' => 'Data Flow Languages and Architecture'));
check_passes($f, ('title' => 'A Preliminary Architecture for a Basic Data-Flow Processor'));
check_passes($f, ('title' => 'Cilk: An Efficient Multithreaded Runtime System'));

$f = 'check_year';
check_fails($f, ('year' => 'hello'));
Expand Down
3 changes: 0 additions & 3 deletions testfiles/biblatex.luatex.tlg
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
This is a generated file for the l3build validation system.
Don't change this file in any respect.
LaTeX Warning: Citation 'dijkstra1968letters' on page 1 undefined on input line ....
3 changes: 0 additions & 3 deletions testfiles/biblatex.tlg
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
This is a generated file for the l3build validation system.
Don't change this file in any respect.
LaTeX Warning: Citation 'dijkstra1968letters' on page 1 undefined on input line ....
3 changes: 0 additions & 3 deletions testfiles/biblatex.xetex.tlg
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
This is a generated file for the l3build validation system.
Don't change this file in any respect.
LaTeX Warning: Citation 'dijkstra1968letters' on page 1 undefined on input line ....
164 changes: 162 additions & 2 deletions testfiles/bibtex.luatex.tlg
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ This is a generated file for the l3build validation system.
Don't change this file in any respect.
LaTeX Warning: Citation `dijkstra1968letters' on page 1 undefined on input line ....
runsystem((perl ./bibcop.pl --verbose --latex 'main.bib') > iexec.tmp 2>&1; /bin/echo -n $?% >iexec.ret)...executed
(iexec.tmp bibcop: 1 entries found in main.bib
(iexec.tmp
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <7> on input line ....
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <5> on input line ....
bibcop: 1 entries found in main.bib
bibcop: Checking dijkstra1968letters (no.0)...
Package bibcop Warning: All minor words in the 'title' must be lower-cased, while 'To' (no.6) is not, in the 'dijkstra1968letters' entry.
Package bibcop Warning: A mandatory 'doi' tag for '@article' is missing among (author, journal, number, pages, publisher, title, volume, year), in the 'dijkstra1968letters' entry.
Expand All @@ -11,4 +16,159 @@ Package bibcop Warning: The 'title' must be wrapped in double curled brackets, i
runsystem(rm iexec.tmp)...executed
runsystem(rm iexec.ret)...executed
bibcop: style checking finished for main.bib
(bibtex.bbl)
(bibtex.bbl
Overfull \hbox (183.92479pt too wide) in paragraph at lines 1--1
[]\TU/lmr/m/n/10 Scalar value @words[...] bet-ter writ-ten as $\OML/cmm/m/it/10 words\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 :::\OT1/cmr/m/n/10 ]\OML/cmm/m/it/10 at:=bibcop:plline\OT1/cmr/m/n/10 98\OML/cmm/m/it/10 :Scalarvalue\OT1/cmr/m/n/10 @\OML/cmm/m/it/10 words\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 :::\OT1/cmr/m/n/10 ]\OML/cmm/m/it/10 betterwrittenas$\TU/lmr/m/n/10 words[...]
\hbox(7.5+2.5)x345.0, glue set - 1.0, direction TLT
.\localpar
..\localinterlinepenalty=0
..\localbrokenpenalty=0
..\localleftbox=null
..\localrightbox=null
.\hbox(0.0+0.0)x15.0, direction TLT
.\TU/lmr/m/n/10 S
.\TU/lmr/m/n/10 c
.\TU/lmr/m/n/10 a
.\TU/lmr/m/n/10 l
.\TU/lmr/m/n/10 a
.\TU/lmr/m/n/10 r
.\glue(\spaceskip) 3.33 plus 1.665 minus 1.11
.\TU/lmr/m/n/10 v
.\kern-0.56 (font)
.\TU/lmr/m/n/10 a
.\TU/lmr/m/n/10 l
.\TU/lmr/m/n/10 u
.\TU/lmr/m/n/10 e
.\glue(\spaceskip) 3.33 plus 1.665 minus 1.11
.\TU/lmr/m/n/10 @
.\TU/lmr/m/n/10 w
.\kern-0.28 (font)
.\TU/lmr/m/n/10 o
.\TU/lmr/m/n/10 r
.\TU/lmr/m/n/10 d
.\TU/lmr/m/n/10 s
.\TU/lmr/m/n/10 [
.\TU/lmr/m/n/10 .
.\TU/lmr/m/n/10 .
.\TU/lmr/m/n/10 .
.\TU/lmr/m/n/10 ]
.\glue(\spaceskip) 4.44 plus 4.99498 minus 0.37
.\TU/lmr/m/n/10 b
.\kern0.28 (font)
.\TU/lmr/m/n/10 e
.\TU/lmr/m/n/10 t
.\discretionary (penalty 50)
..< \TU/lmr/m/n/10 -
.\TU/lmr/m/n/10 t
.\TU/lmr/m/n/10 e
.\TU/lmr/m/n/10 r
.\glue(\spaceskip) 3.33 plus 1.665 minus 1.11
.\TU/lmr/m/n/10 w
.\TU/lmr/m/n/10 r
.\TU/lmr/m/n/10 i
.\TU/lmr/m/n/10 t
.\discretionary (penalty 50)
..< \TU/lmr/m/n/10 -
.\TU/lmr/m/n/10 t
.\TU/lmr/m/n/10 e
.\TU/lmr/m/n/10 n
.\glue(\spaceskip) 3.33 plus 1.665 minus 1.11
.\TU/lmr/m/n/10 a
.\TU/lmr/m/n/10 s
.\glue(\spaceskip) 3.33 plus 1.665 minus 1.11
.\mathon
.\OML/cmm/m/it/10 w
.\kern0.26909 (italic)
.\OML/cmm/m/it/10 o
.\OML/cmm/m/it/10 r
.\kern0.27779 (italic)
.\OML/cmm/m/it/10 d
.\OML/cmm/m/it/10 s
.\OT1/cmr/m/n/10 [
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 :
.\OT1/cmr/m/n/10 ]
.\OML/cmm/m/it/10 a
.\OML/cmm/m/it/10 t
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 =
.\OML/cmm/m/it/10 b
.\OML/cmm/m/it/10 i
.\OML/cmm/m/it/10 b
.\OML/cmm/m/it/10 c
.\OML/cmm/m/it/10 o
.\OML/cmm/m/it/10 p
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 p
.\OML/cmm/m/it/10 l
.\kern0.19678 (italic)
.\OML/cmm/m/it/10 l
.\kern0.19678 (italic)
.\OML/cmm/m/it/10 i
.\OML/cmm/m/it/10 n
.\OML/cmm/m/it/10 e
.\OT1/cmr/m/n/10 9
.\OT1/cmr/m/n/10 8
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 S
.\kern0.57637 (italic)
.\OML/cmm/m/it/10 c
.\OML/cmm/m/it/10 a
.\OML/cmm/m/it/10 l
.\kern0.19678 (italic)
.\OML/cmm/m/it/10 a
.\OML/cmm/m/it/10 r
.\kern0.27779 (italic)
.\OML/cmm/m/it/10 v
.\kern0.35878 (italic)
.\OML/cmm/m/it/10 a
.\OML/cmm/m/it/10 l
.\kern0.19678 (italic)
.\OML/cmm/m/it/10 u
.\OML/cmm/m/it/10 e
.\OT1/cmr/m/n/10 @
.\OML/cmm/m/it/10 w
.\kern0.26909 (italic)
.\OML/cmm/m/it/10 o
.\OML/cmm/m/it/10 r
.\kern0.27779 (italic)
.\OML/cmm/m/it/10 d
.\OML/cmm/m/it/10 s
.\OT1/cmr/m/n/10 [
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 :
.\OT1/cmr/m/n/10 ]
.\OML/cmm/m/it/10 b
.\OML/cmm/m/it/10 e
.\OML/cmm/m/it/10 t
.\OML/cmm/m/it/10 t
.\OML/cmm/m/it/10 e
.\OML/cmm/m/it/10 r
.\kern0.27779 (italic)
.\OML/cmm/m/it/10 w
.\kern0.26909 (italic)
.\OML/cmm/m/it/10 r
.\kern0.27779 (italic)
.\OML/cmm/m/it/10 i
.\OML/cmm/m/it/10 t
.\OML/cmm/m/it/10 t
.\OML/cmm/m/it/10 e
.\OML/cmm/m/it/10 n
.\OML/cmm/m/it/10 a
.\OML/cmm/m/it/10 s
.\mathoff
.\TU/lmr/m/n/10 w
.\kern-0.28 (font)
.\TU/lmr/m/n/10 o
.\TU/lmr/m/n/10 r
.\TU/lmr/m/n/10 d
.\TU/lmr/m/n/10 s
.\TU/lmr/m/n/10 [
.\TU/lmr/m/n/10 .
.\TU/lmr/m/n/10 .
.\TU/lmr/m/n/10 .
.\TU/lmr/m/n/10 ]
.\glue(\rightskip) 0.0
)
159 changes: 157 additions & 2 deletions testfiles/bibtex.tlg
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ This is a generated file for the l3build validation system.
Don't change this file in any respect.
LaTeX Warning: Citation `dijkstra1968letters' on page 1 undefined on input line ....
runsystem((perl ./bibcop.pl --verbose --latex 'main.bib') > iexec.tmp 2>&1; /bin/echo -n $?% >iexec.ret)...executed.
(iexec.tmp bibcop: 1 entries found in main.bib
(iexec.tmp
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <7> on input line ....
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <5> on input line ....
bibcop: 1 entries found in main.bib
bibcop: Checking dijkstra1968letters (no.0)...
Package bibcop Warning: All minor words in the 'title' must be lower-cased, while 'To' (no.6) is not, in the 'dijkstra1968letters' entry.
Package bibcop Warning: A mandatory 'doi' tag for '@article' is missing among (author, journal, number, pages, publisher, title, volume, year), in the 'dijkstra1968letters' entry.
Expand All @@ -11,4 +16,154 @@ Package bibcop Warning: The 'title' must be wrapped in double curled brackets, i
runsystem(rm iexec.tmp)...executed.
runsystem(rm iexec.ret)...executed.
bibcop: style checking finished for main.bib
(bibtex.bbl)
(bibtex.bbl
Overfull \hbox (183.90814pt too wide) in paragraph at lines 1--1
[]\OT1/cmr/m/n/10 Scalar value @words[...] bet-ter writ-ten as $\OML/cmm/m/it/10 words\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 :::\OT1/cmr/m/n/10 ]\OML/cmm/m/it/10 at:=bibcop:plline\OT1/cmr/m/n/10 98\OML/cmm/m/it/10 :Scalarvalue\OT1/cmr/m/n/10 @\OML/cmm/m/it/10 words\OT1/cmr/m/n/10 [\OML/cmm/m/it/10 :::\OT1/cmr/m/n/10 ]\OML/cmm/m/it/10 betterwrittenas$\OT1/cmr/m/n/10 words[...]
\hbox(7.5+2.5)x345.0, glue set - 1.0
.\hbox(0.0+0.0)x15.0
.\OT1/cmr/m/n/10 S
.\OT1/cmr/m/n/10 c
.\OT1/cmr/m/n/10 a
.\OT1/cmr/m/n/10 l
.\OT1/cmr/m/n/10 a
.\OT1/cmr/m/n/10 r
.\glue 3.33333 plus 1.66666 minus 1.11111
.\OT1/cmr/m/n/10 v
.\kern-0.55556
.\OT1/cmr/m/n/10 a
.\OT1/cmr/m/n/10 l
.\OT1/cmr/m/n/10 u
.\OT1/cmr/m/n/10 e
.\glue 3.33333 plus 1.66666 minus 1.11111
.\OT1/cmr/m/n/10 @
.\OT1/cmr/m/n/10 w
.\kern-0.27779
.\OT1/cmr/m/n/10 o
.\OT1/cmr/m/n/10 r
.\OT1/cmr/m/n/10 d
.\OT1/cmr/m/n/10 s
.\OT1/cmr/m/n/10 [
.\OT1/cmr/m/n/10 .
.\OT1/cmr/m/n/10 .
.\OT1/cmr/m/n/10 .
.\OT1/cmr/m/n/10 ]
.\glue 4.44444 plus 4.99997 minus 0.37036
.\OT1/cmr/m/n/10 b
.\kern0.27779
.\OT1/cmr/m/n/10 e
.\OT1/cmr/m/n/10 t
.\discretionary
..\OT1/cmr/m/n/10 -
.\OT1/cmr/m/n/10 t
.\OT1/cmr/m/n/10 e
.\OT1/cmr/m/n/10 r
.\glue 3.33333 plus 1.66666 minus 1.11111
.\OT1/cmr/m/n/10 w
.\OT1/cmr/m/n/10 r
.\OT1/cmr/m/n/10 i
.\OT1/cmr/m/n/10 t
.\discretionary
..\OT1/cmr/m/n/10 -
.\OT1/cmr/m/n/10 t
.\OT1/cmr/m/n/10 e
.\OT1/cmr/m/n/10 n
.\glue 3.33333 plus 1.66666 minus 1.11111
.\OT1/cmr/m/n/10 a
.\OT1/cmr/m/n/10 s
.\glue 3.33333 plus 1.66666 minus 1.11111
.\mathon
.\OML/cmm/m/it/10 w
.\kern0.26909
.\OML/cmm/m/it/10 o
.\OML/cmm/m/it/10 r
.\kern0.27779
.\OML/cmm/m/it/10 d
.\OML/cmm/m/it/10 s
.\OT1/cmr/m/n/10 [
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 :
.\OT1/cmr/m/n/10 ]
.\OML/cmm/m/it/10 a
.\OML/cmm/m/it/10 t
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 =
.\OML/cmm/m/it/10 b
.\OML/cmm/m/it/10 i
.\OML/cmm/m/it/10 b
.\OML/cmm/m/it/10 c
.\OML/cmm/m/it/10 o
.\OML/cmm/m/it/10 p
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 p
.\OML/cmm/m/it/10 l
.\kern0.19678
.\OML/cmm/m/it/10 l
.\kern0.19678
.\OML/cmm/m/it/10 i
.\OML/cmm/m/it/10 n
.\OML/cmm/m/it/10 e
.\OT1/cmr/m/n/10 9
.\OT1/cmr/m/n/10 8
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 S
.\kern0.57637
.\OML/cmm/m/it/10 c
.\OML/cmm/m/it/10 a
.\OML/cmm/m/it/10 l
.\kern0.19678
.\OML/cmm/m/it/10 a
.\OML/cmm/m/it/10 r
.\kern0.27779
.\OML/cmm/m/it/10 v
.\kern0.35878
.\OML/cmm/m/it/10 a
.\OML/cmm/m/it/10 l
.\kern0.19678
.\OML/cmm/m/it/10 u
.\OML/cmm/m/it/10 e
.\OT1/cmr/m/n/10 @
.\OML/cmm/m/it/10 w
.\kern0.26909
.\OML/cmm/m/it/10 o
.\OML/cmm/m/it/10 r
.\kern0.27779
.\OML/cmm/m/it/10 d
.\OML/cmm/m/it/10 s
.\OT1/cmr/m/n/10 [
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 :
.\OML/cmm/m/it/10 :
.\OT1/cmr/m/n/10 ]
.\OML/cmm/m/it/10 b
.\OML/cmm/m/it/10 e
.\OML/cmm/m/it/10 t
.\OML/cmm/m/it/10 t
.\OML/cmm/m/it/10 e
.\OML/cmm/m/it/10 r
.\kern0.27779
.\OML/cmm/m/it/10 w
.\kern0.26909
.\OML/cmm/m/it/10 r
.\kern0.27779
.\OML/cmm/m/it/10 i
.\OML/cmm/m/it/10 t
.\OML/cmm/m/it/10 t
.\OML/cmm/m/it/10 e
.\OML/cmm/m/it/10 n
.\OML/cmm/m/it/10 a
.\OML/cmm/m/it/10 s
.\mathoff
.\OT1/cmr/m/n/10 w
.\kern-0.27779
.\OT1/cmr/m/n/10 o
.\OT1/cmr/m/n/10 r
.\OT1/cmr/m/n/10 d
.\OT1/cmr/m/n/10 s
.\OT1/cmr/m/n/10 [
.\OT1/cmr/m/n/10 .
.\OT1/cmr/m/n/10 .
.\OT1/cmr/m/n/10 .
.\OT1/cmr/m/n/10 ]
.\glue(\rightskip) 0.0
)
Loading

0 comments on commit cb33468

Please sign in to comment.