summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/yquant/yquant-env.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-02-19 20:57:28 +0000
committerKarl Berry <karl@freefriends.org>2023-02-19 20:57:28 +0000
commit3955c6f567cb3dcb8061a5f6b5989673371c143e (patch)
tree1bdb3932178dee950d835998adcd72b2228dcd4f /Master/texmf-dist/tex/latex/yquant/yquant-env.tex
parent9c8377ee047747b61cf8242b3a072efee1c772a6 (diff)
yquant (19feb23)
git-svn-id: svn://tug.org/texlive/trunk@65933 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/yquant/yquant-env.tex')
-rw-r--r--Master/texmf-dist/tex/latex/yquant/yquant-env.tex28
1 files changed, 16 insertions, 12 deletions
diff --git a/Master/texmf-dist/tex/latex/yquant/yquant-env.tex b/Master/texmf-dist/tex/latex/yquant/yquant-env.tex
index bbbf740e713..f87745b05c0 100644
--- a/Master/texmf-dist/tex/latex/yquant/yquant-env.tex
+++ b/Master/texmf-dist/tex/latex/yquant/yquant-env.tex
@@ -259,17 +259,9 @@
\listremove\noexpand\redolist{#1}%
\expandafter\noexpand\csname yquant@env@end@calcypositions@#1@\i\endcsname%
\expandafter\unless\expandafter\ifx\csname\yquant@prefix subcircuits\endcsname\empty%
- \ifinlist{#1}\noexpand\redolist{%
- \noexpand\forlistloop%
- \yquant@env@end@calcypositions@run%
- \expandafter\noexpand\csname\yquant@prefix subcircuits\endcsname%
- }{%
- \noexpand\ifyquant@env@end@calcypositions@godeep%
- \noexpand\forlistloop%
- \yquant@env@end@calcypositions@run%
- \expandafter\noexpand\csname\yquant@prefix subcircuits\endcsname%
- \noexpand\fi%
- }%
+ \noexpand\forlistloop%
+ \yquant@env@end@calcypositions@run%
+ \expandafter\noexpand\csname\yquant@prefix subcircuits\endcsname%
\fi%
}%
% END_FOLD
@@ -416,8 +408,20 @@
\csname yquant@env@end@calcypositions@#1\endcsname%
}
+\protected\def\yquant@env@end@calcypositions@redo@min#1{%
+ \ifnum#1<\redoitem\space %
+ \def\redoitem{#1}%
+ \fi%
+}
+
\protected\def\yquant@env@end@calcypositions@redo{%
- \forlistloop\yquant@env@end@calcypositions@run\redolist%
+ % instead of looping through the list, we only check the lowest item - since running it may actually remove some other items from the list. Note that the lowest item is not necessarily the outermost, but for sure the topmost wire that should be redone is contained in it.
+ \unless\ifx\redolist\empty%
+ \def\redoitem{2147483647}%
+ \forlistloop\yquant@env@end@calcypositions@redo@min\redolist%
+ % this will automatically remove the item from the list
+ \expandafter\yquant@env@end@calcypositions@run\expandafter{\redoitem}%
+ \fi%
\unless\ifx\redolist\empty%
\expandafter\yquant@env@end@calcypositions@redo%
\fi%