File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -53,7 +53,7 @@ impl OtherData {
5353 }
5454
5555 pub fn check_field_overflow ( & mut self , fields : usize ) {
56- if fields > self . field_info . len ( ) {
56+ while fields > self . field_info . len ( ) {
5757 self . field_info . grow ( MAX_FIELDS ) ;
5858 }
5959 }
Original file line number Diff line number Diff line change @@ -790,7 +790,7 @@ pub(crate) fn scan_and_store_the_field_value_and_eat_white(
790790 } else {
791791 let field_ptr =
792792 cites. entry_ptr ( ) * other. num_fields ( ) + hash. ilk_info ( field_name_loc) as usize ;
793- if field_ptr > other. max_fields ( ) {
793+ if field_ptr >= other. max_fields ( ) {
794794 write_logs ( "field_info index is out of range" ) ;
795795 print_confusion ( ) ;
796796 return Err ( BibtexError :: Fatal ) ;
Original file line number Diff line number Diff line change @@ -61,9 +61,7 @@ impl TestCase {
6161 let mut status = NoopStatusBackend :: default ( ) ;
6262 let mut launcher = CoreBridgeLauncher :: new ( & mut hooks, & mut status) ;
6363
64- BibtexEngine :: new ( )
65- . process ( & mut launcher, & auxname, & Default :: default ( ) )
66- . unwrap ( ) ;
64+ let res = BibtexEngine :: new ( ) . process ( & mut launcher, & auxname, & Default :: default ( ) ) ;
6765
6866 // Check that outputs match expectations.
6967
@@ -81,6 +79,8 @@ impl TestCase {
8179 expect
8280 . file ( ExpectedFile :: read_with_extension ( & mut p, "blg" ) . collection ( & files) )
8381 . finish ( ) ;
82+
83+ res. unwrap ( ) ;
8484 }
8585}
8686
@@ -175,3 +175,13 @@ fn test_many_preamble() {
175175fn test_nested_aux ( ) {
176176 TestCase :: new ( "nested" , Some ( "aux_files" ) ) . go ( ) ;
177177}
178+
179+ /// Test for [#1105](https://github.com/tectonic-typesetting/tectonic/issues/1105), with enough
180+ /// citations in the aux and fields in the bst to require more than one allocation of field space
181+ /// at once.
182+ #[ test]
183+ fn test_lots_of_cites ( ) {
184+ TestCase :: new ( "lots_of_cites" , Some ( "aux_files" ) )
185+ . test_bbl ( false )
186+ . go ( ) ;
187+ }
Original file line number Diff line number Diff line change 1+ % Test for #1105
2+
3+ \bibstyle {lots_of_entries}
4+ \bibdata {lots_of_cites}
5+
6+ \citation {A}
7+ \citation {B}
8+ \citation {C}
9+ \citation {D}
10+ \citation {E}
11+ \citation {F}
12+ \citation {G}
13+ \citation {H}
14+ \citation {I}
15+ \citation {J}
16+ \citation {K}
17+ \citation {L}
18+ \citation {M}
19+ \citation {N}
20+ \citation {O}
21+ \citation {P}
22+ \citation {Q}
23+ \citation {R}
24+ \citation {S}
25+ \citation {T}
26+ \citation {U}
27+ \citation {V}
28+ \citation {W}
29+ \citation {X}
30+ \citation {Y}
31+ \citation {Z}
32+ \citation {AA}
33+ \citation {AB}
34+ \citation {AC}
35+ \citation {AD}
36+ \citation {AE}
37+ \citation {AF}
38+ \citation {AG}
39+ \citation {AH}
40+ \citation {AI}
41+ \citation {AJ}
42+ \citation {AK}
43+ \citation {AL}
44+ \citation {AM}
45+ \citation {AN}
46+ \citation {AO}
47+ \citation {AP}
48+ \citation {AQ}
49+ \citation {AR}
50+ \citation {AS}
51+ \citation {AT}
52+ \citation {AU}
53+ \citation {AV}
54+ \citation {AW}
55+ \citation {AX}
56+ \citation {AY}
57+ \citation {AZ}
58+ \citation {BA}
59+ \citation {BB}
60+ \citation {BC}
61+ \citation {BD}
62+ \citation {BE}
63+ \citation {BF}
64+ \citation {BG}
65+ \citation {BH}
66+ \citation {BI}
67+ \citation {BJ}
68+ \citation {BK}
69+ \citation {BL}
70+ \citation {BM}
71+ \citation {BN}
72+ \citation {BO}
73+ \citation {BP}
74+ \citation {BQ}
75+ \citation {BR}
76+ \citation {BS}
77+ \citation {BT}
78+ \citation {BU}
79+ \citation {BV}
80+ \citation {BW}
81+ \citation {BX}
82+ \citation {BY}
83+ \citation {BZ}
84+ \citation {CA}
85+ \citation {CB}
86+ \citation {CC}
87+ \citation {CD}
88+ \citation {CE}
89+ \citation {CF}
90+ \citation {CG}
91+ \citation {CH}
92+ \citation {CI}
93+ \citation {CJ}
94+ \citation {CK}
95+ \citation {CL}
96+ \citation {CM}
97+ \citation {CN}
98+ \citation {CO}
99+ \citation {CP}
100+ \citation {CQ}
101+ \citation {CR}
102+ \citation {CS}
103+ \citation {CT}
104+ \citation {CU}
105+ \citation {CV}
106+ \citation {CW}
107+ \citation {CX}
108+ \citation {CY}
109+ \citation {CZ}
110+ \citation {DA}
111+ \citation {DB}
112+ \citation {DC}
113+ \citation {DD}
114+ \citation {DE}
115+ \citation {DF}
116+ \citation {DG}
117+ \citation {DH}
118+ \citation {DI}
119+ \citation {DJ}
120+ \citation {DK}
121+ \citation {DL}
122+ \citation {DM}
123+ \citation {DN}
124+ \citation {DO}
125+ \citation {DP}
126+ \citation {DQ}
127+ \citation {DR}
128+ \citation {DS}
129+ \citation {DT}
130+ \citation {DU}
131+ \citation {DV}
132+ \citation {DW}
133+ \citation {DX}
134+ \citation {DY}
135+ \citation {DZ}
136+ \citation {EA}
137+ \citation {EB}
138+ \citation {EC}
139+ \citation {ED}
140+ \citation {EE}
141+ \citation {EF}
142+ \citation {EG}
143+ \citation {EH}
144+ \citation {EI}
145+ \citation {EJ}
146+ \citation {EK}
147+ \citation {EL}
148+ \citation {EM}
149+ \citation {EN}
150+ \citation {EO}
151+ \citation {EP}
152+ \citation {EQ}
153+ \citation {ER}
154+ \citation {ES}
155+ \citation {ET}
156+ \citation {EU}
157+ \citation {EV}
158+ \citation {EW}
159+ \citation {EX}
160+ \citation {EY}
161+ \citation {EZ}
162+ \citation {FA}
163+ \citation {FB}
164+ \citation {FC}
165+ \citation {FD}
166+ \citation {FE}
167+ \citation {FF}
168+ \citation {FG}
169+ \citation {FH}
170+ \citation {FI}
171+ \citation {FJ}
172+ \citation {FK}
173+ \citation {FL}
174+ \citation {FM}
175+ \citation {FN}
176+ \citation {FO}
177+ \citation {FP}
178+ \citation {FQ}
179+ \citation {FR}
180+ \citation {FS}
181+ \citation {FT}
182+ \citation {FU}
183+ \citation {FV}
184+ \citation {FW}
185+ \citation {FX}
186+ \citation {FY}
187+ \citation {FZ}
188+ \citation {GA}
189+ \citation {GB}
190+ \citation {GC}
191+ \citation {GD}
192+ \citation {GE}
193+ \citation {GF}
194+ \citation {GG}
195+ \citation {GH}
196+ \citation {GI}
197+ \citation {GJ}
198+ \citation {GK}
199+ \citation {GL}
200+ \citation {GM}
201+ \citation {GN}
202+ \citation {GO}
203+ \citation {GP}
204+ \citation {GQ}
205+ \citation {GR}
206+ \citation {GS}
207+ \citation {GT}
208+ \citation {GU}
209+ \citation {GV}
210+ \citation {GW}
211+ \citation {GX}
212+ \citation {GY}
213+ \citation {GZ}
214+ \citation {HA}
215+ \citation {HB}
216+ \citation {HC}
217+ \citation {HD}
218+ \citation {HE}
219+ \citation {HF}
220+ \citation {HG}
221+ \citation {HH}
222+ \citation {HI}
223+ \citation {HJ}
224+ \citation {HK}
225+ \citation {HL}
226+ \citation {HM}
227+ \citation {HN}
228+ \citation {HO}
229+ \citation {HP}
230+ \citation {HQ}
231+ \citation {HR}
232+ \citation {HS}
233+ \citation {HT}
234+ \citation {HU}
235+ \citation {HV}
236+ \citation {HW}
237+ \citation {HX}
238+ \citation {HY}
239+ \citation {HZ}
240+ \citation {IA}
241+ \citation {IB}
242+ \citation {IC}
243+ \citation {ID}
244+ \citation {IE}
245+ \citation {IF}
246+ \citation {IG}
247+ \citation {IH}
248+ \citation {II}
249+ \citation {IJ}
250+ \citation {IK}
251+ \citation {IL}
252+ \citation {IM}
253+ \citation {IN}
254+ \citation {IO}
255+ \citation {IP}
256+ \citation {IQ}
257+ \citation {IR}
258+ \citation {IS}
259+ \citation {IT}
260+ \citation {IU}
261+ \citation {IV}
262+ \citation {IW}
263+ \citation {IX}
264+ \citation {IY}
265+ \citation {IZ}
266+ \citation {JA}
267+ \citation {JB}
268+ \citation {JC}
269+ \citation {JD}
270+ \citation {JE}
271+ \citation {JF}
272+ \citation {JG}
273+ \citation {JH}
274+ \citation {JI}
275+ \citation {JJ}
276+ \citation {JK}
277+ \citation {JL}
278+ \citation {JM}
279+ \citation {JN}
280+ \citation {JO}
281+ \citation {JP}
282+ \citation {JQ}
283+ \citation {JR}
284+ \citation {JS}
285+ \citation {JT}
286+ \citation {JU}
287+ \citation {JV}
288+ \citation {JW}
289+ \citation {JX}
290+ \citation {JY}
291+ \citation {JZ}
Original file line number Diff line number Diff line change 1+
2+ @misc {jz ,
3+ a = " Foo"
4+ }
You can’t perform that action at this time.
0 commit comments