diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2010-04-22 08:12:50 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2010-04-22 08:12:50 +0000 |
commit | 3c4e319b047a8eb727b15613680783c401085106 (patch) | |
tree | f36eede64b5966b63919a986d21f17bb5c5b811f /Build/source/texk/web2c/bibtex.ch | |
parent | 721c5a9a097833f964cbc2084b105379648baf04 (diff) |
minor [p]bibtex fixes
git-svn-id: svn://tug.org/texlive/trunk@17957 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/bibtex.ch')
-rw-r--r-- | Build/source/texk/web2c/bibtex.ch | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/Build/source/texk/web2c/bibtex.ch b/Build/source/texk/web2c/bibtex.ch index 8a4a7bc7784..1832185d6a7 100644 --- a/Build/source/texk/web2c/bibtex.ch +++ b/Build/source/texk/web2c/bibtex.ch @@ -1342,35 +1342,13 @@ entry_strs := XTALLOC ((num_ent_strs + 1) * (num_cites + 1) * (ent_str_size + 1) @z @x [321] Dynamic buf_size. +if (out_buf_length+(p_ptr2-p_ptr1) > buf_size) then overflow('output buffer size ',buf_size); @y +while (out_buf_length+(p_ptr2-p_ptr1) > buf_size) do buffer_overflow; @z -% We shouldn't try to split a \% combo, as the result is an escaped % at -% end-of-line, and a line beginning with a %, which leads to rest being -% ignored. This is a special case of the general problem that we shouldn't -% split macro invocations either -- however, the best way to avoid that is -% not to split lines at all. -% @x [324] Check whether we're trying to break a \% combo. -% out_buf[end_ptr] := out_buf[max_print_line-1]; {save this character} -% out_buf[max_print_line-1] := comment; {so \TeX\ does the thing right} -% out_buf_length := max_print_line; -% break_ptr := out_buf_length - 1; {the `|-1|' allows for the restoration} -% output_bbl_line; {output what we can,} -% out_buf[max_print_line-1] := out_buf[end_ptr]; {restore this character} -% @y -% if out_buf[max_print_line-1] = comment then {assume \% combo here} -% out_buf_length := max_print_line - 1 -% else -% out_buf_length := max_print_line; -% break_ptr := out_buf_length - 1; {the `|-1|' allows for the restoration} -% out_buf[end_ptr] := out_buf[break_ptr]; {save this character} -% out_buf[break_ptr] := comment; {so \TeX\ does the thing right} -% output_bbl_line; {output what we can,} -% out_buf[break_ptr] := out_buf[end_ptr]; {restore this character} -% @z - @x [328] Add check for fieldinfo[] overflow. field_ptr := cite_ptr*num_fields + fn_info[ex_fn_loc]; @y @@ -1395,6 +1373,15 @@ entry_strs := XTALLOC ((num_ent_strs + 1) * (num_cites + 1) * (ent_str_size + 1) append_char (x_global_strs(str_glb_ptr)(glob_chr_ptr)); @z +@x [335] Bug fix: remove duplicate entry. +build_in('width$ ',6,b_width,n_width); +build_in('while$ ',6,b_while,n_while); +build_in('width$ ',6,b_width,n_width); +@y +build_in('while$ ',6,b_while,n_while); +build_in('width$ ',6,b_width,n_width); +@z + @x [338] s_preamble is dynamically allocated. @!s_preamble : array[bib_number] of str_number; @y |