summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2010-03-22 15:42:34 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2010-03-22 15:42:34 +0000
commitcbc1cd0c0fa2ce847278e354fb17358519ad42d6 (patch)
tree0f6a717aa9cf05f65ad84e90bfc0ddfa467cea7d /Build/source/texk/web2c
parentce80ff89bd98a40a048c0420d6eb2886eed84e0e (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/ChangeLog6
-rw-r--r--Build/source/texk/web2c/bibtex.ch27
-rw-r--r--Build/source/texk/web2c/lib/ChangeLog4
-rw-r--r--Build/source/texk/web2c/lib/setupvar.c2
-rwxr-xr-xBuild/source/texk/web2c/tests/bibtex-mem.test8
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 \