Skip to content

Commit

Permalink
Terminate expansion in \iow_wrap:nnnN correctly (fixes #491)
Browse files Browse the repository at this point in the history
  • Loading branch information
josephwright committed Oct 19, 2018
1 parent 78f12e5 commit eff6093
Show file tree
Hide file tree
Showing 17 changed files with 152 additions and 2 deletions.
4 changes: 4 additions & 0 deletions l3kernel/CHANGELOG.md
Expand Up @@ -7,6 +7,10 @@ this project uses date-based 'snapshot' version identifiers.

## [Unreleased]

### Fixed

- Wrapping of text in messages, etc., for some line lengths (fixes #491)

## [2018-10-17]

### Added
Expand Down
8 changes: 6 additions & 2 deletions l3kernel/l3file.dtx
Expand Up @@ -1608,6 +1608,7 @@
% {
% \@@_wrap_line_loop:w,
% \@@_wrap_line_aux:Nw,
% \@@_wrap_line_seven:nnnnnnn,
% \@@_wrap_line_end:NnnnnnnnN,
% \@@_wrap_line_end:nw,
% \@@_wrap_end_chunk:w
Expand All @@ -1632,7 +1633,9 @@
% |#2|--|#9| of the \texttt{line_loop} auxiliary or as one of the
% arguments |#2|--|#8| of the \texttt{line_end} auxiliary. In both
% cases stop the assignment and work out how many characters are still
% needed. The weird \cs{use_none:nnnnn} ensures that the required
% needed. Notice that when we have exactly seven arguments to clean up,
% a \cs{exp_stop_f:} has to be inserted to stop the \cs{exp:w}.
% The weird \cs{use_none:nnnnn} ensures that the required
% data is in the right place.
% \begin{macrocode}
\cs_new_protected:Npn \@@_wrap_line:nw #1
Expand Down Expand Up @@ -1666,10 +1669,11 @@
\or: \use_none:nnnn
\or: \use_none:nnnnn
\or: \use_none:nnnnnn
\or: \use_none:nnnnnnn
\or: \@@_wrap_line_seven:nnnnnnn
\fi:
{ } { } { } { } { } { } { } #3
}
\cs_new:Npn \@@_wrap_line_seven:nnnnnnn #1#2#3#4#5#6#7 { \exp_stop_f: }
\cs_new:Npn \@@_wrap_line_end:NnnnnnnnN #1#2#3#4#5#6#7#8#9
{
#2 #3 #4 #5 #6 #7 #8
Expand Down
1 change: 1 addition & 0 deletions l3kernel/testfiles/m3expl001.luatex.tlg
Expand Up @@ -2836,6 +2836,7 @@ Defining \__iow_wrap_next:nw on line ...
Defining \__iow_wrap_line:nw on line ...
Defining \__iow_wrap_line_loop:w on line ...
Defining \__iow_wrap_line_aux:Nw on line ...
Defining \__iow_wrap_line_seven:nnnnnnn on line ...
Defining \__iow_wrap_line_end:NnnnnnnnN on line ...
Defining \__iow_wrap_line_end:nw on line ...
Defining \__iow_wrap_end_chunk:w on line ...
Expand Down
1 change: 1 addition & 0 deletions l3kernel/testfiles/m3expl001.ptex.tlg
Expand Up @@ -3129,6 +3129,7 @@ Defining \__iow_wrap_next:nw on line ...
Defining \__iow_wrap_line:nw on line ...
Defining \__iow_wrap_line_loop:w on line ...
Defining \__iow_wrap_line_aux:Nw on line ...
Defining \__iow_wrap_line_seven:nnnnnnn on line ...
Defining \__iow_wrap_line_end:NnnnnnnnN on line ...
Defining \__iow_wrap_line_end:nw on line ...
Defining \__iow_wrap_end_chunk:w on line ...
Expand Down
1 change: 1 addition & 0 deletions l3kernel/testfiles/m3expl001.tlg
Expand Up @@ -3129,6 +3129,7 @@ Defining \__iow_wrap_next:nw on line ...
Defining \__iow_wrap_line:nw on line ...
Defining \__iow_wrap_line_loop:w on line ...
Defining \__iow_wrap_line_aux:Nw on line ...
Defining \__iow_wrap_line_seven:nnnnnnn on line ...
Defining \__iow_wrap_line_end:NnnnnnnnN on line ...
Defining \__iow_wrap_line_end:nw on line ...
Defining \__iow_wrap_end_chunk:w on line ...
Expand Down
1 change: 1 addition & 0 deletions l3kernel/testfiles/m3expl001.uptex.tlg
Expand Up @@ -3129,6 +3129,7 @@ Defining \__iow_wrap_next:nw on line ...
Defining \__iow_wrap_line:nw on line ...
Defining \__iow_wrap_line_loop:w on line ...
Defining \__iow_wrap_line_aux:Nw on line ...
Defining \__iow_wrap_line_seven:nnnnnnn on line ...
Defining \__iow_wrap_line_end:NnnnnnnnN on line ...
Defining \__iow_wrap_line_end:nw on line ...
Defining \__iow_wrap_end_chunk:w on line ...
Expand Down
1 change: 1 addition & 0 deletions l3kernel/testfiles/m3expl001.xetex.tlg
Expand Up @@ -2874,6 +2874,7 @@ Defining \__iow_wrap_next:nw on line ...
Defining \__iow_wrap_line:nw on line ...
Defining \__iow_wrap_line_loop:w on line ...
Defining \__iow_wrap_line_aux:Nw on line ...
Defining \__iow_wrap_line_seven:nnnnnnn on line ...
Defining \__iow_wrap_line_end:NnnnnnnnN on line ...
Defining \__iow_wrap_line_end:nw on line ...
Defining \__iow_wrap_end_chunk:w on line ...
Expand Down
1 change: 1 addition & 0 deletions l3kernel/testfiles/m3expl003.luatex.tlg
Expand Up @@ -2836,6 +2836,7 @@ Defining \__iow_wrap_next:nw on line ...
Defining \__iow_wrap_line:nw on line ...
Defining \__iow_wrap_line_loop:w on line ...
Defining \__iow_wrap_line_aux:Nw on line ...
Defining \__iow_wrap_line_seven:nnnnnnn on line ...
Defining \__iow_wrap_line_end:NnnnnnnnN on line ...
Defining \__iow_wrap_line_end:nw on line ...
Defining \__iow_wrap_end_chunk:w on line ...
Expand Down
1 change: 1 addition & 0 deletions l3kernel/testfiles/m3expl003.ptex.tlg
Expand Up @@ -3129,6 +3129,7 @@ Defining \__iow_wrap_next:nw on line ...
Defining \__iow_wrap_line:nw on line ...
Defining \__iow_wrap_line_loop:w on line ...
Defining \__iow_wrap_line_aux:Nw on line ...
Defining \__iow_wrap_line_seven:nnnnnnn on line ...
Defining \__iow_wrap_line_end:NnnnnnnnN on line ...
Defining \__iow_wrap_line_end:nw on line ...
Defining \__iow_wrap_end_chunk:w on line ...
Expand Down
1 change: 1 addition & 0 deletions l3kernel/testfiles/m3expl003.tlg
Expand Up @@ -3129,6 +3129,7 @@ Defining \__iow_wrap_next:nw on line ...
Defining \__iow_wrap_line:nw on line ...
Defining \__iow_wrap_line_loop:w on line ...
Defining \__iow_wrap_line_aux:Nw on line ...
Defining \__iow_wrap_line_seven:nnnnnnn on line ...
Defining \__iow_wrap_line_end:NnnnnnnnN on line ...
Defining \__iow_wrap_line_end:nw on line ...
Defining \__iow_wrap_end_chunk:w on line ...
Expand Down
1 change: 1 addition & 0 deletions l3kernel/testfiles/m3expl003.uptex.tlg
Expand Up @@ -3129,6 +3129,7 @@ Defining \__iow_wrap_next:nw on line ...
Defining \__iow_wrap_line:nw on line ...
Defining \__iow_wrap_line_loop:w on line ...
Defining \__iow_wrap_line_aux:Nw on line ...
Defining \__iow_wrap_line_seven:nnnnnnn on line ...
Defining \__iow_wrap_line_end:NnnnnnnnN on line ...
Defining \__iow_wrap_line_end:nw on line ...
Defining \__iow_wrap_end_chunk:w on line ...
Expand Down
1 change: 1 addition & 0 deletions l3kernel/testfiles/m3expl003.xetex.tlg
Expand Up @@ -2874,6 +2874,7 @@ Defining \__iow_wrap_next:nw on line ...
Defining \__iow_wrap_line:nw on line ...
Defining \__iow_wrap_line_loop:w on line ...
Defining \__iow_wrap_line_aux:Nw on line ...
Defining \__iow_wrap_line_seven:nnnnnnn on line ...
Defining \__iow_wrap_line_end:NnnnnnnnN on line ...
Defining \__iow_wrap_line_end:nw on line ...
Defining \__iow_wrap_end_chunk:w on line ...
Expand Down
14 changes: 14 additions & 0 deletions l3kernel/testfiles/m3iow001.luatex.tlg
Expand Up @@ -67,3 +67,17 @@ TEST 9: Close iow
test
)
============================================================
============================================================
TEST 10: Wrapping text
============================================================
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhii
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiij
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijj
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjk
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkk
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkl
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkll
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkllm
abcdefghijklmnopqrstuvwxyzABCDE
AABBCCDDEEFFGGHHIIJJKKLFGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkllmm
============================================================
76 changes: 76 additions & 0 deletions l3kernel/testfiles/m3iow001.lvt
Expand Up @@ -96,4 +96,80 @@
\file_input:n { testwrite.log }
}

\TEST { Wrapping~text }
{
\iow_wrap:nnnN
{
abcdefghijklmnopqrstuvwxyzABCDE~
FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhii
}
{ AABBCCDDEEFFGGHHIIJJKKL }
{ }
\iow_term:n
\iow_wrap:nnnN
{
abcdefghijklmnopqrstuvwxyzABCDE~
FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiij
}
{ AABBCCDDEEFFGGHHIIJJKKL }
{ }
\iow_term:n
\iow_wrap:nnnN
{
abcdefghijklmnopqrstuvwxyzABCDE~
FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijj
}
{ AABBCCDDEEFFGGHHIIJJKKL }
{ }
\iow_term:n
\iow_wrap:nnnN
{
abcdefghijklmnopqrstuvwxyzABCDE~
FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjk
}
{ AABBCCDDEEFFGGHHIIJJKKL }
{ }
\iow_term:n
\iow_wrap:nnnN
{
abcdefghijklmnopqrstuvwxyzABCDE~
FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkk
}
{ AABBCCDDEEFFGGHHIIJJKKL }
{ }
\iow_term:n
\iow_wrap:nnnN
{
abcdefghijklmnopqrstuvwxyzABCDE~
FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkl
}
{ AABBCCDDEEFFGGHHIIJJKKL }
{ }
\iow_term:n
\iow_wrap:nnnN
{
abcdefghijklmnopqrstuvwxyzABCDE~
FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkll
}
{ AABBCCDDEEFFGGHHIIJJKKL }
{ }
\iow_term:n
\iow_wrap:nnnN
{
abcdefghijklmnopqrstuvwxyzABCDE~
FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkllm
}
{ AABBCCDDEEFFGGHHIIJJKKL }
{ }
\iow_term:n
\iow_wrap:nnnN
{
abcdefghijklmnopqrstuvwxyzABCDE~
FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkllmm
}
{ AABBCCDDEEFFGGHHIIJJKKL }
{ }
\iow_term:n
}

\END
14 changes: 14 additions & 0 deletions l3kernel/testfiles/m3iow001.tlg
Expand Up @@ -67,3 +67,17 @@ TEST 9: Close iow
test
)
============================================================
============================================================
TEST 10: Wrapping text
============================================================
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhii
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiij
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijj
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjk
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkk
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkl
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkll
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkllm
abcdefghijklmnopqrstuvwxyzABCDE
AABBCCDDEEFFGGHHIIJJKKLFGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkllmm
============================================================
14 changes: 14 additions & 0 deletions l3kernel/testfiles/m3iow001.uptex.tlg
Expand Up @@ -67,3 +67,17 @@ TEST 9: Close iow
test
)
============================================================
============================================================
TEST 10: Wrapping text
============================================================
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhii
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiij
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijj
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjk
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkk
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkl
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkll
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkllm
abcdefghijklmnopqrstuvwxyzABCDE
AABBCCDDEEFFGGHHIIJJKKLFGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkllmm
============================================================
14 changes: 14 additions & 0 deletions l3kernel/testfiles/m3iow001.xetex.tlg
Expand Up @@ -67,3 +67,17 @@ TEST 9: Close iow
test
)
============================================================
============================================================
TEST 10: Wrapping text
============================================================
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhii
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiij
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijj
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjk
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkk
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkl
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkll
abcdefghijklmnopqrstuvwxyzABCDE FGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkllm
abcdefghijklmnopqrstuvwxyzABCDE
AABBCCDDEEFFGGHHIIJJKKLFGHJIKLMNOPQRZTUVWXYZaabbccddeeffgghhiijjkkllmm
============================================================

0 comments on commit eff6093

Please sign in to comment.