summaryrefslogtreecommitdiff
path: root/Build/source/texk
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2010-03-05 14:27:29 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2010-03-05 14:27:29 +0000
commit9a3a1f01b7bac115aa536b3b6062ab703b108c31 (patch)
tree0722221f2ec49283b46ee65bc20153a05c86455f /Build/source/texk
parentc1c0af52552e4b0c8a24acb36de9ca4705468da5 (diff)
gftype: dynamic array allocation
git-svn-id: svn://tug.org/texlive/trunk@17332 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk')
-rw-r--r--Build/source/texk/kpathsea/ChangeLog5
-rw-r--r--Build/source/texk/kpathsea/texmf.cnf5
-rw-r--r--Build/source/texk/web2c/ChangeLog10
-rw-r--r--Build/source/texk/web2c/cpascal.h2
-rw-r--r--Build/source/texk/web2c/gftype.ch108
-rw-r--r--Build/source/texk/web2c/lib/ChangeLog7
-rw-r--r--Build/source/texk/web2c/lib/Makefile.am3
-rw-r--r--Build/source/texk/web2c/lib/Makefile.in7
-rw-r--r--Build/source/texk/web2c/lib/lib.h4
-rw-r--r--Build/source/texk/web2c/lib/setupvar.c33
-rw-r--r--Build/source/texk/web2c/lib/texmfmp.c25
-rw-r--r--Build/source/texk/web2c/texmfmp.h3
-rw-r--r--Build/source/texk/web2c/triptrap/mftrap.diffs69
-rw-r--r--Build/source/texk/web2c/triptrap/texmf.cnf5
-rw-r--r--Build/source/texk/web2c/web2c/ChangeLog6
-rw-r--r--Build/source/texk/web2c/web2c/common.defines3
-rw-r--r--Build/source/texk/web2c/web2c/texmf.defines1
17 files changed, 220 insertions, 76 deletions
diff --git a/Build/source/texk/kpathsea/ChangeLog b/Build/source/texk/kpathsea/ChangeLog
index 5534b6a2826..847c52ec1b2 100644
--- a/Build/source/texk/kpathsea/ChangeLog
+++ b/Build/source/texk/kpathsea/ChangeLog
@@ -1,3 +1,8 @@
+2010-03-05 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * texmf.cnf (line_length, max_rows, max_cols): GFtype parameters
+ settable at runtime (used to be fixed values in gftype.ch).
+
2010-03-03 Peter Breitenlohner <peb@mppmu.mpg.de>
* texmf.cnf (screen_width, screen_depth): Increase Metafont
diff --git a/Build/source/texk/kpathsea/texmf.cnf b/Build/source/texk/kpathsea/texmf.cnf
index d5d057b3423..501640a0da8 100644
--- a/Build/source/texk/kpathsea/texmf.cnf
+++ b/Build/source/texk/kpathsea/texmf.cnf
@@ -690,3 +690,8 @@ max_print_line = 79
% Metafont only.
screen_width = 1664
screen_depth = 1200
+
+% GFtype only.
+line_length = 500
+max_rows = 8191
+max_cols = 8191 \ No newline at end of file
diff --git a/Build/source/texk/web2c/ChangeLog b/Build/source/texk/web2c/ChangeLog
index 8e964934084..d44287b07bd 100644
--- a/Build/source/texk/web2c/ChangeLog
+++ b/Build/source/texk/web2c/ChangeLog
@@ -1,3 +1,13 @@
+2010-03-05 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * cpascal.h (xcallocarray): Added.
+ * texmfmp.h (setupboundvariable): Moved to lib/lib.h from here.
+ * gftype.ch: Dynamically allocated pixel image array.
+ Parameters settable at runtime; move the previous increased
+ value (line_length=500) into texmf.cnf.
+ * triptrap/texmf.cnf: GFtype parameters for trap test.
+ * triptrap/mftrap.diffs: Updated.
+
2010-03-04 Peter Breitenlohner <peb@mppmu.mpg.de>
* Makefile.am (triptrap): New target to run TRIP and TRAP tests
diff --git a/Build/source/texk/web2c/cpascal.h b/Build/source/texk/web2c/cpascal.h
index 9d18fbc58cc..b1e96ac5473 100644
--- a/Build/source/texk/web2c/cpascal.h
+++ b/Build/source/texk/web2c/cpascal.h
@@ -159,6 +159,8 @@ typedef unsigned char *pointertobyte;
#define xmallocarray(type,size) ((type*)xmalloc((size+1)*sizeof(type)))
/* Same for reallocating an array. */
#define xreallocarray(ptr,type,size) ((type*)xrealloc(ptr,(size+1)*sizeof(type)))
+/* Allocate and clear an array of a given type. Add 1 to nmemb and size. */
+#define xcallocarray(type,nmemb,size) ((type*)xcalloc(nmemb+1,(size+1)*sizeof(type)))
/* BibTeX needs this to dynamically reallocate arrays. Too bad we can't
rely on stringification, or we could avoid the ARRAY_NAME arg.
diff --git a/Build/source/texk/web2c/gftype.ch b/Build/source/texk/web2c/gftype.ch
index 27c3167a86a..3ee9cb763eb 100644
--- a/Build/source/texk/web2c/gftype.ch
+++ b/Build/source/texk/web2c/gftype.ch
@@ -48,6 +48,8 @@ var @<Globals in the outer block@>@/
@<Define |parse_arguments|@>
procedure initialize; {this procedure gets things started properly}
var i:integer; {loop index for initializations}
+ @!bound_default:integer; {temporary for setup}
+ @!bound_name:const_cstring; {temporary for setup}
begin
kpse_set_progname (argv[0]);
kpse_init_prog ('GFTYPE', 0, nil, nil);
@@ -65,6 +67,21 @@ begin
@y
@ This module is deleted, because it is only useful for
a non-local goto, which we can't use in C.
+
+Instead, we define parameters settable at runtime.
+
+@<Glob...@>=
+@!line_length:integer; {\\{xxx} strings will not produce lines longer than this}
+@!max_rows:integer; {largest possible vertical extent of pixel image array}
+@!max_cols:integer; {largest possible horizontal extent of pixel image array}
+@!max_row:integer; {current vertical extent of pixel image array}
+@!max_col:integer; {current horizontal extent of pixel image array}
+@z
+
+@x [5] Parameters settable at runtime.
+@ Four parameters can be changed at compile time to extend or
+@y
+@ Three parameters can be changed at run time to extend or
@z
@x [5] Remove |terminal_line_length|, increase others.
@@ -75,10 +92,39 @@ a non-local goto, which we can't use in C.
@!max_row=79; {vertical extent of pixel image array}
@!max_col=79; {horizontal extent of pixel image array}
@y
+@d def_line_length = 500 {default |line_length| value}
+@d max_image = 8191 {largest possible extent of \MF's pixel image array}
+
@<Constants...@>=
-@!line_length=500; {\\{xxx} strings will not produce lines longer than this}
-@!max_row=500; {vertical extent of pixel image array}
-@!max_col=500; {horizontal extent of pixel image array}
+@!inf_line_length=20;
+@!sup_line_length=1023;
+@z
+
+@x [6] Parameters settable at runtime, dynamic allocation.
+@d negate(#) == #:=-# {change the sign of a variable}
+@y
+@d negate(#) == #:=-# {change the sign of a variable}
+@#
+@d const_chk(#) == begin if # < inf@&# then # := inf@&# else
+ if # > sup@&# then # := sup@&# end
+{|setup_bound_var| stuff duplicated in \.{tex.ch}.}
+@d setup_bound_var(#) == bound_default := #; setup_bound_var_end
+@d setup_bound_var_end(#) == bound_name := #; setup_bound_var_end_end
+@d setup_bound_var_end_end(#) ==
+ setup_bound_variable (address_of (#), bound_name, bound_default);
+
+@<Set init...@>=
+{See comments in \.{tex.ch} for why the name has to be duplicated.}
+setup_bound_var (def_line_length)('line_length')(line_length);
+ {\\{xxx} strings will not produce lines longer than this}
+setup_bound_var (max_image)('max_rows')(max_rows);
+ {largest allowed vertical extent of pixel image array}
+setup_bound_var (max_image)('max_cols')(max_cols);
+ {largest allowed horizontal extent of pixel image array}
+const_chk (line_length);
+if max_rows > max_image then max_rows := max_image;
+if max_cols > max_image then max_cols := max_image;
+image_array := nil;
@z
@x [7] Remove jump_out, and make `abort' end with a newline.
@@ -233,6 +279,62 @@ we print the options so that the user
can see what \.{GFtype} thought was specified.
@z
+@x [37] Dynamic allocation.
+@d image==image_array[m,n]
+
+@<Glob...@>=
+@!image_array: packed array [0..max_col,0..max_row] of pixel;
+@y
+@d image==image_array[m + (max_col + 1) * n]
+
+@<Glob...@>=
+@!image_array:^pixel;
+@z
+
+@x [38] Dynamic allocation.
+begin max_subcol:=max_m_stated-min_m_stated-1;
+if max_subcol>max_col then max_subcol:=max_col;
+max_subrow:=max_n_stated-min_n_stated;
+if max_subrow>max_row then max_subrow:=max_row;
+n:=0;
+while n<=max_subrow do
+ begin m:=0;
+ while m<=max_subcol do
+ begin image:=white; incr(m);
+ end;
+ incr(n);
+ end;
+end
+@y
+begin max_col:=max_m_stated-min_m_stated-1;
+if max_col>max_cols then max_col:=max_cols;
+max_row:=max_n_stated-min_n_stated;
+if max_row>max_rows then max_row:=max_rows;
+if (max_row >= 0) and (max_col >= 0) then
+ image_array := xcalloc_array (pixel, max_col, max_row);
+end
+@z
+
+@x [39] Dynamic allocation.
+@ @<Glob...@>=
+@!max_subrow,@!max_subcol:integer; {size of current subarray of interest}
+@y
+@ With |image_array| allocated dynamically these are the same.
+
+@d max_subrow == max_row {vertical size of current subarray of interest}
+@d max_subcol == max_col {horizontal size of current subarray of interest}
+@z
+
+@x [40] Dynamic allocation.
+else print_ln('(The character is entirely blank.)');
+@y
+else print_ln('(The character is entirely blank.)');
+if (max_row >= 0) and (max_col >= 0) then
+ begin libc_free (image_array);
+ image_array := nil;
+ end;
+@z
+
@x [45] Change chr to xchr (should be changed in the web source).
print(chr(ord('0')+(s div unity))); s:=10*(s mod unity); delta:=delta*10;
@y
diff --git a/Build/source/texk/web2c/lib/ChangeLog b/Build/source/texk/web2c/lib/ChangeLog
index 930d8218d8e..c7f6330451a 100644
--- a/Build/source/texk/web2c/lib/ChangeLog
+++ b/Build/source/texk/web2c/lib/ChangeLog
@@ -1,3 +1,10 @@
+2010-03-05 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * texmfmp.c (setupboundvariable): Moved from here ...
+ * setupvar.c (new): ... to here for use in non-engine programs.
+ * lib.h (setupboundvariable): Moved from ../texmfmp.h to here.
+ * Makefile.am (lib_a_SOURCES): Added setupvar.c.
+
2010-02-24 Peter Breitenlohner <peb@mppmu.mpg.de>
* texmfmp.c (IPC) [WIN32]: #include <winsock2.h> instead of
diff --git a/Build/source/texk/web2c/lib/Makefile.am b/Build/source/texk/web2c/lib/Makefile.am
index f660f62e55d..2257fd1ad13 100644
--- a/Build/source/texk/web2c/lib/Makefile.am
+++ b/Build/source/texk/web2c/lib/Makefile.am
@@ -1,6 +1,6 @@
## Makefile.am for the TeX Live subdirectory texk/web2c/lib/
##
-## Copyright (C) 2009 Peter Breitenlohner <tex-live@tug.org>
+## Copyright (C) 2009, 2010 Peter Breitenlohner <tex-live@tug.org>
## You may freely use, modify and/or distribute this file.
##
INCLUDES = -I$(top_builddir)/.. -I$(top_srcdir) $(KPATHSEA_INCLUDES)
@@ -25,6 +25,7 @@ lib_a_SOURCES = \
main.c \
openclose.c \
printversion.c \
+ setupvar.c \
uexit.c \
usage.c \
version.c \
diff --git a/Build/source/texk/web2c/lib/Makefile.in b/Build/source/texk/web2c/lib/Makefile.in
index f2ed27b07d1..4d9d1d52781 100644
--- a/Build/source/texk/web2c/lib/Makefile.in
+++ b/Build/source/texk/web2c/lib/Makefile.in
@@ -80,8 +80,9 @@ lib_a_LIBADD =
am_lib_a_OBJECTS = basechsuffix.$(OBJEXT) chartostring.$(OBJEXT) \
coredump.$(OBJEXT) eofeoln.$(OBJEXT) fprintreal.$(OBJEXT) \
inputint.$(OBJEXT) input2int.$(OBJEXT) main.$(OBJEXT) \
- openclose.$(OBJEXT) printversion.$(OBJEXT) uexit.$(OBJEXT) \
- usage.$(OBJEXT) version.$(OBJEXT) zround.$(OBJEXT)
+ openclose.$(OBJEXT) printversion.$(OBJEXT) setupvar.$(OBJEXT) \
+ uexit.$(OBJEXT) usage.$(OBJEXT) version.$(OBJEXT) \
+ zround.$(OBJEXT)
lib_a_OBJECTS = $(am_lib_a_OBJECTS)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
@@ -302,6 +303,7 @@ lib_a_SOURCES = \
main.c \
openclose.c \
printversion.c \
+ setupvar.c \
uexit.c \
usage.c \
version.c \
@@ -366,6 +368,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openclose.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printversion.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setupvar.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uexit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usage.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Po@am__quote@
diff --git a/Build/source/texk/web2c/lib/lib.h b/Build/source/texk/web2c/lib/lib.h
index 4c8bab85a68..a4ff3a7e8c4 100644
--- a/Build/source/texk/web2c/lib/lib.h
+++ b/Build/source/texk/web2c/lib/lib.h
@@ -52,6 +52,10 @@ extern void printversionandexit (const_string, const_string, const_string, char*
extern const char *ptexbanner;
#endif
+/* setupvar.c */
+/* Set an array size from texmf.cnf. */
+extern void setupboundvariable (integer *, const_string, integer);
+
/* version.c */
extern const char *versionstring;
diff --git a/Build/source/texk/web2c/lib/setupvar.c b/Build/source/texk/web2c/lib/setupvar.c
new file mode 100644
index 00000000000..df0d43d79e9
--- /dev/null
+++ b/Build/source/texk/web2c/lib/setupvar.c
@@ -0,0 +1,33 @@
+/* setupvar.c: Look up a value in texmf.cnf or use default.
+
+ Adapted in 2010 by Peter Breitenlohner. Public domain.
+ Written in 1995 by Karl Berry. Public domain. */
+
+#include "config.h"
+#include "lib.h"
+#include <kpathsea/variable.h>
+
+/* Look up VAR_NAME in texmf.cnf; assign either the value found there or
+ DFLT to *VAR. */
+
+void
+setupboundvariable (integer *var, const_string var_name, integer dflt)
+{
+ string expansion = kpse_var_value (var_name);
+ *var = dflt;
+
+ if (expansion) {
+ integer conf_val = atoi (expansion);
+ /* It's ok if the cnf file specifies 0 for extra_mem_{top,bot}, etc.
+ But negative numbers are always wrong. */
+ if (conf_val < 0 || (conf_val == 0 && dflt > 0)) {
+ 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);
+ } else {
+ *var = conf_val; /* We'll make further checks later. */
+ }
+ free (expansion);
+ }
+}
diff --git a/Build/source/texk/web2c/lib/texmfmp.c b/Build/source/texk/web2c/lib/texmfmp.c
index 13f60297a48..a1874356695 100644
--- a/Build/source/texk/web2c/lib/texmfmp.c
+++ b/Build/source/texk/web2c/lib/texmfmp.c
@@ -2215,31 +2215,6 @@ do_undump (char *p, int item_size, int nitems, FILE *in_file)
#endif
}
-/* Look up VAR_NAME in texmf.cnf; assign either the value found there or
- DFLT to *VAR. */
-
-void
-setupboundvariable (integer *var, const_string var_name, integer dflt)
-{
- string expansion = kpse_var_value (var_name);
- *var = dflt;
-
- if (expansion) {
- integer conf_val = atoi (expansion);
- /* It's ok if the cnf file specifies 0 for extra_mem_{top,bot}, etc.
- But negative numbers are always wrong. */
- if (conf_val < 0 || (conf_val == 0 && dflt > 0)) {
- 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);
- } else {
- *var = conf_val; /* We'll make further checks later. */
- }
- free (expansion);
- }
-}
-
/* FIXME -- some (most?) of this can/should be moved to the Pascal/WEB side. */
#if defined(TeX) || defined(MF)
#if !defined(pdfTeX) && !defined(luaTeX)
diff --git a/Build/source/texk/web2c/texmfmp.h b/Build/source/texk/web2c/texmfmp.h
index 2e1fcb08c22..5fc2ab6ae1e 100644
--- a/Build/source/texk/web2c/texmfmp.h
+++ b/Build/source/texk/web2c/texmfmp.h
@@ -201,9 +201,6 @@ extern void topenin (void);
to the *coerce.h files. */
/* extern void calledit (); */
-/* Set an array size from texmf.cnf. */
-extern void setupboundvariable (integer *, const_string, integer);
-
/* These defines reroute the file i/o calls to the new pipe-enabled
functions in texmfmp.c*/
diff --git a/Build/source/texk/web2c/triptrap/mftrap.diffs b/Build/source/texk/web2c/triptrap/mftrap.diffs
index f97e36c58bf..4eb1b744e35 100644
--- a/Build/source/texk/web2c/triptrap/mftrap.diffs
+++ b/Build/source/texk/web2c/triptrap/mftrap.diffs
@@ -1,19 +1,13 @@
-cd /home/texlive/karl/Build/source/Work/texk/web2c/
-make trap
-rm -f trap.mf trap.base
-rm -f mftrapin.fot mftrapin.log
-rm -f mftrap.fot mftrap.log mftrap.tfm
-rm -f mftrap.pl trap.72270gf trap.typ
->>> See ../../../texk/web2c/triptrap/mftrap.diffs for example of acceptable diffs.
-ln -s ../../../texk/web2c/triptrap/trap.mf . # get same filename in log
-/bin/sh -c 'TEXMFCNF=../../../texk/web2c/triptrap ./mf --progname=inimf <../../../texk/web2c/triptrap/mftrap1.in >mftrapin.fot'
-make: [trap] Error 1 (ignored)
-mv trap.log mftrapin.log
-diff ../../../texk/web2c/triptrap/mftrapin.log mftrapin.log
+>>> Running TRAP test for Metafont.
+>>> See SRCDIR/triptrap/mftrap.diffs for example of acceptable diffs.
++ ln -s SRCDIR/triptrap/trap.mf .
++ ./mf --progname=inimf
++ mv trap.log mftrapin.log
++ diff SRCDIR/triptrap/mftrapin.log mftrapin.log
1c1
< This is METAFONT, Version 2.718281 (INIMF) 15 MAR 2008 02:23
---
-> This is METAFONT, Version 2.718281 (Web2C 7.5.6) (INIMF) 25 APR 2008 19:08
+> This is METAFONT, Version 2.718281 (TeX Live 2010/dev) (INIMF) 5 MAR 2010 14:21
150c150
< String usage 26&83 (891&11438 still untouched)
---
@@ -22,49 +16,42 @@ diff ../../../texk/web2c/triptrap/mftrapin.log mftrapin.log
< (preloaded base=trap 2008.3.15)
< 1117 strings of total length 20614
---
-> (base=trap 2008.4.25)
-> 1122 strings of total length 20566
-make: [trap] Error 1 (ignored)
-/bin/sh -c 'TEXMFCNF=../../../texk/web2c/triptrap ./mf --progname=inimf <../../../texk/web2c/triptrap/mftrap2.in >mftrap.fot'
-make: [trap] Error 1 (ignored)
-mv trap.log mftrap.log
-mv trap.tfm mftrap.tfm
-diff ../../../texk/web2c/triptrap/mftrap.fot mftrap.fot
+> (base=trap 2010.3.5)
+> 1122 strings of total length 20565
++ ./mf --progname=inimf
++ mv trap.log mftrap.log
++ mv trap.tfm mftrap.tfm
++ diff SRCDIR/triptrap/mftrap.fot mftrap.fot
1,3c1,2
< This is METAFONT, Version 2.718281 (INIMF)
< ** &trap trap
< (trap.mf
---
-> This is METAFONT, Version 2.718281 (Web2C 7.5.6) (INIMF)
+> This is METAFONT, Version 2.718281 (TeX Live 2010/dev) (INIMF)
> **(trap.mf
39c38
< String usage 41&161 (815&7634 still untouched)
---
-> String usage 50&202 (6301&75641 still untouched)
-make: [trap] Error 1 (ignored)
-diff ../../../texk/web2c/triptrap/mftrap.log mftrap.log
+> String usage 50&202 (6301&75642 still untouched)
++ diff SRCDIR/triptrap/mftrap.log mftrap.log
1c1
< This is METAFONT, Version 2.718281 (preloaded base=trap 2008.3.15) 15 MAR 2008 02:23
---
-> This is METAFONT, Version 2.718281 (Web2C 7.5.6) (base=trap 2008.4.25) 25 APR 2008 19:08
+> This is METAFONT, Version 2.718281 (TeX Live 2010/dev) (base=trap 2010.3.5) 5 MAR 2010 14:21
1825c1825
< String usage 24&92 (858&11309 still untouched)
---
-> String usage 30&119 (6347&79309 still untouched)
-2738c2738
-< Calling BLANKRECTANGLE(100,100,0,1)
----
-> Calling BLANKRECTANGLE(1664,1664,0,1)
+> String usage 30&119 (6347&79310 still untouched)
4235c4235
< String usage 41&161 (815&7634 still untouched)
---
-> String usage 50&202 (6301&75641 still untouched)
+> String usage 50&202 (6301&75642 still untouched)
4251,4252c4251,4252
< 68 strings out of 883
< 3752 string characters out of 11386
---
> 77 strings out of 6378
-> 3793 string characters out of 79434
+> 3793 string characters out of 79435
4254,4255c4254,4255
< 289 symbolic tokens out of 2100
< 8i,43n,14r,8p,167b stack positions out of 30i,100n,300r,150p,500b
@@ -75,17 +62,17 @@ diff ../../../texk/web2c/triptrap/mftrap.log mftrap.log
< out of 256w,16h,16d,64i,5000l,500k,256e,50p)
---
> out of 256w,16h,16d,64i,15000l,2500k,256e,60p)
-make: [trap] Error 1 (ignored)
-./tftopl ./mftrap.tfm mftrap.pl
-diff ../../../texk/web2c/triptrap/mftrap.pl mftrap.pl
-/bin/sh -c 'TEXMFCNF=../../../texk/web2c/triptrap ./gftype -m -i ./trap.72270gf >trap.typ'
-diff ../../../texk/web2c/triptrap/trap.typ trap.typ
++ ./tftopl ./mftrap.tfm mftrap.pl
++ diff SRCDIR/triptrap/mftrap.pl mftrap.pl
++ ./gftype -m -i ./trap.72270gf
++ diff SRCDIR/triptrap/trap.typ trap.typ
1c1
< This is GFtype, Version 3.1
---
-> This is GFtype, Version 3.1 (Web2C 7.5.6)
+> This is GFtype, Version 3.1 (TeX Live 2010/dev)
3c3
< ' METAFONT output 2008.03.15:0223'
---
-> ' METAFONT output 2008.04.25:1908'
-make: [trap] Error 1 (ignored)
+> ' METAFONT output 2010.03.05:1421'
++ exit 0
+PASS: trap.test
diff --git a/Build/source/texk/web2c/triptrap/texmf.cnf b/Build/source/texk/web2c/triptrap/texmf.cnf
index 348bda03c47..6713c41d8b3 100644
--- a/Build/source/texk/web2c/triptrap/texmf.cnf
+++ b/Build/source/texk/web2c/triptrap/texmf.cnf
@@ -86,3 +86,8 @@ TEXPOOL = .
MFPOOL = .
% mp.pool:
MPPOOL = .
+
+% GFtype only.
+line_length = 79
+max_rows = 79
+max_cols = 79
diff --git a/Build/source/texk/web2c/web2c/ChangeLog b/Build/source/texk/web2c/web2c/ChangeLog
index b7dd24484ae..97149d714aa 100644
--- a/Build/source/texk/web2c/web2c/ChangeLog
+++ b/Build/source/texk/web2c/web2c/ChangeLog
@@ -1,3 +1,9 @@
+2010-03-05 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * texmf.defines: Moved setupboundvariable from here ...
+ * common.defines: ... to here for use in non-engine programs.
+ * common.defines (xcalloc, xcallocarray): Declare these.
+
2010-02-18 Peter Breitenlohner <peb@mppmu.mpg.de>
* common.defines (makesuffix, removesuffix): Remove these.
diff --git a/Build/source/texk/web2c/web2c/common.defines b/Build/source/texk/web2c/web2c/common.defines
index 9de4db3499b..e13a2fa525f 100644
--- a/Build/source/texk/web2c/web2c/common.defines
+++ b/Build/source/texk/web2c/web2c/common.defines
@@ -141,6 +141,8 @@
@define function strlen ();
@define function strtol ();
@define function trunc ();
+@define function xcalloc ();
+@define function xcallocarray ();
@define function xftell ();
@define function xmalloc ();
@define function xmallocarray ();
@@ -177,6 +179,7 @@
@define procedure rewrite ();
@define procedure rewritebin ();
@define procedure setpaths ();
+@define procedure setupboundvariable ();
@define procedure strcat ();
@define procedure strcpy ();
@define procedure usage ();
diff --git a/Build/source/texk/web2c/web2c/texmf.defines b/Build/source/texk/web2c/web2c/texmf.defines
index 52af0e742af..1d846976b88 100644
--- a/Build/source/texk/web2c/web2c/texmf.defines
+++ b/Build/source/texk/web2c/web2c/texmf.defines
@@ -57,7 +57,6 @@
@define procedure put4bytes ();
@define procedure readtcxfile;
@define procedure remembersourceinfo ();
-@define procedure setupboundvariable ();
@define procedure topenin;
@define procedure undumphh ();
@define procedure undumpint ();