summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/eplain/btxmac.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/eplain/btxmac.tex')
-rw-r--r--Master/texmf-dist/tex/eplain/btxmac.tex13
1 files changed, 11 insertions, 2 deletions
diff --git a/Master/texmf-dist/tex/eplain/btxmac.tex b/Master/texmf-dist/tex/eplain/btxmac.tex
index 4b7fda7c61e..c8772a176b2 100644
--- a/Master/texmf-dist/tex/eplain/btxmac.tex
+++ b/Master/texmf-dist/tex/eplain/btxmac.tex
@@ -1,6 +1,6 @@
%% @texfile{
%% author = "Karl Berry and Oren Patashnik",
-%% version = "0.99k-18aug05",
+%% version = "0.99k-09sep07",
%% date = "19 August 2005",
%% filename = "btxmac.tex",
%% address = "tex-eplain@tug.org",
@@ -513,7 +513,16 @@
% the \@citedef, we define \@citelabel{#1}, where #1 is the user's
% label.
%
-\def\@citedef#1#2{\expandafter\gdef\csname\@citelabel{#1}\endcsname{#2}}%
+% The group around the def will keep the save stack from overflowing:
+% We are reading the .aux file inside a group. For undefined
+% commands, \csname...\endcsname makes them equivalent to \relax
+% locally in that group; when we globally redefine them, TeX enters
+% the definitions on the save stack, once for each label. When done
+% in the topmost group, this can overflow stack of any size, given
+% sufficient number of label definitions. So, we put these
+% \csname...\endcsname's inside another group, to pop the stack for
+% every label.
+\def\@citedef#1#2{{\expandafter\gdef\csname\@citelabel{#1}\endcsname{#2}}}%
%
%
% Reading the .bbl file also produces the typeset bibliography. Please