I'm trying to adapt this egreg's answer but I'm facing a very strange phenomenon.
As shown by the following MCE, the similar lines that are supposed to be written to the .aux file:
\int_gset:Nn \g_integer_int {#1}
\seq_put_right:Nn \g_integers_seq {#1}
result on the expected one for the 1st one but, in the 2nd one, \g_integers_seq is changed in \s__seq!
Here is the .aux file's content:
\relax
\ExplSyntaxOn
\int_gset:Nn \g_integer_int {1}
\seq_put_right:Nn \s__seq {1}
\ExplSyntaxOff
\ExplSyntaxOn
\int_gset:Nn \g_integer_int {2}
\seq_put_right:Nn \s__seq {2}
\ExplSyntaxOff
Do you see what's going on?
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\seq_new:N \g_integers_seq
\int_new:N \g_integer_int
\NewDocumentCommand{\NewInteger}{m}
{
\iow_now:cx { @auxout }
{
\token_to_str:N \ExplSyntaxOn
^^J
\int_gset:Nn \g_integer_int {#1}
^^J
\seq_put_right:Nn \g_integers_seq {#1}
^^J
\token_to_str:N \ExplSyntaxOff
}
}
\ExplSyntaxOff
\begin{document}
\NewInteger{1}
\NewInteger{2}
\end{document}
\g_integers_seqis not a protected command. – egreg May 08 '19 at 21:33