Skip to content

Commit

Permalink
Preserve catcode in case changing
Browse files Browse the repository at this point in the history
As far as possible: most accent marks are
catcode-11 anyway as-standard.
  • Loading branch information
josephwright committed Dec 3, 2019
1 parent e523db1 commit 76e8411
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 17 deletions.
32 changes: 16 additions & 16 deletions l3kernel/l3text.dtx
Expand Up @@ -1523,8 +1523,8 @@
}
{
\char_generate:nn { "0069 } { \@@_char_catcode:N #4 }
\char_generate:nn { "0307 } { \char_value_catcode:n { "0307 } }
\char_generate:nn {#1} { \char_value_catcode:n {#1} }
\char_generate:nn { "0307 } { \@@_char_catcode:N #4 }
\char_generate:nn {#1} { \@@_char_catcode:N #4 }
\@@_change_case_loop:nnw {#2} {#3}
}
}
Expand Down Expand Up @@ -1561,7 +1561,7 @@
{ \int_compare_p:nNn { `#3 } = { "0303 } }
}
}
{ \char_generate:nn { "0307 } { \char_value_catcode:n { "0307 } } }
{ \char_generate:nn { "0307 } { \@@_char_catcode:N #3 } }
\@@_change_case_loop:nnw {#1} {#2} #3
}
}
Expand Down Expand Up @@ -1672,9 +1672,9 @@
% \end{macro}
%
% \begin{macro}[rEXP]{\@@_change_case_lower_tr:nnnN}
% \begin{macro}[rEXP]{\@@_change_case_lower_tr:nnw}
% \begin{macro}[rEXP]{\@@_change_case_lower_tr_aux:nnN}
% \begin{macro}[rEXP]{\@@_change_case_lower_tr_aux:nnnNN}
% \begin{macro}[rEXP]{\@@_change_case_lower_tr:nnNw}
% \begin{macro}[rEXP]{\@@_change_case_lower_tr:nnN}
% \begin{macro}[rEXP]{\@@_change_case_lower_tr:nnnNN}
% The Turkic languages need special treatment for dotted-i and dotless-i.
% The lower casing rule can be expressed in terms of searching first for
% either a dotless-I or a dotted-I. In the latter case the mapping is
Expand All @@ -1687,7 +1687,7 @@
\cs_new:Npn \@@_change_case_lower_tr:nnnN #1#2#3#4
{
\int_compare:nNnTF { `#4 } = { "0049 }
{ \@@_change_case_lower_tr:nnw {#1} {#3} }
{ \@@_change_case_lower_tr:nnNw {#1} {#3} #4 }
{
\int_compare:nNnTF { `#4 } = { "0130 }
{
Expand All @@ -1703,27 +1703,27 @@
% combination is found both the dotless-I and the dot-above char have to
% be removed from the input.
% \begin{macrocode}
\cs_new:Npn \@@_change_case_lower_tr:nnw #1#2#3 \q_recursion_stop
\cs_new:Npn \@@_change_case_lower_tr:nnNw #1#2#3#4 \q_recursion_stop
{
\tl_if_head_is_N_type:nTF {#3}
{ \@@_change_case_lower_tr_aux:nnN }
\tl_if_head_is_N_type:nTF {#4}
{ \@@_change_case_lower_tr:nnN }
{
\char_generate:nn { "0131 } { \char_value_catcode:n { "0049 } }
\char_generate:nn { "0131 } { \@@_char_catcode:N #3 }
\@@_change_case_loop:nnw
}
{#1} {#2} #3 \q_recursion_stop
{#1} {#2} #4 \q_recursion_stop
}
\cs_new:Npn \@@_change_case_lower_tr_aux:nnN #1#2#3
\cs_new:Npn \@@_change_case_lower_tr:nnN #1#2#3
{
\bool_lazy_or:nnTF
{ \token_if_cs_p:N #3 }
{ ! \int_compare_p:nNn { `#3 } = { "0307 } }
{
\char_generate:nn { "0131 } { \char_value_catcode:n { "0130 } }
\char_generate:nn { "0131 } { \@@_char_catcode:N #3 }
\@@_change_case_loop:nnw {#1} {#2} #3
}
{
\char_generate:nn { "0069 } { \char_value_catcode:n { "0130 } }
\char_generate:nn { "0069 } { \@@_char_catcode:N #3 }
\@@_change_case_loop:nnw {#1} {#2}
}
}
Expand Down Expand Up @@ -1779,7 +1779,7 @@
{ \sys_if_engine_xetex_p: }
{
\exp_not:N \char_generate:nn { "0130 }
{ \exp_not:N \char_value_catcode:n { "0069 } }
{ \exp_not:N \@@_char_catcode:N #4 }
}
{
\exp_not:N \exp_not:V
Expand Down
2 changes: 1 addition & 1 deletion l3kernel/l3token.dtx
Expand Up @@ -1877,7 +1877,7 @@
\tl_if_blank:nF {#3}
{
\exp_args:Ne \@@_to_nfd:n
{ \char_generate:nn { `#3 } { \char_value_catcode:n { `#3 } } }
{ \char_generate:nn { `#3 } { \@@_change_case_catcode:N #1 } }
}
}
% \end{macrocode}
Expand Down

0 comments on commit 76e8411

Please sign in to comment.