diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx | 200 |
1 files changed, 100 insertions, 100 deletions
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx index b5ed855d6e8..ddc962cb6fc 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx @@ -7,7 +7,7 @@ % license or (at your option) any later version. The latest version % of this license is in the file % -% http://www.latex-project.org/lppl.txt +% https://www.latex-project.org/lppl.txt % % This file is part of the "l3experimental bundle" (The Work in LPPL) % and all files in that bundle must be distributed together. @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Released 2017/11/14} +% \date{Released 2017/12/05} % % \maketitle % @@ -252,7 +252,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3str-convert}{2017/11/14}{} +\ProvidesExplPackage{l3str-convert}{2017/12/05}{} {L3 Experimental string encoding conversions} % \end{macrocode} % @@ -260,7 +260,7 @@ % % \subsubsection{A function unrelated to strings} % -% \begin{macro}[EXP,aux]{\use_ii_i:nn} +% \begin{macro}[EXP]{\use_ii_i:nn} % A function used to swap its arguments. % \begin{macrocode} \cs_if_exist:NF \use_ii_i:nn @@ -356,8 +356,8 @@ % % \begin{macro}[EXP]{\@@_if_contains_char:NNT, \@@_if_contains_char:NNTF} % \begin{macro}[EXP]{\@@_if_contains_char:nNTF} -% \begin{macro}[EXP,aux]{\@@_if_contains_char_aux:NN} -% \begin{macro}[EXP,aux]{\@@_if_contains_char_true:} +% \begin{macro}[EXP]{\@@_if_contains_char_aux:NN} +% \begin{macro}[EXP]{\@@_if_contains_char_true:} % \begin{syntax} % \cs{@@_if_contains_char:nNTF} \Arg{token list} \meta{char} % \end{syntax} @@ -396,7 +396,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}[aux, rEXP]{\@@_octal_use:NTF} +% \begin{macro}[rEXP]{\@@_octal_use:NTF} % \begin{syntax} % \cs{@@_octal_use:NTF} \meta{token} \Arg{true code} \Arg{false code} % \end{syntax} @@ -424,7 +424,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}[aux, rEXP]{\@@_hexadecimal_use:NTF} +% \begin{macro}[rEXP]{\@@_hexadecimal_use:NTF} % \TeX{} detects uppercase hexadecimal digits for us (see % \cs{@@_octal_use:NTF}), but not the lowercase letters, which we % need to detect and replace by their uppercase counterpart. @@ -482,11 +482,11 @@ % \end{variable} % \end{variable} % -% \begin{macro}[int, EXP]{\@@_output_byte:n} -% \begin{macro}[int, EXP]{\@@_output_byte:w} -% \begin{macro}[int, EXP]{\@@_output_hexadecimal:n} -% \begin{macro}[int, EXP]{\@@_output_hexadecimal:w} -% \begin{macro}[int, EXP]{\@@_output_end:} +% \begin{macro}[EXP]{\@@_output_byte:n} +% \begin{macro}[EXP]{\@@_output_byte:w} +% \begin{macro}[EXP]{\@@_output_hexadecimal:n} +% \begin{macro}[EXP]{\@@_output_hexadecimal:w} +% \begin{macro}[EXP]{\@@_output_end:} % Those functions must be used carefully: feeding them a value outside % the range $[-1,255]$ will attempt to use the undefined token list % variable \cs{c_@@_byte_\meta{number}_tl}. Assuming that the @@ -520,9 +520,9 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int, rEXP]{\@@_output_byte_pair_be:n} -% \begin{macro}[int, rEXP]{\@@_output_byte_pair_le:n} -% \begin{macro}[aux, rEXP]{\@@_output_byte_pair:nnN} +% \begin{macro}[rEXP]{\@@_output_byte_pair_be:n} +% \begin{macro}[rEXP]{\@@_output_byte_pair_le:n} +% \begin{macro}[rEXP]{\@@_output_byte_pair:nnN} % Convert a number in the range $[0,65535]$ to a pair of bytes, either % big-endian or little-endian. % \begin{macrocode} @@ -550,7 +550,7 @@ % \subsubsection{Mapping functions for conversions} % % \begin{macro}{\@@_convert_gmap:N} -% \begin{macro}[aux, rEXP]{\@@_convert_gmap_loop:NN} +% \begin{macro}[rEXP]{\@@_convert_gmap_loop:NN} % This maps the function |#1| over all characters in % \cs{g_@@_result_tl}, which should be a byte string in most cases, % sometimes a native string. @@ -576,7 +576,7 @@ % \end{macro} % % \begin{macro}{\@@_convert_gmap_internal:N} -% \begin{macro}[aux, rEXP]{\@@_convert_gmap_internal_loop:Nw} +% \begin{macro}[rEXP]{\@@_convert_gmap_internal_loop:Nw} % This maps the function |#1| over all character codes in % \cs{g_@@_result_tl}, which must be in the internal representation. % \begin{macrocode} @@ -602,8 +602,8 @@ % % \subsubsection{Error-reporting during conversion} % -% \begin{macro}[int]{\@@_if_flag_error:nnx} -% \begin{macro}[aux]{\@@_if_flag_no_error:nnx} +% \begin{macro}{\@@_if_flag_error:nnx} +% \begin{macro}{\@@_if_flag_no_error:nnx} % 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 @@ -626,7 +626,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int, 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 @@ -673,7 +673,7 @@ % % \begin{macro}{\str_set_convert:Nnnn, \str_gset_convert:Nnnn} % \begin{macro}[TF]{\str_set_convert:Nnnn, \str_gset_convert:Nnnn} -% \begin{macro}[aux]{\@@_convert:nNNnnn} +% \begin{macro}{\@@_convert:nNNnnn} % The input string is stored in \cs{g_@@_result_tl}, then we: % unescape and decode; encode and escape; exit the group and store the % result in the user's variable. The various conversion functions all @@ -725,8 +725,8 @@ % \end{macro} % \end{macro} % -% \begin{macro}[aux]{\@@_convert:wwwnn} -% \begin{macro}[aux]{\@@_convert:NNnNN} +% \begin{macro}{\@@_convert:wwwnn} +% \begin{macro}{\@@_convert:NNnNN} % The task of \cs{@@_convert:wwwnn} is to split % \meta{encoding}/\meta{escaping} pairs into their components, |#1| % and |#2|. Calls to \cs{@@_convert:nnn} ensure that the @@ -771,8 +771,8 @@ % \end{macro} % \end{macro} % -% \begin{macro}[aux]{\@@_convert:nnn} -% \begin{macro}[aux]{\@@_convert:nnnn} +% \begin{macro}{\@@_convert:nnn} +% \begin{macro}{\@@_convert:nnnn} % The arguments of \cs{@@_convert:nnn} are: \texttt{enc} or % \texttt{esc}, used to build filenames, the type of the conversion % (unescape, decode, encode, escape), and the encoding or escaping @@ -848,8 +848,8 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int, rEXP]{\@@_convert_lowercase_alphanum:n} -% \begin{macro}[aux, rEXP]{\@@_convert_lowercase_alphanum_loop:N} +% \begin{macro}[rEXP]{\@@_convert_lowercase_alphanum:n} +% \begin{macro}[rEXP]{\@@_convert_lowercase_alphanum_loop:N} % This function keeps only letters and digits, with upper case letters % converted to lower case. % \begin{macrocode} @@ -883,7 +883,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int]{\@@_load_catcodes:} +% \begin{macro}{\@@_load_catcodes:} % Since encoding files may be loaded at arbitrary places in a \TeX{} % document, including within verbatim mode, we set the catcodes of all % characters appearing in any encoding definition file. @@ -916,8 +916,8 @@ % needed. By default, on input any non-byte is filtered out, while the % output simply consists in letting bytes through. % -% \begin{macro}[int, rEXP]{\@@_filter_bytes:n} -% \begin{macro}[aux, rEXP]{\@@_filter_bytes_aux:N} +% \begin{macro}[rEXP]{\@@_filter_bytes:n} +% \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{str_byte}. Spaces have already been given @@ -951,8 +951,8 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int]{\@@_convert_unescape_:} -% \begin{macro}[int]{\@@_convert_unescape_bytes:} +% \begin{macro}{\@@_convert_unescape_:} +% \begin{macro}{\@@_convert_unescape_bytes:} % The simplest unescaping method removes non-bytes from % \cs{g_@@_result_tl}. % \begin{macrocode} @@ -976,8 +976,8 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int]{\@@_convert_escape_:} -% \begin{macro}[int]{\@@_convert_escape_bytes:} +% \begin{macro}{\@@_convert_escape_:} +% \begin{macro}{\@@_convert_escape_bytes:} % The simplest form of escape leaves the bytes from the previous step % of the conversion unchanged. % \begin{macrocode} @@ -989,8 +989,8 @@ % % \subsubsection{Native strings} % -% \begin{macro}[int]{\@@_convert_decode_:} -% \begin{macro}[aux, rEXP]{\@@_decode_native_char:N} +% \begin{macro}{\@@_convert_decode_:} +% \begin{macro}[rEXP]{\@@_decode_native_char:N} % Convert each character to its character code, one at a time. % \begin{macrocode} \cs_new_protected:Npn \@@_convert_decode_: @@ -1001,7 +1001,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int]{\@@_convert_encode_:} +% \begin{macro}{\@@_convert_encode_:} % The conversion from an internal string to native character tokens is % very different in pdf\TeX{} and in other engines. For Unicode-aware % engines, we need the definitions to be read when the null byte has @@ -1015,9 +1015,9 @@ \sys_if_engine_xetex_p: } % \end{macrocode} -% \begin{macro}[aux]{\@@_encode_native_loop:w} -% \begin{macro}[aux]{\@@_encode_native_flush:} -% \begin{macro}[aux, rEXP]{\@@_encode_native_filter:N} +% \begin{macro}{\@@_encode_native_loop:w} +% \begin{macro}{\@@_encode_native_flush:} +% \begin{macro}[rEXP]{\@@_encode_native_filter:N} % In Unicode-aware engines, since building particular characters % cannot be done expandably in \TeX{}, we cannot hope to get a % linear-time function. However, we get quite close using the @@ -1049,7 +1049,7 @@ } } % \end{macrocode} -% \begin{macro}[aux, EXP]{\@@_encode_native_char:n} +% \begin{macro}[EXP]{\@@_encode_native_char:n} % Since pdf\TeX{} only supports 8-bit characters, and we have a table % of all bytes, the conversion can be done in linear time within an % \texttt{x}-expanding assignment. Look out for character codes larger @@ -1094,15 +1094,15 @@ % % \subsubsection{\texttt{clist}} % -% \begin{macro}[int]{\@@_convert_decode_clist:} -% \begin{macro}[aux, rEXP]{\@@_decode_clist_char:n} +% \begin{macro}{\@@_convert_decode_clist:} +% \begin{macro}[rEXP]{\@@_decode_clist_char:n} % Convert each integer to the internal form. We first turn % \cs{g_@@_result_tl} into a clist variable, as this avoids problems % with leading or trailing commas. % \begin{macrocode} \cs_new_protected:Npn \@@_convert_decode_clist: { - \clist_set:No \g_@@_result_tl \g_@@_result_tl + \clist_gset:No \g_@@_result_tl \g_@@_result_tl \tl_gset:Nx \g_@@_result_tl { \exp_args:No \clist_map_function:nN @@ -1115,8 +1115,8 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int]{\@@_convert_encode_clist:} -% \begin{macro}[aux, rEXP]{\@@_encode_clist_char:n} +% \begin{macro}{\@@_convert_encode_clist:} +% \begin{macro}[rEXP]{\@@_encode_clist_char:n} % Convert the internal list of character codes to a comma-list of % character codes. The first line produces a comma-list with a % leading comma, removed in the next step (this also works in the @@ -1151,7 +1151,7 @@ % All the 8-bit encodings which \pkg{l3str} supports rely on the same % internal functions. % -% \begin{macro}[int]{\@@_declare_eight_bit_encoding:nnn} +% \begin{macro}{\@@_declare_eight_bit_encoding:nnn} % \begin{syntax} % \cs{@@_declare_eight_bit_encoding:nnn} \Arg{name} \Arg{mapping} \Arg{missing} % \end{syntax} @@ -1183,10 +1183,10 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}[int]{\@@_convert_decode_eight_bit:n} -% \begin{macro}[aux]{\@@_decode_eight_bit_load:nn} -% \begin{macro}[aux]{\@@_decode_eight_bit_load_missing:n} -% \begin{macro}[aux, EXP]{\@@_decode_eight_bit_char:N} +% \begin{macro}{\@@_convert_decode_eight_bit:n} +% \begin{macro}{\@@_decode_eight_bit_load:nn} +% \begin{macro}{\@@_decode_eight_bit_load_missing:n} +% \begin{macro}[EXP]{\@@_decode_eight_bit_char:N} %^^A todo: document % \begin{macrocode} \cs_new_protected:Npn \@@_convert_decode_eight_bit:n #1 @@ -1241,10 +1241,10 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int]{\@@_convert_encode_eight_bit:n} -% \begin{macro}[aux]{\@@_encode_eight_bit_load:nn} -% \begin{macro}[aux, rEXP]{\@@_encode_eight_bit_char:n} -% \begin{macro}[aux, rEXP]{\@@_encode_eight_bit_char_aux:n} +% \begin{macro}{\@@_convert_encode_eight_bit:n} +% \begin{macro}{\@@_encode_eight_bit_load:nn} +% \begin{macro}[rEXP]{\@@_encode_eight_bit_char:n} +% \begin{macro}[rEXP]{\@@_encode_eight_bit_char_aux:n} %^^A todo: document % \begin{macrocode} \cs_new_protected:Npn \@@_convert_encode_eight_bit:n #1 @@ -1385,9 +1385,9 @@ % % \subsubsection{Unescape methods} % -% \begin{macro}[int]{\@@_convert_unescape_hex:} -% \begin{macro}[aux, rEXP]{\@@_unescape_hex_auxi:N} -% \begin{macro}[aux, rEXP]{\@@_unescape_hex_auxii:N} +% \begin{macro}{\@@_convert_unescape_hex:} +% \begin{macro}[rEXP]{\@@_unescape_hex_auxi:N} +% \begin{macro}[rEXP]{\@@_unescape_hex_auxii:N} % Take chars two by two, and interpret each pair as the hexadecimal % code for a byte. Anything else than hexadecimal digits is ignored, % raising the flag. A string which contains an odd number of @@ -1447,10 +1447,10 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int]{\@@_convert_unescape_name:} -% \begin{macro}[aux, rEXP]{\@@_unescape_name_loop:wNN} -% \begin{macro}[int]{\@@_convert_unescape_url:} -% \begin{macro}[aux, rEXP]{\@@_unescape_url_loop:wNN} +% \begin{macro}{\@@_convert_unescape_name:} +% \begin{macro}[rEXP]{\@@_unescape_name_loop:wNN} +% \begin{macro}{\@@_convert_unescape_url:} +% \begin{macro}[rEXP]{\@@_unescape_url_loop:wNN} % The \cs{@@_convert_unescape_name:} function replaces each % occurrence of |#| followed by two hexadecimal digits in % \cs{g_@@_result_tl} by the corresponding byte. The \texttt{url} @@ -1534,10 +1534,10 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int]{\@@_convert_unescape_string:} -% \begin{macro}[aux, rEXP]{\@@_unescape_string_newlines:wN} -% \begin{macro}[aux, rEXP]{\@@_unescape_string_loop:wNNN} -% \begin{macro}[aux, rEXP]{\@@_unescape_string_repeat:NNNNNN} +% \begin{macro}{\@@_convert_unescape_string:} +% \begin{macro}[rEXP]{\@@_unescape_string_newlines:wN} +% \begin{macro}[rEXP]{\@@_unescape_string_loop:wNNN} +% \begin{macro}[rEXP]{\@@_unescape_string_repeat:NNNNNN} % The \texttt{string} escaping is somewhat similar to the % \texttt{name} and \texttt{url} escapings, with escape character |\|. % The first step is to convert all three line endings, |^^J|, |^^M|, @@ -1560,14 +1560,12 @@ % If followed by an end-of-line character, the backslash and the % end-of-line are ignored. If followed by anything else, the backslash % is ignored, raising the error flag. -%^^A Be paranoid: \tex_lowercase:D is unsafe. % \begin{macrocode} %<*string> \group_begin: - \char_set_lccode:nn {`\*} {`\\} \char_set_catcode_other:N \^^J \char_set_catcode_other:N \^^M - \tex_lowercase:D + \cs_set_protected:Npn \@@_tmp:w #1 { \cs_new_protected:Npn \@@_convert_unescape_string: { @@ -1584,15 +1582,17 @@ \tl_gset:Nx \g_@@_result_tl { \exp_after:wN \@@_unescape_string_loop:wNNN - \g_@@_result_tl * ?? { ? \__prg_break: } + \g_@@_result_tl #1 ?? { ? \__prg_break: } \__prg_break_point: } \@@_if_flag_error:nnx { str_byte } { non-byte } { string } \@@_if_flag_error:nnx { str_error } { unescape-string } { } \group_end: } - \cs_new:Npn \@@_unescape_string_loop:wNNN #1 *#2#3#4 } + \exp_args:No \@@_tmp:w { \c_backslash_str } + \exp_last_unbraced:NNNNo + \cs_new:Npn \@@_unescape_string_loop:wNNN #1 \c_backslash_str #2#3#4 { \@@_filter_bytes:n {#1} \use_none:n #4 @@ -1662,8 +1662,8 @@ % Currently, none of the escape methods can lead to errors, assuming % that their input is made out of bytes. % -% \begin{macro}[int]{\@@_convert_escape_hex:} -% \begin{macro}[aux, rEXP]{\@@_escape_hex_char:N} +% \begin{macro}{\@@_convert_escape_hex:} +% \begin{macro}[rEXP]{\@@_escape_hex_char:N} % Loop and convert each byte to hexadecimal. % \begin{macrocode} %<*hex> @@ -1676,9 +1676,9 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int]{\@@_convert_escape_name:} -% \begin{macro}[aux, rEXP]{\@@_escape_name_char:N} -% \begin{macro}[aux, rEXP]{\@@_if_escape_name:NTF} +% \begin{macro}{\@@_convert_escape_name:} +% \begin{macro}[rEXP]{\@@_escape_name_char:N} +% \begin{macro}[rEXP]{\@@_if_escape_name:NTF} % \begin{variable}{\c_@@_escape_name_str} % \begin{variable}{\c_@@_escape_name_not_str} % For each byte, test whether it should be output as is, or be @@ -1720,9 +1720,9 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int]{\@@_convert_escape_string:} -% \begin{macro}[aux, rEXP]{\@@_escape_string_char:N} -% \begin{macro}[aux, rEXP]{\@@_if_escape_string:NTF} +% \begin{macro}{\@@_convert_escape_string:} +% \begin{macro}[rEXP]{\@@_escape_string_char:N} +% \begin{macro}[rEXP]{\@@_if_escape_string:NTF} % \begin{variable}{\c_@@_escape_string_str} % Any character below (and including) space, and any character above % (and including) \texttt{del}, are converted to octal. One backslash @@ -1768,9 +1768,9 @@ % \end{macro} % \end{macro} % -% \begin{macro}[int]{\@@_convert_escape_url:} -% \begin{macro}[aux, rEXP]{\@@_escape_url_char:N} -% \begin{macro}[aux, rEXP]{\@@_if_escape_url:NTF} +% \begin{macro}{\@@_convert_escape_url:} +% \begin{macro}[rEXP]{\@@_escape_url_char:N} +% \begin{macro}[rEXP]{\@@_if_escape_url:NTF} % This function is similar to \cs{@@_convert_escape_name:}, escaping % different characters. % \begin{macrocode} @@ -1820,9 +1820,9 @@ %<*utf8> % \end{macrocode} % -% \begin{macro}[int]{\@@_convert_encode_utf8:} -% \begin{macro}[aux, rEXP]{\@@_encode_utf_viii_char:n} -% \begin{macro}[aux, rEXP]{\@@_encode_utf_viii_loop:wwnnw} +% \begin{macro}{\@@_convert_encode_utf8:} +% \begin{macro}[rEXP]{\@@_encode_utf_viii_char:n} +% \begin{macro}[rEXP]{\@@_encode_utf_viii_loop:wwnnw} % Loop through the internal string, and convert each character to its % \textsc{utf-8} representation. The representation is built from the % right-most (least significant) byte to the left-most (most @@ -1967,14 +1967,14 @@ % \end{macrocode} % \end{variable} % -% \begin{macro}[int]{\@@_convert_decode_utf8:} -% \begin{macro}[aux, rEXP] +% \begin{macro}{\@@_convert_decode_utf8:} +% \begin{macro}[rEXP] % { % \@@_decode_utf_viii_start:N, % \@@_decode_utf_viii_continuation:wwN, % \@@_decode_utf_viii_aux:wNnnwN % } -% \begin{macro}[aux, rEXP] +% \begin{macro}[rEXP] % {\@@_decode_utf_viii_overflow:w, \@@_decode_utf_viii_end:} % Decoding is significantly harder than encoding. As before, lower % some flags, which are tested at the end (in bulk, to trigger at most @@ -2148,13 +2148,13 @@ \char_set_catcode_other:N \^^ff % \end{macrocode} % -% \begin{macro}[int] +% \begin{macro} % { % \@@_convert_encode_utf16: , % \@@_convert_encode_utf16be: , % \@@_convert_encode_utf16le: , % } -% \begin{macro}[aux, rEXP] +% \begin{macro}[rEXP] % { % \@@_encode_utf_xvi_aux:N , % \@@_encode_utf_xvi_char:n , @@ -2285,13 +2285,13 @@ % \end{macrocode} % \end{variable} % -% \begin{macro}[int] +% \begin{macro} % { % \@@_convert_decode_utf16: , % \@@_convert_decode_utf16be: , % \@@_convert_decode_utf16le: , % } -% \begin{macro}[aux]{\@@_decode_utf_xvi_bom:NN, \@@_decode_utf_xvi:Nw} +% \begin{macro}{\@@_decode_utf_xvi_bom:NN, \@@_decode_utf_xvi:Nw} % As for \textsc{utf-8}, decoding \textsc{utf-16} is harder than % encoding it. If the endianness is unknown, check the first two % bytes: if those are \hexnum{FE} and \hexnum{FF} in either order, @@ -2346,13 +2346,13 @@ % \end{macro} % \end{macro} % -% \begin{macro}[aux, rEXP] +% \begin{macro}[rEXP] % { % \@@_decode_utf_xvi_pair:NN , % \@@_decode_utf_xvi_quad:NNwNN , % \@@_decode_utf_xvi_pair_end:Nw , % } -% \begin{macro}[aux, rEXP] +% \begin{macro}[rEXP] % { % \@@_decode_utf_xvi_error:nNN , % \@@_decode_utf_xvi_extra:NNw , @@ -2474,13 +2474,13 @@ \char_set_catcode_other:N \^^ff % \end{macrocode} % -% \begin{macro}[int] +% \begin{macro} % { % \@@_convert_encode_utf32: , % \@@_convert_encode_utf32be: , % \@@_convert_encode_utf32le: , % } -% \begin{macro}[aux, rEXP] +% \begin{macro}[rEXP] % { % \@@_encode_utf_xxxii_be:n , % \@@_encode_utf_xxxii_be_aux:nn , @@ -2563,15 +2563,15 @@ % \end{macrocode} % \end{variable} % -% \begin{macro}[int] +% \begin{macro} % { % \@@_convert_decode_utf32: , % \@@_convert_decode_utf32be: , % \@@_convert_decode_utf32le: , % } -% \begin{macro}[aux] +% \begin{macro} % {\@@_decode_utf_xxxii_bom:NNNN, \@@_decode_utf_xxxii:Nw} -% \begin{macro}[aux, rEXP] +% \begin{macro}[rEXP] % {\@@_decode_utf_xxxii_loop:NNNN, \@@_decode_utf_xxxii_end:w} % % The structure is similar to \textsc{utf-16} decoding functions. If |