diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2010-03-22 15:42:34 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2010-03-22 15:42:34 +0000 |
commit | cbc1cd0c0fa2ce847278e354fb17358519ad42d6 (patch) | |
tree | 0f6a717aa9cf05f65ad84e90bfc0ddfa467cea7d /Build/source/texk/web2c | |
parent | ce80ff89bd98a40a048c0420d6eb2886eed84e0e (diff) |
bibtex/bibtex8/bibtexu: bug fix and more updates
git-svn-id: svn://tug.org/texlive/trunk@17528 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c')
-rw-r--r-- | Build/source/texk/web2c/ChangeLog | 6 | ||||
-rw-r--r-- | Build/source/texk/web2c/bibtex.ch | 27 | ||||
-rw-r--r-- | Build/source/texk/web2c/lib/ChangeLog | 4 | ||||
-rw-r--r-- | Build/source/texk/web2c/lib/setupvar.c | 2 | ||||
-rwxr-xr-x | Build/source/texk/web2c/tests/bibtex-mem.test | 8 |
5 files changed, 44 insertions, 3 deletions
diff --git a/Build/source/texk/web2c/ChangeLog b/Build/source/texk/web2c/ChangeLog index 1d000ce83b8..08e5f2dca6c 100644 --- a/Build/source/texk/web2c/ChangeLog +++ b/Build/source/texk/web2c/ChangeLog @@ -1,3 +1,9 @@ +2010-03-19 Peter Breitenlohner <peb@mppmu.mpg.de> + + * bibtex.ch (str_room): Call pool_overflow() as often as needed. + (scan_fn_def): Increase wiz_fn_space as often as needed. + (x_text_prefix): Add missing str_room. + 2010-03-17 Peter Breitenlohner <peb@mppmu.mpg.de> * bibtex.ch (max_cites): Dynamically resize the cite_list, diff --git a/Build/source/texk/web2c/bibtex.ch b/Build/source/texk/web2c/bibtex.ch index 6c0cf265d56..2174f73132c 100644 --- a/Build/source/texk/web2c/bibtex.ch +++ b/Build/source/texk/web2c/bibtex.ch @@ -201,6 +201,12 @@ end. {|min_crossrefs| can be set at runtime now.} @z +@x [still 14] +@!single_fn_space=100; {maximum amount for a single |wiz_defined|-function} +@y +@!single_fn_space=100; {maximum amount for a single |wiz_defined|-function} +@z + @x [still 14] handle long citation strings @!max_ent_ints=3000; {maximum number of |int_entry_var|s (entries $\times$ |int_entry_var|s)} @@ -217,6 +223,12 @@ end. @!MAX_FIELDS=5000; {initial number of fields (entries $\times$ fields, @z +@x [still 14] +@!lit_stk_size=100; {maximum number of literal functions on the stack} +@y +@!lit_stk_size=100; {maximum number of literal functions on the stack} +@z + @x [15] Increase more constants in the web defines. @d hash_size=5000 {must be |>= max_strings| and |>= hash_prime|} @d hash_prime=4253 {a prime number about 85\% of |hash_size| and |>= 128| @@ -456,6 +468,11 @@ BIB_XRETALLOC ('name_sep_char', name_sep_char, ASCII_code, @d log_pr_pool_str(#) == trace_pr_pool_str(#) @z +@x [54] Reallocate str_pool. We may need more than POOL_SIZE. + if (pool_ptr+# > pool_size) then +@y + while (pool_ptr+# > pool_size) do +@z @x [54] Reallocate str_pool. overflow('pool size ',pool_size); @y @@ -1046,7 +1063,7 @@ if (single_ptr + wiz_def_ptr > wiz_fn_space) then overflow('wizard-defined function space ',wiz_fn_space); end; @y -if (single_ptr + wiz_def_ptr > wiz_fn_space) then +while (single_ptr + wiz_def_ptr > wiz_fn_space) do begin BIB_XRETALLOC ('wiz_functions', wiz_functions, hash_ptr2, wiz_fn_space, wiz_fn_space + WIZ_FN_SPACE); @@ -1305,6 +1322,14 @@ str_room(sp_end - sp_ptr); while (sp_ptr < sp_end) do {shift the substring} @z +% Forgot to check for pool overflow here. Triggered by bibtex-mem.test (3). +@x [445] +if (pop_lit2 >= cmd_str_ptr) then {no shifting---merely change pointers} +@y +str_room(sp_brace_level + sp_end - sp_ptr); +if (pop_lit2 >= cmd_str_ptr) then {no shifting---merely change pointers} +@z + % [460] Eliminate unreferenced statement label, because `undefined' is % now a constant expression that is not evaluated at the Web level. If % this label were ever required, it could be replaced by the constant diff --git a/Build/source/texk/web2c/lib/ChangeLog b/Build/source/texk/web2c/lib/ChangeLog index c7f6330451a..ecd6c33876c 100644 --- a/Build/source/texk/web2c/lib/ChangeLog +++ b/Build/source/texk/web2c/lib/ChangeLog @@ -1,3 +1,7 @@ +2010-03-19 Peter Breitenlohner <peb@mppmu.mpg.de> + + * setupvar.c (setupboundvariable): Fix off by one error in msg. + 2010-03-05 Peter Breitenlohner <peb@mppmu.mpg.de> * texmfmp.c (setupboundvariable): Moved from here ... diff --git a/Build/source/texk/web2c/lib/setupvar.c b/Build/source/texk/web2c/lib/setupvar.c index df0d43d79e9..5fb37062d08 100644 --- a/Build/source/texk/web2c/lib/setupvar.c +++ b/Build/source/texk/web2c/lib/setupvar.c @@ -24,7 +24,7 @@ setupboundvariable (integer *var, const_string var_name, integer dflt) fprintf (stderr, "%s: Bad value (%ld) in texmf.cnf for %s, keeping %ld.\n", program_invocation_name, - (long) conf_val, var_name + 1, (long) dflt); + (long) conf_val, var_name, (long) dflt); } else { *var = conf_val; /* We'll make further checks later. */ } diff --git a/Build/source/texk/web2c/tests/bibtex-mem.test b/Build/source/texk/web2c/tests/bibtex-mem.test index 044b1c5888a..b8ff4edcf77 100755 --- a/Build/source/texk/web2c/tests/bibtex-mem.test +++ b/Build/source/texk/web2c/tests/bibtex-mem.test @@ -50,9 +50,15 @@ for t in 1 2 3; do case $t in 1) mk_bib 0 >tests/memtest.bib;; 2) mk_bib 1 >>tests/memtest.bib;; - 3) exit 0;; # requires larger constatnts + 3) exit 0;; # requires larger constants esac +# memtest3 requires: +# SINGLE_FN_SPACE 200 (100) +# ENT_STR_SIZE 2000 (250) +# GLOB_STR_SIZE 2000 (1000) +# MAX_GLOB_STRS 50 (10) + echo "Running memtest$t ..." TEXMFCNF=$srcdir/../kpathsea \ |