diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx | 250 |
1 files changed, 125 insertions, 125 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx index 90eb26afbbc..39b6a43d283 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2024-01-04} +% \date{Released 2024-01-22} % % \maketitle % @@ -343,13 +343,13 @@ % \end{macrocode} % \end{variable} % -% \begin{variable}{@@_byte, @@_error} +% \begin{variable}{\l_@@_byte_flag, \l_@@_error_flag} % Conversions from one \meta{encoding}/\meta{escaping} pair to another % are done within \texttt{e}-expanding assignments. Errors are % signalled by raising the relevant flag. % \begin{macrocode} -\flag_new:n { @@_byte } -\flag_new:n { @@_error } +\flag_new:N \l_@@_byte_flag +\flag_new:N \l_@@_error_flag % \end{macrocode} % \end{variable} % @@ -468,7 +468,7 @@ % an empty result for the input $-1$. % \begin{macrocode} \group_begin: - \__kernel_tl_set:Ne \l_@@_internal_tl { \tl_to_str:n { 0123456789ABCDEF } } + \__kernel_tl_set:Nx \l_@@_internal_tl { \tl_to_str:n { 0123456789ABCDEF } } \tl_map_inline:Nn \l_@@_internal_tl { \tl_map_inline:Nn \l_@@_internal_tl @@ -554,7 +554,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_convert_gmap:N #1 { - \__kernel_tl_gset:Ne \g_@@_result_tl + \__kernel_tl_gset:Nx \g_@@_result_tl { \exp_after:wN \@@_convert_gmap_loop:NN \exp_after:wN #1 @@ -579,7 +579,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_convert_gmap_internal:N #1 { - \__kernel_tl_gset:Ne \g_@@_result_tl + \__kernel_tl_gset:Nx \g_@@_result_tl { \exp_after:wN \@@_convert_gmap_internal_loop:Nww \exp_after:wN #1 @@ -599,8 +599,8 @@ % % \subsubsection{Error-reporting during conversion} % -% \begin{macro}{\@@_if_flag_error:nne} -% \begin{macro}{\@@_if_flag_no_error:nne} +% \begin{macro}{\@@_if_flag_error:Nne} +% \begin{macro}{\@@_if_flag_no_error:Nne} % When converting using the function \cs{str_set_convert:Nnnn}, errors % should be reported to the user after each step in the % conversion. Errors are signalled by raising some flag (typically @@ -608,30 +608,30 @@ % give the user an error, otherwise remove the arguments. On the other % hand, in the conditional functions \cs{str_set_convert:NnnnTF}, % errors should be suppressed. This is done by changing -% \cs{@@_if_flag_error:nne} into \cs{@@_if_flag_no_error:nne} +% \cs{@@_if_flag_error:Nne} into \cs{@@_if_flag_no_error:Nne} % locally. % \begin{macrocode} -\cs_new_protected:Npn \@@_if_flag_error:nne #1 +\cs_new_protected:Npn \@@_if_flag_error:Nne #1 { - \flag_if_raised:nTF {#1} + \flag_if_raised:NTF #1 { \msg_error:nne { str } } { \use_none:nn } } -\cs_new_protected:Npn \@@_if_flag_no_error:nne #1#2#3 - { \flag_if_raised:nT {#1} { \bool_gset_true:N \g_@@_error_bool } } +\cs_new_protected:Npn \@@_if_flag_no_error:Nne #1#2#3 + { \flag_if_raised:NT #1 { \bool_gset_true:N \g_@@_error_bool } } % \end{macrocode} % \end{macro} % \end{macro} % -% \begin{macro}[rEXP]{\@@_if_flag_times:nT} +% \begin{macro}[rEXP]{\@@_if_flag_times:NT} % At the end of each conversion step, we raise all relevant errors as % one error message, built on the fly. The height of each flag % indicates how many times a given error was encountered. This % function prints |#2| followed by the number of occurrences of an % error if it occurred, nothing otherwise. % \begin{macrocode} -\cs_new:Npn \@@_if_flag_times:nT #1#2 - { \flag_if_raised:nT {#1} { #2~(x \flag_height:n {#1} ) } } +\cs_new:Npn \@@_if_flag_times:NT #1#2 + { \flag_if_raised:NT #1 { #2~(x \flag_height:N #1 ) } } % \end{macrocode} % \end{macro} % @@ -675,7 +675,7 @@ % unescape and decode; encode and escape; exit the group and store the % result in the user's variable. The various conversion functions all % act on \cs{g_@@_result_tl}. Errors are silenced for the conditional -% functions by redefining \cs{@@_if_flag_error:nne} locally. +% functions by redefining \cs{@@_if_flag_error:Nne} locally. % \begin{macrocode} \cs_new_protected:Npn \str_set_convert:Nnnn { \@@_convert:nNNnnn { } \tl_set_eq:NN } @@ -686,7 +686,7 @@ { \bool_gset_false:N \g_@@_error_bool \@@_convert:nNNnnn - { \cs_set_eq:NN \@@_if_flag_error:nne \@@_if_flag_no_error:nne } + { \cs_set_eq:NN \@@_if_flag_error:Nne \@@_if_flag_no_error:Nne } \tl_set_eq:NN #1 {#2} {#3} {#4} \bool_if:NTF \g_@@_error_bool \prg_return_false: \prg_return_true: } @@ -695,7 +695,7 @@ { \bool_gset_false:N \g_@@_error_bool \@@_convert:nNNnnn - { \cs_set_eq:NN \@@_if_flag_error:nne \@@_if_flag_no_error:nne } + { \cs_set_eq:NN \@@_if_flag_error:Nne \@@_if_flag_no_error:Nne } \tl_gset_eq:NN #1 {#2} {#3} {#4} \bool_if:NTF \g_@@_error_bool \prg_return_false: \prg_return_true: } @@ -703,7 +703,7 @@ { \group_begin: #1 - \__kernel_tl_gset:Ne \g_@@_result_tl { \__kernel_str_to_other_fast:n {#4} } + \__kernel_tl_gset:Nx \g_@@_result_tl { \__kernel_str_to_other_fast:n {#4} } \exp_after:wN \@@_convert:wwwnn \tl_to_str:n {#5} /// \s_@@_stop { decode } { unescape } @@ -714,7 +714,7 @@ { encode } { escape } \use_ii_i:nn \@@_convert_encode_: - \__kernel_tl_gset:Ne \g_@@_result_tl + \__kernel_tl_gset:Nx \g_@@_result_tl { \tl_to_str:V \g_@@_result_tl } \group_end: #2 #3 \g_@@_result_tl @@ -893,7 +893,7 @@ % \begin{macro}[rEXP]{\@@_filter_bytes_aux:N} % In the case of 8-bit engines, every character is a byte. For % Unicode-aware engines, test the character code; non-bytes cause us -% to raise the flag \texttt{@@_byte}. Spaces have already been given +% to raise the flag \cs{l_@@_byte_flag}. Spaces have already been given % the correct category code when this function is called. % \begin{macrocode} \bool_lazy_any:nTF @@ -914,7 +914,7 @@ \if_int_compare:w `#1 < 256 \exp_stop_f: #1 \else: - \flag_raise:n { @@_byte } + \flag_raise:N \l_@@_byte_flag \fi: \@@_filter_bytes_aux:N } @@ -937,10 +937,10 @@ { \cs_new_protected:Npn \@@_convert_unescape_: { - \flag_clear:n { @@_byte } - \__kernel_tl_gset:Ne \g_@@_result_tl + \flag_clear:N \l_@@_byte_flag + \__kernel_tl_gset:Nx \g_@@_result_tl { \exp_args:No \@@_filter_bytes:n \g_@@_result_tl } - \@@_if_flag_error:nne { @@_byte } { non-byte } { bytes } + \@@_if_flag_error:Nne \l_@@_byte_flag { non-byte } { bytes } } } { \cs_new_protected:Npn \@@_convert_unescape_: { } } @@ -997,15 +997,15 @@ { \cs_new_protected:Npn \@@_convert_encode_: { - \flag_clear:n { @@_error } + \flag_clear:N \l_@@_error_flag \@@_convert_gmap_internal:N \@@_encode_native_char:n - \@@_if_flag_error:nne { @@_error } + \@@_if_flag_error:Nne \l_@@_error_flag { native-overflow } { } } \cs_new:Npn \@@_encode_native_char:n #1 { \if_int_compare:w #1 > \c_@@_max_byte_int - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_error_flag ? \else: \char_generate:nn {#1} {12} @@ -1034,7 +1034,7 @@ \cs_new_protected:Npn \@@_convert_decode_clist: { \clist_gset:No \g_@@_result_tl \g_@@_result_tl - \__kernel_tl_gset:Ne \g_@@_result_tl + \__kernel_tl_gset:Nx \g_@@_result_tl { \exp_args:No \clist_map_function:nN \g_@@_result_tl \@@_decode_clist_char:n @@ -1057,7 +1057,7 @@ \cs_new_protected:Npn \@@_convert_encode_clist: { \@@_convert_gmap_internal:N \@@_encode_clist_char:n - \__kernel_tl_gset:Ne \g_@@_result_tl { \tl_tail:N \g_@@_result_tl } + \__kernel_tl_gset:Nx \g_@@_result_tl { \tl_tail:N \g_@@_result_tl } } \cs_new:Npn \@@_encode_clist_char:n #1 { , #1 } % \end{macrocode} @@ -1186,9 +1186,9 @@ \exp_not:N \@@_decode_eight_bit_aux:Nn \exp_not:c { g_@@_decode_#1_intarray } } - \flag_clear:n { @@_error } + \flag_clear:N \l_@@_error_flag \@@_convert_gmap:N \@@_tmp:w - \@@_if_flag_error:nne { @@_error } { decode-8-bit } {#1} + \@@_if_flag_error:Nne \l_@@_error_flag { decode-8-bit } {#1} } \cs_new:Npn \@@_decode_eight_bit_aux:Nn #1#2 { @@ -1200,7 +1200,7 @@ \cs_new:Npn \@@_decode_eight_bit_aux:n #1 { \if_int_compare:w #1 < \c_zero_int - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_error_flag \int_value:w \c_@@_replacement_char_int \else: #1 @@ -1230,9 +1230,9 @@ \exp_not:c { g_@@_encode_#1_intarray } \exp_not:c { g_@@_decode_#1_intarray } } - \flag_clear:n { @@_error } + \flag_clear:N \l_@@_error_flag \@@_convert_gmap_internal:N \@@_tmp:w - \@@_if_flag_error:nne { @@_error } { encode-8-bit } {#1} + \@@_if_flag_error:Nne \l_@@_error_flag { encode-8-bit } {#1} } \cs_new:Npn \@@_encode_eight_bit_aux:NNn #1#2#3 { @@ -1248,7 +1248,7 @@ { \int_compare:nNnTF { \intarray_item:Nn #3 { 1 + #1 } } = {#2} { \@@_output_byte:n {#1} } - { \flag_raise:n { @@_error } } + { \flag_raise:N \l_@@_error_flag } } % \end{macrocode} % \end{macro} @@ -1349,9 +1349,9 @@ \cs_new_protected:Npn \@@_convert_unescape_hex: { \group_begin: - \flag_clear:n { @@_error } + \flag_clear:N \l_@@_error_flag \int_set:Nn \tex_escapechar:D { 92 } - \__kernel_tl_gset:Ne \g_@@_result_tl + \__kernel_tl_gset:Nx \g_@@_result_tl { \@@_output_byte:w " \exp_last_unbraced:Nf \@@_unescape_hex_auxi:N @@ -1360,7 +1360,7 @@ \prg_break_point: \@@_output_end: } - \@@_if_flag_error:nne { @@_error } { unescape-hex } { } + \@@_if_flag_error:Nne \l_@@_error_flag { unescape-hex } { } \group_end: } \cs_new:Npn \@@_unescape_hex_auxi:N #1 @@ -1369,7 +1369,7 @@ \@@_hexadecimal_use:NTF #1 { \@@_unescape_hex_auxii:N } { - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_error_flag \@@_unescape_hex_auxi:N } } @@ -1382,7 +1382,7 @@ \@@_output_byte:w " \@@_unescape_hex_auxi:N } { - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_error_flag \@@_unescape_hex_auxii:N } } @@ -1427,17 +1427,17 @@ \cs_new_protected:cpn { @@_convert_unescape_#2: } { \group_begin: - \flag_clear:n { @@_byte } - \flag_clear:n { @@_error } + \flag_clear:N \l_@@_byte_flag + \flag_clear:N \l_@@_error_flag \int_set:Nn \tex_escapechar:D { 92 } - \__kernel_tl_gset:Ne \g_@@_result_tl + \__kernel_tl_gset:Nx \g_@@_result_tl { \exp_after:wN #3 \g_@@_result_tl #1 ? { ? \prg_break: } \prg_break_point: } - \@@_if_flag_error:nne { @@_byte } { non-byte } { #2 } - \@@_if_flag_error:nne { @@_error } { unescape-#2 } { } + \@@_if_flag_error:Nne \l_@@_byte_flag { non-byte } { #2 } + \@@_if_flag_error:Nne \l_@@_error_flag { unescape-#2 } { } \group_end: } \cs_new:Npn #3 ##1#1##2##3 @@ -1450,12 +1450,12 @@ \@@_hexadecimal_use:NTF ##3 { } { - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_error_flag * 0 + `#1 \use_i:nn } } { - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_error_flag 0 + `#1 \use_i:nn } \@@_output_end: @@ -1513,23 +1513,23 @@ \cs_new_protected:Npn \@@_convert_unescape_string: { \group_begin: - \flag_clear:n { @@_byte } - \flag_clear:n { @@_error } + \flag_clear:N \l_@@_byte_flag + \flag_clear:N \l_@@_error_flag \int_set:Nn \tex_escapechar:D { 92 } - \__kernel_tl_gset:Ne \g_@@_result_tl + \__kernel_tl_gset:Nx \g_@@_result_tl { \exp_after:wN \@@_unescape_string_newlines:wN \g_@@_result_tl \prg_break: ^^M ? \prg_break_point: } - \__kernel_tl_gset:Ne \g_@@_result_tl + \__kernel_tl_gset:Nx \g_@@_result_tl { \exp_after:wN \@@_unescape_string_loop:wNNN \g_@@_result_tl #1 ?? { ? \prg_break: } \prg_break_point: } - \@@_if_flag_error:nne { @@_byte } { non-byte } { string } - \@@_if_flag_error:nne { @@_error } { unescape-string } { } + \@@_if_flag_error:Nne \l_@@_byte_flag { non-byte } { string } + \@@_if_flag_error:Nne \l_@@_error_flag { unescape-string } { } \group_end: } } @@ -1569,7 +1569,7 @@ { ^^J } { 0 - 1 } } { - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_error_flag 0 - 1 \use_i:nn } } @@ -1825,8 +1825,8 @@ % } % When decoding a string that is purportedly in the \textsc{utf-8} % encoding, four different errors can occur, signalled by a specific -% flag for each (we define those flags using \cs{flag_clear_new:n} -% rather than \cs{flag_new:n}, because they are shared with other +% flag for each (we define those flags using \cs{flag_clear_new:N} +% rather than \cs{flag_new:N}, because they are shared with other % encoding definition files). % \begin{itemize} % \item \enquote{Missing continuation byte}: a leading byte is not @@ -1846,19 +1846,19 @@ % first remind the user what a correct \textsc{utf-8} string should % look like, then add error-specific information. % \begin{macrocode} -\flag_clear_new:n { @@_missing } -\flag_clear_new:n { @@_extra } -\flag_clear_new:n { @@_overlong } -\flag_clear_new:n { @@_overflow } +\flag_clear_new:N \l_@@_missing_flag +\flag_clear_new:N \l_@@_extra_flag +\flag_clear_new:N \l_@@_overlong_flag +\flag_clear_new:N \l_@@_overflow_flag \msg_new:nnnn { str } { utf8-decode } { Invalid~UTF-8~string: \exp_last_unbraced:Nf \use_none:n { - \@@_if_flag_times:nT { @@_missing } { ,~missing~continuation~byte } - \@@_if_flag_times:nT { @@_extra } { ,~extra~continuation~byte } - \@@_if_flag_times:nT { @@_overlong } { ,~overlong~form } - \@@_if_flag_times:nT { @@_overflow } { ,~code~point~too~large } + \@@_if_flag_times:NT \l_@@_missing_flag { ,~missing~continuation~byte } + \@@_if_flag_times:NT \l_@@_extra_flag { ,~extra~continuation~byte } + \@@_if_flag_times:NT \l_@@_overlong_flag { ,~overlong~form } + \@@_if_flag_times:NT \l_@@_overflow_flag { ,~code~point~too~large } } . } @@ -1873,25 +1873,25 @@ Code~point~ <~1114112:~11110xxx~10xxxxxx~10xxxxxx~10xxxxxx \\ } Bytes~of~the~form~10xxxxxx~are~called~continuation~bytes. - \flag_if_raised:nT { @@_missing } + \flag_if_raised:NT \l_@@_missing_flag { \\\\ A~leading~byte~(in~the~range~[192,255])~was~not~followed~by~ the~appropriate~number~of~continuation~bytes. } - \flag_if_raised:nT { @@_extra } + \flag_if_raised:NT \l_@@_extra_flag { \\\\ LaTeX~came~across~a~continuation~byte~when~it~was~not~expected. } - \flag_if_raised:nT { @@_overlong } + \flag_if_raised:NT \l_@@_overlong_flag { \\\\ Every~Unicode~code~point~must~be~expressed~in~the~shortest~ possible~form.~For~instance,~'0xC0'~'0x83'~is~not~a~valid~ representation~for~the~code~point~3. } - \flag_if_raised:nT { @@_overflow } + \flag_if_raised:NT \l_@@_overflow_flag { \\\\ Unicode~limits~code~points~to~the~range~[0,1114111]. @@ -1970,18 +1970,18 @@ % \begin{macrocode} \cs_new_protected:cpn { @@_convert_decode_utf8: } { - \flag_clear:n { @@_error } - \flag_clear:n { @@_missing } - \flag_clear:n { @@_extra } - \flag_clear:n { @@_overlong } - \flag_clear:n { @@_overflow } - \__kernel_tl_gset:Ne \g_@@_result_tl + \flag_clear:N \l_@@_error_flag + \flag_clear:N \l_@@_missing_flag + \flag_clear:N \l_@@_extra_flag + \flag_clear:N \l_@@_overlong_flag + \flag_clear:N \l_@@_overflow_flag + \__kernel_tl_gset:Nx \g_@@_result_tl { \exp_after:wN \@@_decode_utf_viii_start:N \g_@@_result_tl { \prg_break: \@@_decode_utf_viii_end: } \prg_break_point: } - \@@_if_flag_error:nne { @@_error } { utf8-decode } { } + \@@_if_flag_error:Nne \l_@@_error_flag { utf8-decode } { } } \cs_new:Npn \@@_decode_utf_viii_start:N #1 { @@ -1991,8 +1991,8 @@ \if_int_compare:w `#1 < "80 \exp_stop_f: \int_value:w `#1 \else: - \flag_raise:n { @@_extra } - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_extra_flag + \flag_raise:N \l_@@_error_flag \int_use:N \c_@@_replacement_char_int \fi: \else: @@ -2015,8 +2015,8 @@ \int_value:w \int_eval:n { #1 * "40 + `#3 - "80 } \exp_after:wN \else: \s_@@ - \flag_raise:n { @@_missing } - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_missing_flag + \flag_raise:N \l_@@_error_flag \int_use:N \c_@@_replacement_char_int \fi: \s_@@ @@ -2029,8 +2029,8 @@ \if_int_compare:w #1 < #4 \exp_stop_f: \s_@@ \if_int_compare:w #1 < #3 \exp_stop_f: - \flag_raise:n { @@_overlong } - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_overlong_flag + \flag_raise:N \l_@@_error_flag \int_use:N \c_@@_replacement_char_int \else: #1 @@ -2049,15 +2049,15 @@ \cs_new:Npn \@@_decode_utf_viii_overflow:w #1 \fi: #2 \fi: { \fi: \fi: - \flag_raise:n { @@_overflow } - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_overflow_flag + \flag_raise:N \l_@@_error_flag \int_use:N \c_@@_replacement_char_int } \cs_new:Npn \@@_decode_utf_viii_end: { \s_@@ - \flag_raise:n { @@_missing } - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_missing_flag + \flag_raise:N \l_@@_error_flag \int_use:N \c_@@_replacement_char_int \s_@@ \prg_break: } @@ -2119,10 +2119,10 @@ { \@@_encode_utf_xvi_aux:N \@@_output_byte_pair_le:n } \cs_new_protected:Npn \@@_encode_utf_xvi_aux:N #1 { - \flag_clear:n { @@_error } + \flag_clear:N \l_@@_error_flag \cs_set_eq:NN \@@_tmp:w #1 \@@_convert_gmap_internal:N \@@_encode_utf_xvi_char:n - \@@_if_flag_error:nne { @@_error } { utf16-encode } { } + \@@_if_flag_error:Nne \l_@@_error_flag { utf16-encode } { } } \cs_new:Npn \@@_encode_utf_xvi_char:n #1 { @@ -2131,7 +2131,7 @@ \else: \if_int_compare:w #1 < "10000 \exp_stop_f: \if_int_compare:w #1 < "E000 \exp_stop_f: - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_error_flag \@@_tmp:w { \c_@@_replacement_char_int } \else: \@@_tmp:w {#1} @@ -2162,9 +2162,9 @@ % an unexpected trail surrogate, and a string containing an odd number % of bytes. % \begin{macrocode} - \flag_clear_new:n { @@_missing } - \flag_clear_new:n { @@_extra } - \flag_clear_new:n { @@_end } + \flag_clear_new:N \l_@@_missing_flag + \flag_clear_new:N \l_@@_extra_flag + \flag_clear_new:N \l_@@_end_flag \msg_new:nnnn { str } { utf16-encode } { Unicode~string~cannot~be~expressed~in~UTF-16:~surrogate. } { @@ -2177,9 +2177,9 @@ Invalid~UTF-16~string: \exp_last_unbraced:Nf \use_none:n { - \@@_if_flag_times:nT { @@_missing } { ,~missing~trail~surrogate } - \@@_if_flag_times:nT { @@_extra } { ,~extra~trail~surrogate } - \@@_if_flag_times:nT { @@_end } { ,~odd~number~of~bytes } + \@@_if_flag_times:NT \l_@@_missing_flag { ,~missing~trail~surrogate } + \@@_if_flag_times:NT \l_@@_extra_flag { ,~extra~trail~surrogate } + \@@_if_flag_times:NT \l_@@_end_flag { ,~odd~number~of~bytes } } . } @@ -2196,17 +2196,17 @@ } Lead~surrogates~are~pairs~of~bytes~in~the~range~[0xD800,~0xDBFF],~ and~trail~surrogates~are~in~the~range~[0xDC00,~0xDFFF]. - \flag_if_raised:nT { @@_missing } + \flag_if_raised:NT \l_@@_missing_flag { \\\\ A~lead~surrogate~was~not~followed~by~a~trail~surrogate. } - \flag_if_raised:nT { @@_extra } + \flag_if_raised:NT \l_@@_extra_flag { \\\\ LaTeX~came~across~a~trail~surrogate~when~it~was~not~expected. } - \flag_if_raised:nT { @@_end } + \flag_if_raised:NT \l_@@_end_flag { \\\\ The~string~contained~an~odd~number~of~bytes.~This~is~invalid:~ @@ -2260,18 +2260,18 @@ } \cs_new_protected:Npn \@@_decode_utf_xvi:Nw #1#2 \s_@@_stop { - \flag_clear:n { @@_error } - \flag_clear:n { @@_missing } - \flag_clear:n { @@_extra } - \flag_clear:n { @@_end } + \flag_clear:N \l_@@_error_flag + \flag_clear:N \l_@@_missing_flag + \flag_clear:N \l_@@_extra_flag + \flag_clear:N \l_@@_end_flag \cs_set:Npn \@@_tmp:w ##1 ##2 { ` ## #1 } - \__kernel_tl_gset:Ne \g_@@_result_tl + \__kernel_tl_gset:Nx \g_@@_result_tl { \exp_after:wN \@@_decode_utf_xvi_pair:NN #2 \q_@@_nil \q_@@_nil \prg_break_point: } - \@@_if_flag_error:nne { @@_error } { utf16-decode } { } + \@@_if_flag_error:Nne \l_@@_error_flag { utf16-decode } { } } % \end{macrocode} % \end{macro} @@ -2377,8 +2377,8 @@ { \@@_decode_utf_xvi_error:nNN { extra } #1#2 } \cs_new:Npn \@@_decode_utf_xvi_error:nNN #1#2#3 { - \flag_raise:n { @@_error } - \flag_raise:n { str_#1 } + \flag_raise:N \l_@@_error_flag + \flag_raise:c { l_@@_#1_flag } #2 #3 \s_@@ \int_use:N \c_@@_replacement_char_int \s_@@ } @@ -2463,29 +2463,29 @@ % happens if the encoding was in fact not \textsc{utf-32}, because % most arbitrary strings are not valid in \textsc{utf-32}. % \begin{macrocode} - \flag_clear_new:n { @@_overflow } - \flag_clear_new:n { @@_end } + \flag_clear_new:N \l_@@_overflow_flag + \flag_clear_new:N \l_@@_end_flag \msg_new:nnnn { str } { utf32-decode } { Invalid~UTF-32~string: \exp_last_unbraced:Nf \use_none:n { - \@@_if_flag_times:nT { @@_overflow } { ,~code~point~too~large } - \@@_if_flag_times:nT { @@_end } { ,~truncated~string } + \@@_if_flag_times:NT \l_@@_overflow_flag { ,~code~point~too~large } + \@@_if_flag_times:NT \l_@@_end_flag { ,~truncated~string } } . } { In~the~UTF-32~encoding,~every~Unicode~character~ (in~the~range~[U+0000,~U+10FFFF])~is~encoded~as~4~bytes. - \flag_if_raised:nT { @@_overflow } + \flag_if_raised:NT \l_@@_overflow_flag { \\\\ LaTeX~came~across~a~code~point~larger~than~1114111,~ the~maximum~code~point~defined~by~Unicode.~ Perhaps~the~string~was~not~encoded~in~the~UTF-32~encoding? } - \flag_if_raised:nT { @@_end } + \flag_if_raised:NT \l_@@_end_flag { \\\\ The~length~of~the~string~is~not~a~multiple~of~4.~ @@ -2549,17 +2549,17 @@ } \cs_new_protected:Npn \@@_decode_utf_xxxii:Nw #1#2 \s_@@_stop { - \flag_clear:n { @@_overflow } - \flag_clear:n { @@_end } - \flag_clear:n { @@_error } + \flag_clear:N \l_@@_overflow_flag + \flag_clear:N \l_@@_end_flag + \flag_clear:N \l_@@_error_flag \cs_set:Npn \@@_tmp:w ##1 ##2 { ` ## #1 } - \__kernel_tl_gset:Ne \g_@@_result_tl + \__kernel_tl_gset:Nx \g_@@_result_tl { \exp_after:wN \@@_decode_utf_xxxii_loop:NNNN #2 \s_@@_stop \s_@@_stop \s_@@_stop \s_@@_stop \prg_break_point: } - \@@_if_flag_error:nne { @@_error } { utf32-decode } { } + \@@_if_flag_error:Nne \l_@@_error_flag { utf32-decode } { } } \cs_new:Npn \@@_decode_utf_xxxii_loop:NNNN #1#2#3#4 { @@ -2568,13 +2568,13 @@ \fi: #1#2#3#4 \s_@@ \if_int_compare:w \@@_tmp:w #1#4 > \c_zero_int - \flag_raise:n { @@_overflow } - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_overflow_flag + \flag_raise:N \l_@@_error_flag \int_use:N \c_@@_replacement_char_int \else: \if_int_compare:w \@@_tmp:w #2#3 > 16 \exp_stop_f: - \flag_raise:n { @@_overflow } - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_overflow_flag + \flag_raise:N \l_@@_error_flag \int_use:N \c_@@_replacement_char_int \else: \int_eval:n @@ -2588,8 +2588,8 @@ { \tl_if_empty:nF {#1} { - \flag_raise:n { @@_end } - \flag_raise:n { @@_error } + \flag_raise:N \l_@@_end_flag + \flag_raise:N \l_@@_error_flag #1 \s_@@ \int_use:N \c_@@_replacement_char_int \s_@@ } |