summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTaco Hoekwater <taco@elvenkind.com>2009-05-27 13:36:42 +0000
committerTaco Hoekwater <taco@elvenkind.com>2009-05-27 13:36:42 +0000
commita26d67f7f3f19cd6cbc3d16a94bc75a4513f09df (patch)
tree3cc0fc448d632b6a70ef13c799bd30759a132f01
parent548c801baf05f4a158b42c8de28378a2a44bfa89 (diff)
Here are the sources for metapost 1.201
git-svn-id: svn://tug.org/texlive/trunk@13493 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/web2c/man/dvitomp.man14
-rw-r--r--Build/source/texk/web2c/man/mpost.man413
-rw-r--r--Build/source/texk/web2c/mplibdir/avl.c1
-rw-r--r--Build/source/texk/web2c/mplibdir/lmplib.c2
-rw-r--r--Build/source/texk/web2c/mplibdir/memio.w2
-rw-r--r--Build/source/texk/web2c/mplibdir/mp.w87
-rw-r--r--Build/source/texk/web2c/mplibdir/mpost.w223
-rw-r--r--Build/source/texk/web2c/mplibdir/mpxout.w62
-rw-r--r--Build/source/texk/web2c/mplibdir/psout.w8
-rw-r--r--Build/source/texk/web2c/mplibdir/svgout.w2
-rw-r--r--Build/source/texk/web2c/mplibdir/tfmin.w2
-rw-r--r--Build/source/texk/web2c/triptrap/mptrapin.log76
-rw-r--r--Build/source/texk/web2c/triptrap/mtrap.012
-rw-r--r--Build/source/texk/web2c/triptrap/mtrap.116
-rw-r--r--Build/source/texk/web2c/triptrap/mtrap.log382
15 files changed, 568 insertions, 734 deletions
diff --git a/Build/source/texk/web2c/man/dvitomp.man b/Build/source/texk/web2c/man/dvitomp.man
index f867635e954..f1c9c9a5432 100644
--- a/Build/source/texk/web2c/man/dvitomp.man
+++ b/Build/source/texk/web2c/man/dvitomp.man
@@ -1,9 +1,17 @@
-.TH DVITOMP 1 "30 October 1999" "Web2C @VERSION@"
+.TH DVITOMP 1 "27 May 2009" "dvitomp 1.201"
.\" man page by Jim Van Zandt <jrv@vanzandt.mv.com> -*- nroff -*-
.SH NAME
dvitomp \- convert a TeX DVI file to a MetaPost MPXFILE
.SH SYNOPSIS
-\fBdvitomp\fP [\fIoptions\fP] \fIdvifile\fP[.dvi] [\fImpxfile\fP[.mpx]]
+.B dvitomp
+.RI [ options ]
+.IR dvifile [.dvi]
+.RI [ mpxfile [.mpx]]
+.PP
+.B mpost
+.B --dvitomp
+.IR dvifile [.dvi]
+.RI [ mpxfile [.mpx]]
.SH DESCRIPTION
\fBdvitomp\fP translates the given \fIdvifile\fP to a MetaPost
MPXFILE. The default \fImpxfile\fP is the basename of \fIdvifile\fP
@@ -14,4 +22,4 @@ write usage summary and exit.
.IP \fB-version\fP
output version information and exit.
.SH BUGS
-Email bug reports to tex-k@mail.tug.org.
+Email bug reports to metapost@tug.org.
diff --git a/Build/source/texk/web2c/man/mpost.man b/Build/source/texk/web2c/man/mpost.man
index a61c166f7f7..59df395d0dd 100644
--- a/Build/source/texk/web2c/man/mpost.man
+++ b/Build/source/texk/web2c/man/mpost.man
@@ -1,4 +1,4 @@
-.TH MPOST 1 "7 January 2007" "MetaPost 0.993" "Web2C @VERSION@"
+.TH MPOST 1 "27 May 2009" "MetaPost 1.201"
.\"=====================================================================
.if n .ds MP MetaPost
.if t .ds MP MetaPost
@@ -19,49 +19,40 @@
.if t .ds WB W\s-2EB\s0
.\"=====================================================================
.SH NAME
-mpost, inimpost, virmpost \- MetaPost, a system for drawing pictures
+mpost \- MetaPost, a system for creating graphics
.SH SYNOPSIS
.B mpost
.RI [ options ]
.RI [ commands ]
+.PP
+.B mpost
+.B --dvitomp
+.IR dvifile [.dvi]
+.RI [ mpxfile [.mpx]]
+
.\"=====================================================================
.SH DESCRIPTION
-\*(MP interprets the \*(MP language and produces PostScript
-pictures. The \*(MP language is similar to Knuth's \*(MF
-with additional features for including
+\*(MP interprets the \*(MP language and produces PostScript (EPS)
+or Scalable Vector Graphics (SVG) pictures. The \*(MP language is similar
+to Knuth's \*(MF with additional features for including
.BR tex (1)
or
.BR troff (1)
commands and accessing features of PostScript not found in \*(MF.
.PP
Like \*(TX and \*(MF, \*(MP is normally used with a large body of
-precompiled macros. This version of \*(MP looks at its command line
-to see what name it was called under. Both
-.B inimpost
-and
-.B virmpost
-are symlinks to the
-.B mpost
-executable. When called as
-.BR inimpost
-(or when the
-.B -ini
-option is given) it can be used to precompile macros into a
+precompiled macros. When the
+.B --ini
+option is given, it can be used to precompile macros into a
.I .mem
-file. When called as
-.B virmpost
-it will use the
-.I plain
-mem. When called under any other name, \*(MP will use that name as
+file. When called without that option, \*(MP will use its executable name as
the name of the mem to use. For example, when called as
.B mpost
the
.I mpost
mem is used, which is identical to the
.I plain
-mem. Other mems than
-.I plain
-are rarely used.
+mem.
.PP
The
.I commands
@@ -69,12 +60,7 @@ given on the command line to the \*(MP program are passed to it as the
first input line. (But it is often easier to type extended arguments
as the first input line, since UNIX shells tend to gobble up or
misinterpret \*(MP's favorite symbols, like semicolons, unless you
-quote them.) The first line should begin with a filename, a
-.RI \e controlsequence ,
-or a
-.IR &memname .
-.PP
-The normal usage is to say
+quote them.) The normal usage is to say
.I mpost figs
to process the file
.IR figs.mp .
@@ -88,308 +74,24 @@ The default extension,
.IR .mp ,
can be overridden by specifying an extension explicitly.
.PP
-There is normally one output file for each picture generated,
-and the output files are named \fIjobname\fP\fB\^.\^\fP\fInnn\fP,
-where \fInnn\fP
-is a number passed to the
-.I beginfig
-macro. The output file name
-can also be \fIjobname\fP\fB\^.\^\fP\fIps\fP
-if this number is negative.
-.PP
-The output files can be used as figures in a \*(TX document by including
-.ce
-.BI "\especial{psfile=" jobname.nnn }
-in the \*(TX document. Alternatively, one can
-.B \einput epsf.tex
-and then use the macro
-.ce
-.BI "\eepsfbox{" jobname.nnn }
-to produce a box of the appropriate size containing the figure.
-.TP
-.BI btex " TeX commands " etex
-This causes
-.I mpost
-to generate a \*(MP picture expression that corresponds to the
-\*(TX commands. If the \*(TX commands generate
-more than one line of text, it must be in a
-.I \evbox
-or a minipage environment.
-.TP
-.BI verbatimtex " TeX commands " etex
-This is ignored by
-.I mpost
-except that the \*(TX commands are passed on to \*(TX. When using \*(LX
-instead of \*(TX the input file must start with a
-.I verbatimtex
-block that gives the
-.I \edocumentstyle
-and
-.I "\ebegin{document}"
-commands. You can use the `%&' construct in the first verbatimtex
-block to ensure that the correct \*(TX format is used to process the
-commands.
-.PP
-Since most \*(TX fonts have to be downloaded as bitmaps, the
-.I btex
-feature works best when the output of
-.I mpost
-is to be included in a \*(TX document so that
-.BR dvips (1)
-can download the fonts. For self-contained PostScript output that can be
-used directly or included in a
-.I troff
-document, start your \*(MP input file with the command
-.I "prologues:=1"
-and stick to standard PostScript fonts. \*(TX and \*(MP use the names in the
-third column of the file
-.IR trfonts.map ,
-which can be found in the directories with support files for \*(MP.
-.PP
-\*(MP output can be included in a
-.I troff
-document via the
-.I "-m pictures"
-macro package. In this case
-.I mpost
-should be invoked with the
-.B -T
-flag so that the commands between
-.I btex
-and
-.I etex
-or between
-.I verbatimtex
-and
-.I etex
-are interpreted as
-.I troff
-instead of \*(TX. (This automatically sets
-.I "prologues:=1"
-).
-.\"=====================================================================
-.SH OPTIONS
-This version of \*(MP understands the following command line options.
-.TP
-.B -file-line-error
-.rb
-Print error messages in the form
-.I file:line:error
-which is similar to the way many compilers format them.
-.TP
-.B -no-file-line-error
-.rb
-Disable printing error messages in the
-.I file:line:error
-style.
-.TP
-.B -file-line-error-style
-.rb
-This is the old name of the
-.B -file-line-error
-option.
-.TP
-.B -halt-on-error
-.rb
-Exit with an error code when an error is encountered during processing.
-.TP
-.B -help
-.rb
-Print help message and exit.
-.TP
-.B -ini
-.rb
-Be
-.BR inimpost ,
-for dumping bases; this is implicitly true if the program is called
-as
-.BR inimpost .
-.TP
-.BI -interaction \ mode
-.rb
-Sets the interaction mode. The mode can be one of
-.IR batchmode ,
-.IR nonstopmode ,
-.IR scrollmode ,
-and
-.IR errorstopmode .
-The meaning of these modes is the same as that of the corresponding
-commands.
-.TP
-.BI -jobname \ name
-.rb
-Use
-.I name
-for the job name, instead of deriving it from the name of the input file.
-.TP
-.BI -kpathsea-debug \ bitmask
-.rb
-Sets path searching debugging flags according to the bitmask. See the
-.I Kpathsea
-manual for details.
-.TP
-.BI -mem \ mem
-.rb
-Use
-.I mem
-as the name of the mem to be used, instead of the name by which
-\*(MP was called or a
-.I %&
-line.
-.TP
-.BI -output-directory \ directory
-.rb Write output files in
-.I directory
-instead of the current directory. Look up input files in
-.I directory
-first, the along the normal search path.
-.TP
-.B -parse-first-line
-.rb
-If the first line of the main input file begins with
-.I %&
-parse it to look for a dump name or a
-.B -translate-file
-option.
-.TP
-.B -no-parse-first-line
-.rb
-Disable parsing of the first line of the main input file.
-.TP
-.BI -progname \ name
-.rb
-Pretend to be program
-.IR name .
-This affects both the format used and the search paths.
-.TP
-.B -recorder
-.rb
-Enable the filename recorder. This leaves a trace of the files opened
-for input and output in a file with extension
-.IR .fls .
-.TP
-.B -T
-.rb
-Produce TROFF output.
-.TP
-.BI -translate-file \ tcxname
-.rb
-Use the
-.I tcxname
-translation table.
-.TP
-.B -troff
-.rb
-As
-.BR -T .
-.TP
-.B -version
-.rb
-Print version information and exit.
-.\"=====================================================================
-.SH ENVIRONMENT
-See the Kpathsearch library documentation (the `Path specifications'
-node) for the details of how the environment variables are use when
-searching. The
-.B kpsewhich
-utility can be used to query the values of the variables.
-.PP
-If the environment variable
-TEXMFOUTPUT is set, \*(MP attempts to put its output
-files in it, if they cannot be put in the current directory.
-.PP
-Here is a list of the environment variables affect the behavior of
-.IR mpost :
-.TP
-.TP
-MPINPUTS
-Search path for
-.I input
-files.
-.TP
-MFINPUTS
-Auxiliary search path for
-.I input
-files with
-.I .mf
-extensions.
-.TP
-MPSUPPORT
-Directory for various tables for handling included
-.I tex
-and
-.IR troff .
-.TP
-MPXCOMMAND
-The name of a shell script that converts embedded typesetting commands
-to a form that \*(MP understands. Defaults:
-.I makempx
-for
-.I tex
-and
-.I troffmpx
-for
-.IR troff .
-.TP
-TEX
-The version of \*(TX \- or \*(LX \- to use when processing
-.I btex
-and
-.I verbatimtex
-commands. Default
-.IR tex .
-This version of \*(MP allows you to use a `%&format' line instead.
-.TP
-TROFF
-The
-.I troff
-pipeline for
-.I btex
-and
-.I verbatimtex
-commands. Default
-.I eqn -d\e$\e$ | troff
-.TP
-MPEDIT
-A command template for invoking an editor.
-.PP
-A
-.I .mem
-file is a binary file that permits fast loading of macro packages.
-.I mpost
-reads the default
-.I plain.mem
-unless another
-.I .mem
-file is specified at the start of the first line with an
-.I &
-just before it. There is also an
-.I mfplain.mem
-that simulates plain \*(MF so that
-.I mpost
-can read
-.I .mf
-fonts. (Plain \*(MF is described in
-.IR "The \*(MF\^book" ).
+When the
+.B --dvitomp
+option is given, \*(MP acts as DVI-to-MPX converter only.
+See dvitomp (1) for details.
.PP
-Experts can create
-.I .mem
-files be invoking
-.I inimpost
-and giving macro definitions followed by a
-.I dump
-command.
+This manual page is not meant to be exhaustive. The complete
+documentation for this version of \*(MP can be found in the
+User Manual that should have been installed along with the program and
+is also available from http://tug.org/metapost.
+See the FILES section below.
.PP
The \*(MP language is similar to \*(MF, but the manual
-.I A User's Manual for \*(MP
assumes no knowledge of \*(MF. \*(MP does not have bitmap
output commands or \*(MF's online display mechanism.
+
.\"=====================================================================
.SH FILES
.TP
-.I mpost.pool
-Encoded text of \*(MP's messages.
-.TP
.I *.mem
Predigested \*(MP mem files.
.TP
@@ -397,10 +99,7 @@ Predigested \*(MP mem files.
The standard mem file.
.TP
.I mfplain.mp
-The \*(MF-compatible mem file. This is loaded when
-.I virmp
-is invoked via a symbolic link as
-.IR mfmp .
+The \*(MF-compatible mem file.
.TP
.I $TEXMFMAIN/metapost/base/*.mp
The standard \*(MP macros included in the original distribution.
@@ -421,26 +120,8 @@ Table of corresponding font names for
.I tex
and PostScript.
.TP
-.I $TEXMFMAIN/doc/metapost/examples.mp
-The source file for a few sample figures
-that are part of a \*(LX document
-.I $TEXMFMAIN/doc/metapost/mpintro.tex
-that describes the \*(MP system
-in a little more detail.
-.\"=====================================================================
-.SH NOTES
-This manual page is not meant to be exhaustive. The complete
-documentation for this version of \*(MP can be found in the info manual
-.IR "Web2C: A TeX implementation" .
-See also
-.IR mpman.pdf ,
-the manual written by John Hobby (it lives in the documentation
-directory).
-.PP
-.B MetaPost
-is the native graphics language for ConTeXt, a typesetting system
-built on top of the \*(TX family. See
-.BR texexec (1).
+.I $TEXMFMAIN/doc/metapost/*
+The \*(MP manual and tutorial source, also including sample figures
.\"=====================================================================
.SH "SUGGESTED READING"
Donald E. Knuth,
@@ -449,31 +130,20 @@ Donald E. Knuth,
.IR "Computers and Typesetting" ),
Addison-Wesley, 1986, ISBN 0-201-13445-4.
.br
-John D. Hobby,
-.IR "A User's Manual for \*(MP" ,
-CSTR 162, AT&T Bell Labs,
-.br
-John D. Hobby,
-.IR "Drawing Graphs with \*(MP" ,
-CSTR 164, AT&T Bell Labs,
-.br
.I TUGboat
(the journal of the \*(TX Users Group).
.\"=====================================================================
.SH "SEE ALSO"
.PP
-.BR dvips (1),
.BR dvitomp (1),
.BR epstopdf (1),
.BR mf (1),
-.BR mpto (1),
.BR mptopdf (1),
-.BR pdftex (1),
.BR tex (1),
-.BR texexec (1).
.PP
-.URL "http://sarovar.org/projects/metapost/" "MetaPost source code" .
-
+.URL "http://foundry.supelec.fr/gf/project/metapost/" "MetaPost source code" .
+.BR
+.URL "http://tug.org/metapost/" "MetaPost home page" .
.\"=====================================================================
.SH AUTHORS
\*(MP was designed by John D. Hobby, incorporating algorithms from
@@ -486,14 +156,13 @@ Ulrik Vieth adapted \*(MP to take advantage of the advanced path
searching features in more recent versions of
.B web2c
and worked towards fully integrating \*(MP into the canonical Unix
-\*(TX distribution. He also updated and extended this manual page.
+\*(TX distribution.
+.PP
+The current, CWEB based version of MetaPost is maintained by
+Taco Hoekwater.
.PP
-The current maintainer of MetaPost is Taco Hoekwater.
+The manual and tutorial are maintained by Stephan Hennig and
+Troy Henderson.
.\"=====================================================================
-.SH TRIVIA
-Unlike \*(TX and \*(MF, \*(MP originally didn't use any fancy logo.
-John Hobby says he prefers the spelling ``MetaPost'', yet Don Knuth
-has updated the \*(MF
-.I logo.mf
-font to be able to typeset a proper \*(MP logo similar to the \*(MF
-logo. Feel free to use whatever you think is more appropriate!
+.SH BUGS
+Email bug reports to metapost@tug.org.
diff --git a/Build/source/texk/web2c/mplibdir/avl.c b/Build/source/texk/web2c/mplibdir/avl.c
index a8421d4c93d..4d05baacb4e 100644
--- a/Build/source/texk/web2c/mplibdir/avl.c
+++ b/Build/source/texk/web2c/mplibdir/avl.c
@@ -20,6 +20,7 @@ avl_default_item_copy (const void *item)
void *
avl_default_item_dispose (void *item)
{
+ (void)item; /* for -Wall */
return (void *) NULL;
}
diff --git a/Build/source/texk/web2c/mplibdir/lmplib.c b/Build/source/texk/web2c/mplibdir/lmplib.c
index b5e6959c3ea..40ca908448b 100644
--- a/Build/source/texk/web2c/mplibdir/lmplib.c
+++ b/Build/source/texk/web2c/mplibdir/lmplib.c
@@ -1,6 +1,6 @@
/* lmplib.c
- Copyright 2006-2008 Taco Hoekwater <taco@luatex.org>
+ Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
This file is part of LuaTeX.
diff --git a/Build/source/texk/web2c/mplibdir/memio.w b/Build/source/texk/web2c/mplibdir/memio.w
index f5492f713b5..f487a4adc2b 100644
--- a/Build/source/texk/web2c/mplibdir/memio.w
+++ b/Build/source/texk/web2c/mplibdir/memio.w
@@ -1,6 +1,6 @@
% $Id: psout.w 616 2008-07-09 14:05:55Z taco $
%
-% Copyright 2008 Taco Hoekwater.
+% Copyright 2008-2009 Taco Hoekwater.
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU Lesser General Public License as published by
diff --git a/Build/source/texk/web2c/mplibdir/mp.w b/Build/source/texk/web2c/mplibdir/mp.w
index d8a89517356..cd3e5ee75c0 100644
--- a/Build/source/texk/web2c/mplibdir/mp.w
+++ b/Build/source/texk/web2c/mplibdir/mp.w
@@ -1,6 +1,6 @@
-% $Id: mp.w 1016 2009-05-09 12:51:56Z taco $
+% $Id: mp.w 1061 2009-05-27 13:01:37Z taco $
%
-% Copyright 2008 Taco Hoekwater.
+% Copyright 2008-2009 Taco Hoekwater.
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU Lesser General Public License as published by
@@ -89,13 +89,13 @@ undergoes any modifications, so that it will be clear which version of
@^extensions to \MP@>
@^system dependencies@>
-@d default_banner "This is MetaPost, Version 1.200" /* printed when \MP\ starts */
+@d default_banner "This is MetaPost, Version 1.201" /* printed when \MP\ starts */
@d true 1
@d false 0
@(mpmp.h@>=
-#define metapost_version "1.200"
-#define metapost_magic (('M'*256) + 'P')*65536 + 1200
+#define metapost_version "1.201"
+#define metapost_magic (('M'*256) + 'P')*65536 + 1201
#define metapost_old_magic (('M'*256) + 'P')*65536 + 1080
@ The external library header for \MP\ is |mplib.h|. It contains a
@@ -877,7 +877,6 @@ static boolean mp_input_ln (MP mp, void *f ) {
}
}
memcpy((mp->buffer+mp->first),s,size);
- /* while ( mp->buffer[mp->last]==' ' ) mp->last--; */
}
free(s);
return true;
@@ -13805,8 +13804,8 @@ actions.
{ mp->input_ptr=0; mp->max_in_stack=0;
mp->in_open=0; mp->open_parens=0; mp->max_buf_stack=0;
mp->param_ptr=0; mp->max_param_stack=0;
- mp->first=1;
- start=1; iindex=0; line=0; name=is_term;
+ mp->first=0;
+ start=0; iindex=0; line=0; name=is_term;
mp->mpx_name[0]=absent;
mp->force_eof=false;
if ( ! mp_init_terminal(mp) ) mp_jump_out(mp);
@@ -14926,6 +14925,36 @@ static void mp_begin_iteration (MP mp);
static void mp_resume_iteration (MP mp);
static void mp_stop_iteration (MP mp);
+@ A recursion depth counter is used to discover infinite recursions.
+(Near) infinite recursion is a problem because it translates into
+C function calls that eat up the available call stack. A better solution
+would be to depend on signal trapping, but that is problematic when
+Metapost is used as a library.
+
+@<Global...@>=
+int expand_depth_count; /* current expansion depth */
+int expand_depth; /* current expansion depth */
+
+@ The limit is set at |10000|, which should be enough to allow
+normal usages of metapost while preventing the most obvious
+crashes on most all operating systems, but the value can be
+raised if the runtime system allows a larger C stack.
+@^system dependencies@>
+
+@<Set initial...@>=
+mp->expand_depth=10000;
+
+@ Even better would be if the system allows
+discovery of the amount of space available on the call stack.
+@^system dependencies@>
+
+@c
+static void mp_check_expansion_depth (MP mp ){
+ if (mp->expand_depth_count>=mp->expand_depth) {
+ mp_overflow(mp, "expansion depth", mp->expand_depth);
+ }
+}
+
@ An auxiliary subroutine called |expand| is used by |get_x_next|
when it has to do exotic expansion commands.
@@ -14934,6 +14963,8 @@ static void mp_expand (MP mp) {
pointer p; /* for list manipulation */
size_t k; /* something that we hope is |<=buf_size| */
pool_pointer j; /* index into |str_pool| */
+ mp->expand_depth_count++;
+ mp_check_expansion_depth(mp);
if ( mp->internal[mp_tracing_commands]>unity )
if ( mp->cur_cmd!=defined_macro )
show_cur_cmd_mod;
@@ -14972,6 +15003,7 @@ static void mp_expand (MP mp) {
mp_macro_call(mp, mp->cur_mod,null,mp->cur_sym);
break;
}; /* there are no other cases */
+ mp->expand_depth_count--;
}
@ @<Scold the user...@>=
@@ -16528,6 +16560,8 @@ it catch up to what has previously been printed on the terminal.
integer m; /* the current month */
const char *months="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC";
/* abbreviations of month names */
+ if (mp->log_opened)
+ return;
old_setting=mp->selector;
if ( mp->job_name==NULL ) {
mp->job_name=xstrdup("mpout");
@@ -16546,7 +16580,7 @@ it catch up to what has previously been printed on the terminal.
mp_print_nl(mp, "**");
@.**@>
l=mp->input_stack[0].limit_field-1; /* last position of first line */
- for (k=1;k<=l;k++) mp_print_str(mp, mp->buffer[k]);
+ for (k=0;k<=l;k++) mp_print_str(mp, mp->buffer[k]);
mp_print_ln(mp); /* now the transcript file contains the first line of input */
}
mp->selector=old_setting+2; /* |log_only| or |term_and_log| */
@@ -16632,6 +16666,8 @@ when an `\.{input}' command is being processed.
if ( mp->job_name==NULL ) {
mp->job_name=xstrdup(mp->cur_name);
@<Fix up |mp->internal[mp_job_name]|@>;
+ }
+ if (!mp->log_opened) {
mp_open_log_file(mp);
} /* |open_log_file| doesn't |show_context|, so |limit|
and |loc| needn't be set to meaningful values yet */
@@ -16686,7 +16722,7 @@ with the current input file.
@c void mp_start_mpx_input (MP mp) {
char *origname = NULL; /* a copy of nameoffile */
- mp_pack_file_name(mp, in_name, in_area, ".mpx");
+ mp_pack_file_name(mp, in_name, "", ".mpx");
@<Try to make sure |name_of_file| refers to a valid \.{MPX} file and
|goto not_found| if there is a problem@>;
mp_begin_file_reading(mp);
@@ -19302,13 +19338,19 @@ static void mp_pair_to_path (MP mp) {
mp->cur_type=mp_path_type;
}
-@
-@d pict_color_type(A) ((mp_link(dummy_loc(mp->cur_exp))!=null) &&
- (has_color(mp_link(dummy_loc(mp->cur_exp)))) &&
- ((mp_color_model(mp_link(dummy_loc(mp->cur_exp)))==A)
- ||
- ((mp_color_model(mp_link(dummy_loc(mp->cur_exp)))==mp_uninitialized_model) &&
- (mp->internal[mp_default_color_model]/unity)==(A))))
+@ This complicated if test makes sure that any |bounds| or |clip|
+picture objects that get passed into \&{within} do not raise an
+error when queried using the color part primitives (this is needed
+for backward compatibility) .
+
+@d cur_pic_item mp_link(dummy_loc(mp->cur_exp))
+@d pict_color_type(A) ((cur_pic_item!=null) &&
+ ((!has_color(cur_pic_item))
+ ||
+ (((mp_color_model(cur_pic_item)==A)
+ ||
+ ((mp_color_model(cur_pic_item)==mp_uninitialized_model) &&
+ (mp->internal[mp_default_color_model]/unity)==(A))))))
@<Additional cases of unary operators@>=
case x_part:
@@ -25889,7 +25931,14 @@ static char *mp_set_output_file_name (MP mp, integer c) {
if (text(p)>0 && length(text(p))==l &&
mp_str_eq_cstr(mp, text(p),id)) {
if (eq_type(p)==internal_quantity) {
- mp_append_to_template(mp,f,equiv(p));
+ if (equiv(p)==mp_output_template) {
+ char err[256];
+ mp_snprintf(err,256,
+ "The appearance of outputtemplate inside outputtemplate is ignored.");
+ mp_warn(mp,err);
+ } else {
+ mp_append_to_template(mp,f,equiv(p));
+ }
} else {
char err[256];
mp_snprintf(err,256,
@@ -26303,6 +26352,8 @@ pointer mp_gr_unexport(MP mp, struct mp_edge_object *hh) {
} else {
mp_link(pn) = mp_link(ph);
mp_link(ph) = pn;
+ if (ph==pt)
+ pt=pn;
}
}
break;
diff --git a/Build/source/texk/web2c/mplibdir/mpost.w b/Build/source/texk/web2c/mplibdir/mpost.w
index f0f19cf105a..395794dec16 100644
--- a/Build/source/texk/web2c/mplibdir/mpost.w
+++ b/Build/source/texk/web2c/mplibdir/mpost.w
@@ -1,6 +1,6 @@
-% $Id: mpost.w 941 2009-04-19 13:13:56Z taco $
+% $Id: mpost.w 1061 2009-05-27 13:01:37Z taco $
%
-% Copyright 2008 Taco Hoekwater.
+% Copyright 2008-2009 Taco Hoekwater.
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU Lesser General Public License as published by
@@ -44,6 +44,9 @@ have our customary command-line interface.
#elif defined (HAVE_SYS_TIMEB_H)
#include <sys/timeb.h>
#endif
+#if HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
#include <mplib.h>
#include <mpxout.h>
#ifdef WIN32
@@ -62,6 +65,7 @@ static boolean recorder_enabled = false;
static string recorder_name = NULL;
static FILE *recorder_file = NULL;
static char *job_name = NULL;
+static char *job_area = NULL;
static int dvitomp_only = 0;
@ Allocating a bit of memory, with error detection:
@@ -206,9 +210,13 @@ static string normalize_quotes (const char *name, const char *mesg) {
@c
void recorder_start(char *jobname) {
char cwd[1024];
- recorder_name = (string)xmalloc((unsigned int)(strlen(jobname)+5));
- strcpy(recorder_name, jobname);
- strcat(recorder_name, ".fls");
+ if (jobname==NULL) {
+ recorder_name = mpost_xstrdup("mpout.fls");
+ } else {
+ recorder_name = (string)xmalloc((unsigned int)(strlen(jobname)+5));
+ strcpy(recorder_name, jobname);
+ strcat(recorder_name, ".fls");
+ }
recorder_file = xfopen(recorder_name, FOPEN_W_MODE);
if(GETCWD(cwd,1020) != NULL) {
@@ -257,18 +265,52 @@ void recorder_start(char *jobname) {
static int mpost_run_make_mpx (MP mp, char *mpname, char *mpxname) {
int ret;
char *cnf_cmd = kpse_var_value ("MPXCOMMAND");
-
if (cnf_cmd != NULL && (strcmp (cnf_cmd, "0")==0)) {
/* If they turned off this feature, just return success. */
ret = 0;
-
} else {
/* We will invoke something. Compile-time default if nothing else. */
- char *cmd;
- char *tmp = normalize_quotes(mpname, "mpname");
- char *qmpname = kpse_find_file (tmp,kpse_mp_format, true);
- char *qmpxname = normalize_quotes(mpxname, "mpxname");
+ char *cmd, *tmp, *qmpname, *qmpxname;
+ if (job_area != NULL) {
+ char *l = mpost_xmalloc(strlen(mpname)+strlen(job_area)+1);
+ strcpy(l, job_area);
+ strcat(l, mpname);
+ tmp = normalize_quotes(l, "mpname");
+ mpost_xfree(l);
+ } else {
+ tmp = normalize_quotes(mpname, "mpname");
+ }
+ qmpname = kpse_find_file (tmp,kpse_mp_format, true);
mpost_xfree(tmp);
+ if (qmpname != NULL && job_area != NULL) {
+ /* if there is a usable mpx file in the source path already,
+ simply use that and return true */
+ char *l = mpost_xmalloc(strlen(qmpname)+2);
+ strcpy(l, qmpname);
+ strcat(l, "x");
+ qmpxname = l;
+ if (qmpxname) {
+#if HAVE_SYS_STAT_H
+ struct stat source_stat, target_stat;
+ int nothingtodo = 0;
+ if ((stat(qmpxname, &target_stat) >= 0) &&
+ (stat(qmpname, &source_stat) >= 0)) {
+#if HAVE_ST_MTIM
+ if (source_stat.st_mtim.tv_sec <= target_stat.st_mtim.tv_sec ||
+ (source_stat.st_mtim.tv_sec == target_stat.st_mtim.tv_sec &&
+ source_stat.st_mtim.tv_nsec <= target_stat.st_mtim.tv_nsec))
+ nothingtodo = 1;
+#else
+ if (source_stat.st_mtime <= target_stat.st_mtime)
+ nothingtodo = 1;
+#endif
+ }
+ if (nothingtodo == 1)
+ return 1; /* success ! */
+#endif
+ }
+ }
+ qmpxname = normalize_quotes(mpxname, "mpxname");
if (cnf_cmd!=NULL && (strcmp (cnf_cmd, "1")!=0)) {
if (mp_troff_mode(mp)!=0)
cmd = concatn (cnf_cmd, " -troff ",
@@ -432,34 +474,74 @@ static char *mpost_find_file(MP mp, const char *fname, const char *fmode, int ft
(void)mp;
s = NULL;
if (fmode[0]=='r') {
+ if ((job_area != NULL) &&
+ (ftype>=mp_filetype_text || ftype==mp_filetype_program )) {
+ char *f = mpost_xmalloc(strlen(job_area)+strlen(fname)+1);
+ strcpy(f,job_area);
+ strcat(f,fname);
+ if (ftype>=mp_filetype_text) {
+ s = kpse_find_file (f, kpse_mp_format, 0);
+ } else {
+ l = strlen(f);
+ if (l>3 && strcmp(f+l-3,".mf")==0) {
+ s = kpse_find_file (f,kpse_mf_format, 0);
+#if HAVE_SYS_STAT_H
+ } else if (l>4 && strcmp(f+l-4,".mpx")==0) {
+ struct stat source_stat, target_stat;
+ char *mpname = mpost_xstrdup(f);
+ *(mpname + strlen(mpname) -1 ) = '\0';
+ printf("statting %s and %s\n", mpname, f);
+ if ((stat(f, &target_stat) >= 0) &&
+ (stat(mpname, &source_stat) >= 0)) {
+#if HAVE_ST_MTIM
+ if (source_stat.st_mtim.tv_sec <= target_stat.st_mtim.tv_sec ||
+ (source_stat.st_mtim.tv_sec == target_stat.st_mtim.tv_sec &&
+ source_stat.st_mtim.tv_nsec <= target_stat.st_mtim.tv_nsec))
+ s = mpost_xstrdup(f);
+#else
+ if (source_stat.st_mtime <= target_stat.st_mtime)
+ s = mpost_xstrdup(f);
+#endif
+ }
+ mpost_xfree(mpname);
+#endif
+ } else {
+ s = kpse_find_file (f,kpse_mp_format, 0);
+ }
+ }
+ mpost_xfree(f);
+ if (s!=NULL) {
+ return s;
+ }
+ }
if (ftype>=mp_filetype_text) {
s = kpse_find_file (fname, kpse_mp_format, 0);
} else {
- switch(ftype) {
- case mp_filetype_program:
- l = strlen(fname);
- if (l>3 && strcmp(fname+l-3,".mf")==0) {
- s = kpse_find_file (fname, kpse_mf_format, 0);
- } else {
- s = kpse_find_file (fname, kpse_mp_format, 0);
+ switch(ftype) {
+ case mp_filetype_program:
+ l = strlen(fname);
+ if (l>3 && strcmp(fname+l-3,".mf")==0) {
+ s = kpse_find_file (fname, kpse_mf_format, 0);
+ } else {
+ s = kpse_find_file (fname, kpse_mp_format, 0);
+ }
+ break;
+ case mp_filetype_memfile:
+ s = kpse_find_file (fname, kpse_mem_format, 1);
+ break;
+ case mp_filetype_metrics:
+ s = kpse_find_file (fname, kpse_tfm_format, 0);
+ break;
+ case mp_filetype_fontmap:
+ s = kpse_find_file (fname, kpse_fontmap_format, 0);
+ break;
+ case mp_filetype_font:
+ s = kpse_find_file (fname, kpse_type1_format, 0);
+ break;
+ case mp_filetype_encoding:
+ s = kpse_find_file (fname, kpse_enc_format, 0);
+ break;
}
- break;
- case mp_filetype_memfile:
- s = kpse_find_file (fname, kpse_mem_format, 1);
- break;
- case mp_filetype_metrics:
- s = kpse_find_file (fname, kpse_tfm_format, 0);
- break;
- case mp_filetype_fontmap:
- s = kpse_find_file (fname, kpse_fontmap_format, 0);
- break;
- case mp_filetype_font:
- s = kpse_find_file (fname, kpse_type1_format, 0);
- break;
- case mp_filetype_encoding:
- s = kpse_find_file (fname, kpse_enc_format, 0);
- break;
- }
}
} else {
if (fname!=NULL)
@@ -507,7 +589,7 @@ void internal_set_option(const char *opt) {
struct set_list_item *itm;
char *s, *v;
int isstring = 0;
- s = xstrdup(opt) ;
+ s = mpost_xstrdup(opt) ;
v = strstr(s,"=") ;
if (v==NULL) {
v="1";
@@ -797,7 +879,7 @@ if (dvitomp_only)
else
fprintf(stdout, "\n" "MetaPost %s\n", s);
fprintf(stdout,
-"Copyright 2008 AT&T Bell Laboratories.\n"
+"Copyright 2009 AT&T Bell Laboratories.\n"
"There is NO warranty. Redistribution of this software is\n"
"covered by the terms of both the MetaPost copyright and\n"
"the Lesser GNU Lesser General Public License.\n"
@@ -977,10 +1059,21 @@ if ( options->mem_name == NULL )
options->mem_name = mpost_xstrdup(kpse_program_name);
-@ The jobname needs to be known for the recorder to work.
+@ The job name needs to be known for the recorder to work,
+so we have to fix up |job_name| and |job_area|. If there
+was a \.{--jobname} on the command line, we have to reset
+the options structure as well.
+
+@d IS_DIR_SEP(c) (c=='/' || c=='\\')
@<Discover the job name@>=
-if ( options->job_name == NULL ) {
+{
+char *tmp_job = NULL;
+if (options->job_name != NULL) {
+ tmp_job = mpost_xstrdup(options->job_name);
+ mpost_xfree(options->job_name);
+ options->job_name = NULL;
+} else {
char *m = NULL; /* head of potential |job_name| */
char *n = NULL; /* a moving pointer */
if (options->command_line != NULL){
@@ -990,7 +1083,7 @@ if ( options->job_name == NULL ) {
while (*n != '\0' && *n != ' ') n++;
if (n>m) {
*n='\0';
- job_name = mpost_xstrdup(m);
+ tmp_job = mpost_xstrdup(m);
}
} else { /* this is still not perfect, but better */
char *mm = strstr(m,"input ");
@@ -1000,32 +1093,54 @@ if ( options->job_name == NULL ) {
while (*n != '\0' && *n != ' ' && *n!=';') n++;
if (n>mm) {
*n='\0';
- job_name = mpost_xstrdup(mm);
+ tmp_job = mpost_xstrdup(mm);
}
}
}
free(m);
}
- if (job_name == NULL) {
+ if (tmp_job == NULL) {
if (options->ini_version == 1 &&
options->mem_name != NULL) {
- job_name = mpost_xstrdup(options->mem_name);
+ tmp_job = mpost_xstrdup(options->mem_name);
}
}
- if (job_name == NULL) {
- job_name = mpost_xstrdup("mpout");
+ if (tmp_job == NULL) {
+ tmp_job = mpost_xstrdup("mpout");
} else {
- size_t i = strlen(job_name);
+ size_t i = strlen(tmp_job);
if (i>3
- && *(job_name+i-3)=='.'
- && *(job_name+i-2)=='m'
- && *(job_name+i-1)=='p')
- *(job_name+i-3)='\0';
+ && *(tmp_job+i-3)=='.'
+ && *(tmp_job+i-2)=='m'
+ && *(tmp_job+i-1)=='p')
+ *(tmp_job+i-3)='\0';
}
- options->job_name = job_name;
-} else {
- job_name = mpost_xstrdup(options->job_name);
}
+/* now split |tmp_job| into |job_area| and |job_name| */
+{
+ char *s = tmp_job + strlen(tmp_job);
+ if (!IS_DIR_SEP(*s)) { /* just in case */
+ while (s>tmp_job) {
+ if (IS_DIR_SEP(*s)) {
+ break;
+ }
+ s--;
+ }
+ if (s>tmp_job) {
+ /* there was a directory part */
+ if (strlen(s)>1) {
+ job_name = mpost_xstrdup((s+1));
+ *(s+1) = '\0';
+ job_area = tmp_job;
+ }
+ } else {
+ job_name = tmp_job;
+ /* |job_area| stays NULL */
+ }
+ }
+}
+}
+options->job_name = job_name;
@ Now this is really it: \MP\ starts and ends here.
@@ -1071,7 +1186,7 @@ int main (int argc, char **argv) { /* |start_here| */
if (!nokpse) {
kpse_set_program_enabled (kpse_mem_format, MAKE_TEX_FMT_BY_DEFAULT,
kpse_src_compile);
- kpse_set_program_name("mpost", user_progname);
+ kpse_set_program_name(argv[0], user_progname);
}
@= /*@@=nullpass@@*/ @>
if(putenv((char *)"engine=metapost"))
diff --git a/Build/source/texk/web2c/mplibdir/mpxout.w b/Build/source/texk/web2c/mplibdir/mpxout.w
index 963237492d1..c8476685476 100644
--- a/Build/source/texk/web2c/mplibdir/mpxout.w
+++ b/Build/source/texk/web2c/mplibdir/mpxout.w
@@ -1,6 +1,6 @@
-% $Id: mpxout.w 1024 2009-05-11 08:22:49Z taco $
+% $Id: mpxout.w 1061 2009-05-27 13:01:37Z taco $
%
-% Copyright 2008 Taco Hoekwater.
+% Copyright 2008-2009 Taco Hoekwater.
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU Lesser General Public License as published by
@@ -351,7 +351,7 @@ static int mpx_newer(char *source, char *target) {
#if HAVE_ST_MTIM
if (source_stat.st_mtim.tv_sec > target_stat.st_mtim.tv_sec ||
(source_stat.st_mtim.tv_sec == target_stat.st_mtim.tv_sec &&
- source_stat.st_mtim.tv_nsec >+ target_stat.st_mtim.tv_nsec))
+ source_stat.st_mtim.tv_nsec >= target_stat.st_mtim.tv_nsec))
return 0;
#else
if (source_stat.st_mtime >= target_stat.st_mtime)
@@ -595,9 +595,12 @@ static void mpx_mpto(MPX mpx, char *tmpname, char *mptexpre) {
if (mode==mpx_tex_mode) {
FILE *fr;
if ((fr = fopen(mptexpre, "r"))!= NULL) {
- while (mpx_getline(mpx, fr) != NULL)
- fputs(mpx->buf, outfile);
- mpx_fclose(mpx,fr);
+ size_t i;
+ char buf[512];
+ while ((i=fread((void *)buf, 1, 512 , fr))>0) {
+ fwrite((void *)buf,1, i, outfile);
+ }
+ mpx_fclose(mpx,fr);
}
}
mpx->mpfile = mpx_xfopen(mpx,mpname, "r");
@@ -3932,28 +3935,37 @@ static char *mpx_print_command (MPX mpx, int cmdlength, char **cmdline) {
systems.
@c
-static int do_spawn (MPX mpx, char *cmd, char **options) {
+static int do_spawn (MPX mpx, char *icmd, char **options) {
#ifndef WIN32
- int retcode = -1;
- pid_t child;
- child = fork();
- if (child < 0)
- mpx_abort(mpx, "fork failed: %s", strerror(errno));
- if (child == 0) {
- if(execvp(cmd, options))
- mpx_abort(mpx, "exec failed: %s", strerror(errno));
- } else {
- if (wait(&retcode)==child) {
- retcode = (WIFEXITED(retcode) ? WEXITSTATUS(retcode) : -1);
- } else {
- mpx_abort(mpx, "wait failed: %s", strerror(errno));
- }
- }
- return retcode;
+ pid_t child;
+#endif
+ int retcode = -1;
+ char * cmd = xmalloc(strlen(icmd)+1,1);
+ if (icmd[0] != '"') {
+ strcpy(cmd,icmd);
+ } else {
+ strncpy(cmd,icmd+1,strlen(icmd)-2);
+ cmd[strlen(icmd)-2] = 0;
+ }
+#ifndef WIN32
+ child = fork();
+ if (child < 0)
+ mpx_abort(mpx, "fork failed: %s", strerror(errno));
+ if (child == 0) {
+ if(execvp(cmd, options))
+ mpx_abort(mpx, "exec failed: %s", strerror(errno));
+ } else {
+ if (wait(&retcode)==child) {
+ retcode = (WIFEXITED(retcode) ? WEXITSTATUS(retcode) : -1);
+ } else {
+ mpx_abort(mpx, "wait failed: %s", strerror(errno));
+ }
+ }
#else
- (void)mpx;
- return spawnvp(P_WAIT, cmd, (const char **)options);
+ retcode = spawnvp(P_WAIT, cmd, (const char **)options);
#endif
+ xfree(cmd);
+ return retcode;
}
@ @c
diff --git a/Build/source/texk/web2c/mplibdir/psout.w b/Build/source/texk/web2c/mplibdir/psout.w
index 4f532c38846..9981a81dd0b 100644
--- a/Build/source/texk/web2c/mplibdir/psout.w
+++ b/Build/source/texk/web2c/mplibdir/psout.w
@@ -1,6 +1,6 @@
-% $Id: psout.w 1017 2009-05-09 16:40:50Z taco $
+% $Id: psout.w 1051 2009-05-25 08:31:54Z taco $
%
-% Copyright 2008 Taco Hoekwater.
+% Copyright 2008-2009 Taco Hoekwater.
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU Lesser General Public License as published by
@@ -4379,11 +4379,11 @@ static void mp_mark_string_chars (MP mp,font_number f, char *s, size_t l) ;
void mp_mark_string_chars (MP mp,font_number f, char *s, size_t l) {
integer b; /* |char_base[f]| */
int bc,ec; /* only characters between these bounds are marked */
- char *k; /* an index into string |s| */
+ unsigned char *k; /* an index into string |s| */
b=mp->char_base[f];
bc=(int)mp->font_bc[f];
ec=(int)mp->font_ec[f];
- k=s;
+ k=(unsigned char *)s;
while (l-->0){
if ( (*k>=bc)&&(*k<=ec) )
mp->font_info[b+*k].qqqq.b3=mp_used;
diff --git a/Build/source/texk/web2c/mplibdir/svgout.w b/Build/source/texk/web2c/mplibdir/svgout.w
index 4ce9b7dc0dd..948085a44fd 100644
--- a/Build/source/texk/web2c/mplibdir/svgout.w
+++ b/Build/source/texk/web2c/mplibdir/svgout.w
@@ -1,6 +1,6 @@
% $Id: svgout.w 657 2008-10-08 09:48:49Z taco $
%
-% Copyright 2008 Taco Hoekwater.
+% Copyright 2008-2009 Taco Hoekwater.
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU Lesser General Public License as published by
diff --git a/Build/source/texk/web2c/mplibdir/tfmin.w b/Build/source/texk/web2c/mplibdir/tfmin.w
index d6361d767e7..075db665af4 100644
--- a/Build/source/texk/web2c/mplibdir/tfmin.w
+++ b/Build/source/texk/web2c/mplibdir/tfmin.w
@@ -1,6 +1,6 @@
% $Id: mp.w 597 2008-07-03 15:35:34Z taco $
%
-% Copyright 2008 Taco Hoekwater.
+% Copyright 2008-2009 Taco Hoekwater.
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU Lesser General Public License as published by
diff --git a/Build/source/texk/web2c/triptrap/mptrapin.log b/Build/source/texk/web2c/triptrap/mptrapin.log
index 7642b4ffa0c..8ed792679c2 100644
--- a/Build/source/texk/web2c/triptrap/mptrapin.log
+++ b/Build/source/texk/web2c/triptrap/mptrapin.log
@@ -1,13 +1,13 @@
-This is MetaPost, C Version 0.632 (INIMP) 24 JAN 1997 11:13
+This is MetaPost, version 1.201 (kpathsea version 3.5.7dev) (INIMP) 25 MAY 2009 12:47
**\input trap
-(trap.mp
+(./trap.mp
>> << == >> ::: ||`` ''--!! ??## && @@ $$[[]]{{ }}((5.5 0.5))
>> ".."
! Not implemented: (unknown numeric)++(string).
<to be read again>
;
-l.4 ...}} . (( 5.5.5 )) ++ "..";
-
+l.4 ...&& @@ $$ [[ ]] {{ }} . (( 5.5.5 )) ++ "..";
+
I'm afraid I don't know how to apply that operation to that
combination of types. Continue, and I'll return the second
argument (see above) as the result of the operation.
@@ -17,7 +17,7 @@ argument (see above) as the result of the operation.
<to be read again>
,
l.5 begingroup save =; let=,
- ; save,; newinternal $=,; let )...
+ ; save,; newinternal $=,; let ):=, endgroup;
You should have said `let symbol = something'.
But don't worry; I'll pretend that an equals sign
was present. The next token I read will be `something'.
@@ -30,18 +30,18 @@ was present. The next token I read will be `something'.
> (=tag
> )=,
<< == >> ::: ||`` ''--!! ??## && @@ $$[[]]{{ }}(([][]))=numeric
-<< == >> ::: ||`` ''--!! ??## && @@ $$[[]]{{ }}((5.5 0.5))=<< == >> :::
-||`` ''--!! ??## && @@ $$[[]]{{ }}((5.5 0.5))
+<< == >> ::: ||`` ''--!! ??## && @@ $$[[]]{{ }}((5.5 0.5))=<< == >> ::: ||`` ''
+--!! ??## && @@ $$[[]]{{ }}((5.5 0.5))
> year=month
! OK.
-l.6 ...ring,2,"2",,,(,),<<,year;
-
+l.6 ...rorstopmode,readstring,2,"2",,,(,),<<,year;
+
! Missing `:' has been inserted.
<to be read again>
;
-l.8 ...not cycle "":1.1 forever;
- fi;
+l.8 ...acingcommands:=if not cycle "":1.1 forever;
+ fi;
The next thing in this loop should have been a `:'.
So I'll pretend that a colon was present;
everything from here to `endfor' will be iterated.
@@ -59,12 +59,12 @@ everything from here to `endfor' will be iterated.
{showtoken}
> |=:|>=|=:|>
! OK.
-l.9 ... endfor; showtoken |=:|>;
-
+l.9 ... tracingcommands>2 endfor; showtoken |=:|>;
+
! Arithmetic overflow.
-l.10 ...acinglostchars:=1/.00001
- ; tracingequations:=$+1; p~=t...
+l.10 tracinglostchars:=1/.00001
+ ; tracingequations:=$+1; p~=tracinglostchar...
Uh, oh. A little while ago one of the quantities that I was
computing got too large, so I'm afraid your answers will be
somewhat askew. You'll probably have to adopt different
@@ -75,8 +75,8 @@ tactics next time. But I shall try to carry on anyway.
{tracingequations:=1}
{(32767.99998)+(0.00002)}
! Arithmetic overflow.
-l.10 ...tracinglostchars+.00001;
-
+l.10 ...quations:=$+1; p~=tracinglostchars+.00001;
+
Uh, oh. A little while ago one of the quantities that I was
computing got too large, so I'm afraid your answers will be
somewhat askew. You'll probably have to adopt different
@@ -95,19 +95,19 @@ tactics next time. But I shall try to carry on anyway.
{$:=-1}
{$:=x}
>> x
-! Internal quantity `$' must receive a known value.
+! Internal quantity `$' must receive a known numeric or string.
<to be read again>
;
-l.12 ...os:=1; $:=ASCII""; $:=x;
- p~:=p~;
-I can't set an internal quantity to anything but a known
-numeric value, so I'll have to ignore this assignment.
+l.12 ...utput:=tracingmacros:=1; $:=ASCII""; $:=x;
+ p~:=p~;
+I can't set an internal quantity to anything but a known string
+or known numeric value, so I'll have to ignore this assignment.
{p~:=32767.99998}
## p~=32767.99998
! Value is too large (32767.99998).
-l.12 ...:=ASCII""; $:=x; p~:=p~;
-
+l.12 ...racingmacros:=1; $:=ASCII""; $:=x; p~:=p~;
+
The equation I just processed has given some variable
a value of 4096 or more. Continue and I'll try to cope
with that big value; but it might be dangerous.
@@ -121,19 +121,19 @@ with that big value; but it might be dangerous.
foo(TEXT2)->begingroup(TEXT2)endgroup
(SUFFIX0)<-
(SUFFIX1)<-foo
-(TEXT2)<-interim.tracinglostchars:=(0.5;show.urcorner("flubo"infont"trap
-f"),2+2
+(TEXT2)<-interim.tracinglostchars:=(0.5;show.urcorner("flubo"infont"trapf"),2+2
{begingroup}
{interim}
! Missing `)' has been inserted.
<to be read again>
;
-<argument> ...nglostchars:=(0.5;
- show.urcorner("flubo"infont"t...
+<argument> interim.tracinglostchars:=(0.5;
+ show.urcorner("flubo"infont"trapf"...
+
foo->begingroup(TEXT2)
endgroup
l.17 ),2+2endtext
- ; for n=tracingspecs step 1 until $:fi end...
+ ; for n=tracingspecs step 1 until $:fi endfor showstats;
I found no right delimiter to match a left one. So I've
put one in, behind the scenes; this may fix the problem.
@@ -152,17 +152,17 @@ Missing character: There is no o in font trapf!
<to be read again>
endgroup
l.17 ),2+2endtext
- ; for n=tracingspecs step 1 until $:fi end...
+ ; for n=tracingspecs step 1 until $:fi endfor showstats;
{restoring tracinglostchars=32767.99998}
{endgroup}
{for}
{showstats}
-Memory usage 292&42 (3418 still untouched)
-String usage 28&93 (1282&9362 now untouched)
+Memory usage 283&42 (3927 still untouched)
+String usage 25&72 (78&7709 now untouched)
! OK.
-l.17 ...l $:fi endfor showstats;
-
+l.17 ...gspecs step 1 until $:fi endfor showstats;
+
{let}
{path}
@@ -192,7 +192,7 @@ Path at line 18, after choices:
)
*dump
Beginning to dump on file trap.mem
- (preloaded mem=trap 97.1.24)
-at most 1226 strings of total length 22670
-398 memory locations dumped; current usage is 318&68
-279 symbolic tokens
+ (mem=trap 2009.05.25)
+at most 553 strings of total length 2302
+391 memory locations dumped; current usage is 311&68
+308 symbolic tokens
diff --git a/Build/source/texk/web2c/triptrap/mtrap.0 b/Build/source/texk/web2c/triptrap/mtrap.0
index dacbb18fd9b..274a01e1a5d 100644
--- a/Build/source/texk/web2c/triptrap/mtrap.0
+++ b/Build/source/texk/web2c/triptrap/mtrap.0
@@ -1,9 +1,11 @@
%!PS
%%BoundingBox: -36 -24 84 84
-%%Creator: MetaPost
-%%CreationDate: 1998.01.28:1118
+%%HiResBoundingBox: -36 -24 84 84
+%%Creator: MetaPost 1.201
+%%CreationDate: 2009.05.25:1247
%%Pages: 1
%*Font: trapf 9.9628 9.96265 35:c008
+%%BeginProlog
%%EndProlog
%%Page: 1 1
gsave newpath 50 0 moveto
@@ -16,16 +18,16 @@ gsave newpath 50 0 moveto
13.26082 -50 25.97853 -44.73216 35.35535 -35.35535 curveto
44.73216 -25.97853 50 -13.26082 50 0 curveto closepath clip
grestore
- 0 setgray 0 1 dtransform truncate idtransform setlinewidth pop
+ 0 0 0 setrgbcolor 0 1 dtransform truncate idtransform setlinewidth pop
[] 0 setdash 0 setlinecap 0 setlinejoin 1 setmiterlimit
newpath 1 1 moveto
3 2 lineto stroke
- 0.4 setgray
+ 0.4 0.4 0.4 setrgbcolor
newpath -36 -24 moveto
84 -24 lineto
0 84 lineto
closepath fill
- 0 setgray
+ 0 0 0 setrgbcolor
gsave [0.86601 0.5 -0.5 0.86601 2 3 ] concat 0 0 moveto
(A56) trapf 9.9628 fshow grestore
gsave newpath 4 5 moveto
diff --git a/Build/source/texk/web2c/triptrap/mtrap.1 b/Build/source/texk/web2c/triptrap/mtrap.1
index 27b3253f355..e74895dbfbf 100644
--- a/Build/source/texk/web2c/triptrap/mtrap.1
+++ b/Build/source/texk/web2c/triptrap/mtrap.1
@@ -1,9 +1,11 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: -84 -36 24 84
-%%Creator: MetaPost
-%%CreationDate: 1998.01.28:1118
+%%HiResBoundingBox: -84 -36 24 84
+%%Creator: MetaPost 1.201
+%%CreationDate: 2009.05.25:1247
%%Pages: 1
%%DocumentFonts: trapf
+%%BeginProlog
/trapf /trapf def
/fshow {exch findfont exch scalefont setfont show}bind def
%%EndProlog
@@ -18,18 +20,18 @@ gsave newpath 0 50 moveto
50 13.26082 44.73216 25.97853 35.35535 35.35535 curveto
25.97853 44.73216 13.26082 50 0 50 curveto closepath clip
grestore
- 0 setgray 1
- 0 dtransform exch truncate exch idtransform pop setlinewidth
- [] 0 setdash 0 setlinecap 0 setlinejoin 1 setmiterlimit
+ 0 0 0 setrgbcolor 1
+ 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 0 setlinecap 0 setlinejoin 1 setmiterlimit
gsave newpath -1 1 moveto
-2 3 lineto
[0 1 -1 0 0 0] concat stroke grestore
- 0.4 setgray
+ 0.4 0.4 0.4 setrgbcolor
newpath 24 -36 moveto
24 84 lineto
-84 0 lineto
closepath fill
- 0 setgray
+ 0 0 0 setrgbcolor
gsave [-0.5 0.86601 -0.86601 -0.5 -3 2 ] concat 0 0 moveto
(A56) trapf 9.9628 fshow grestore
gsave newpath -5 4 moveto
diff --git a/Build/source/texk/web2c/triptrap/mtrap.log b/Build/source/texk/web2c/triptrap/mtrap.log
index 171792f0bc8..df0acf236fa 100644
--- a/Build/source/texk/web2c/triptrap/mtrap.log
+++ b/Build/source/texk/web2c/triptrap/mtrap.log
@@ -1,8 +1,8 @@
-This is MetaPost, C Version 0.64 (INIMP) 28 JAN 1998 11:18
-**mtrap
-(mtrap.mp
-Memory usage 28&13 (3463 still untouched)
-String usage 4&24 (1306&9877 now untouched)
+This is MetaPost, version 1.201 (kpathsea version 3.5.7dev) (INIMP) 25 MAY 2009 12:47
+**mtrap
+(./mtrap.mp
+Memory usage 19&13 (3972 still untouched)
+String usage 3&12 (101&7774 now untouched)
>> 7629.39453
>> -7629.39453
>> 166.74463
@@ -23,8 +23,8 @@ String usage 4&24 (1306&9877 now untouched)
>> 7629.39453
>> -7629.39453
! Arithmetic overflow.
-TS->...roup.show(EXPR2)*(EXPR3),
- (-(EXPR2))*(EXPR3),(EXPR2)*(-...
+TS->begingroup.show(EXPR2)*(EXPR3),
+ (-(EXPR2))*(EXPR3),(EXPR2)*(-(EXPR3)),(-(...
l.24 TS(13107.20000)(2.50000)
; % p*q=2^47-2^15 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -34,8 +34,8 @@ tactics next time. But I shall try to carry on anyway.
>> 32767.99998
! Arithmetic overflow.
-TS->...XPR3),(-(EXPR2))*(EXPR3),
- (EXPR2)*(-(EXPR3)),(-(EXPR2))...
+TS->...oup.show(EXPR2)*(EXPR3),(-(EXPR2))*(EXPR3),
+ (EXPR2)*(-(EXPR3)),(-(EXPR...
l.24 TS(13107.20000)(2.50000)
; % p*q=2^47-2^15 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -45,8 +45,8 @@ tactics next time. But I shall try to carry on anyway.
>> -32767.99998
! Arithmetic overflow.
-TS->...XPR3),(EXPR2)*(-(EXPR3)),
- (-(EXPR2))*(-(EXPR3))endgroup
+TS->...PR3),(-(EXPR2))*(EXPR3),(EXPR2)*(-(EXPR3)),
+ (-(EXPR2))*(-(EXPR3))endgroup
l.24 TS(13107.20000)(2.50000)
; % p*q=2^47-2^15 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -56,8 +56,8 @@ tactics next time. But I shall try to carry on anyway.
>> -32767.99998
! Arithmetic overflow.
-TS->...XPR2))*(-(EXPR3))endgroup
-
+TS->...2)*(-(EXPR3)),(-(EXPR2))*(-(EXPR3))endgroup
+
l.24 TS(13107.20000)(2.50000)
; % p*q=2^47-2^15 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -67,8 +67,8 @@ tactics next time. But I shall try to carry on anyway.
>> 32767.99998
! Arithmetic overflow.
-TS->...roup.show(EXPR2)*(EXPR3),
- (-(EXPR2))*(EXPR3),(EXPR2)*(-...
+TS->begingroup.show(EXPR2)*(EXPR3),
+ (-(EXPR2))*(EXPR3),(EXPR2)*(-(EXPR3)),(-(...
l.25 TS(124.77580)(262.61502)
; % p*q=2^47-2^15+6 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -78,8 +78,8 @@ tactics next time. But I shall try to carry on anyway.
>> 32767.99998
! Arithmetic overflow.
-TS->...XPR3),(-(EXPR2))*(EXPR3),
- (EXPR2)*(-(EXPR3)),(-(EXPR2))...
+TS->...oup.show(EXPR2)*(EXPR3),(-(EXPR2))*(EXPR3),
+ (EXPR2)*(-(EXPR3)),(-(EXPR...
l.25 TS(124.77580)(262.61502)
; % p*q=2^47-2^15+6 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -89,8 +89,8 @@ tactics next time. But I shall try to carry on anyway.
>> -32767.99998
! Arithmetic overflow.
-TS->...XPR3),(EXPR2)*(-(EXPR3)),
- (-(EXPR2))*(-(EXPR3))endgroup
+TS->...PR3),(-(EXPR2))*(EXPR3),(EXPR2)*(-(EXPR3)),
+ (-(EXPR2))*(-(EXPR3))endgroup
l.25 TS(124.77580)(262.61502)
; % p*q=2^47-2^15+6 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -100,8 +100,8 @@ tactics next time. But I shall try to carry on anyway.
>> -32767.99998
! Arithmetic overflow.
-TS->...XPR2))*(-(EXPR3))endgroup
-
+TS->...2)*(-(EXPR3)),(-(EXPR2))*(-(EXPR3))endgroup
+
l.25 TS(124.77580)(262.61502)
; % p*q=2^47-2^15+6 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -115,8 +115,8 @@ tactics next time. But I shall try to carry on anyway.
>> -32767.99998
>> 32767.99998
! Arithmetic overflow.
-TS->...roup.show(EXPR2)*(EXPR3),
- (-(EXPR2))*(EXPR3),(EXPR2)*(-...
+TS->begingroup.show(EXPR2)*(EXPR3),
+ (-(EXPR2))*(EXPR3),(EXPR2)*(-(EXPR3)),(-(...
l.27 TS(64.03127)(511.75000)
; % p*q=2^47-2^14 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -126,8 +126,8 @@ tactics next time. But I shall try to carry on anyway.
>> 32767.99998
! Arithmetic overflow.
-TS->...XPR3),(-(EXPR2))*(EXPR3),
- (EXPR2)*(-(EXPR3)),(-(EXPR2))...
+TS->...oup.show(EXPR2)*(EXPR3),(-(EXPR2))*(EXPR3),
+ (EXPR2)*(-(EXPR3)),(-(EXPR...
l.27 TS(64.03127)(511.75000)
; % p*q=2^47-2^14 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -137,8 +137,8 @@ tactics next time. But I shall try to carry on anyway.
>> -32767.99998
! Arithmetic overflow.
-TS->...XPR3),(EXPR2)*(-(EXPR3)),
- (-(EXPR2))*(-(EXPR3))endgroup
+TS->...PR3),(-(EXPR2))*(EXPR3),(EXPR2)*(-(EXPR3)),
+ (-(EXPR2))*(-(EXPR3))endgroup
l.27 TS(64.03127)(511.75000)
; % p*q=2^47-2^14 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -148,8 +148,8 @@ tactics next time. But I shall try to carry on anyway.
>> -32767.99998
! Arithmetic overflow.
-TS->...XPR2))*(-(EXPR3))endgroup
-
+TS->...2)*(-(EXPR3)),(-(EXPR2))*(-(EXPR3))endgroup
+
l.27 TS(64.03127)(511.75000)
; % p*q=2^47-2^14 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -159,8 +159,8 @@ tactics next time. But I shall try to carry on anyway.
>> 32767.99998
! Arithmetic overflow.
-TS->...roup.show(EXPR2)*(EXPR3),
- (-(EXPR2))*(EXPR3),(EXPR2)*(-...
+TS->begingroup.show(EXPR2)*(EXPR3),
+ (-(EXPR2))*(EXPR3),(EXPR2)*(-(EXPR3)),(-(...
l.28 TS(39.46178)(830.37315)
; % p*q=2^47-2^14+1 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -170,8 +170,8 @@ tactics next time. But I shall try to carry on anyway.
>> 32767.99998
! Arithmetic overflow.
-TS->...XPR3),(-(EXPR2))*(EXPR3),
- (EXPR2)*(-(EXPR3)),(-(EXPR2))...
+TS->...oup.show(EXPR2)*(EXPR3),(-(EXPR2))*(EXPR3),
+ (EXPR2)*(-(EXPR3)),(-(EXPR...
l.28 TS(39.46178)(830.37315)
; % p*q=2^47-2^14+1 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -181,8 +181,8 @@ tactics next time. But I shall try to carry on anyway.
>> -32767.99998
! Arithmetic overflow.
-TS->...XPR3),(EXPR2)*(-(EXPR3)),
- (-(EXPR2))*(-(EXPR3))endgroup
+TS->...PR3),(-(EXPR2))*(EXPR3),(EXPR2)*(-(EXPR3)),
+ (-(EXPR2))*(-(EXPR3))endgroup
l.28 TS(39.46178)(830.37315)
; % p*q=2^47-2^14+1 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -192,8 +192,8 @@ tactics next time. But I shall try to carry on anyway.
>> -32767.99998
! Arithmetic overflow.
-TS->...XPR2))*(-(EXPR3))endgroup
-
+TS->...2)*(-(EXPR3)),(-(EXPR2))*(-(EXPR3))endgroup
+
l.28 TS(39.46178)(830.37315)
; % p*q=2^47-2^14+1 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -203,8 +203,8 @@ tactics next time. But I shall try to carry on anyway.
>> 32767.99998
! Arithmetic overflow.
-TS->...roup.show(EXPR2)*(EXPR3),
- (-(EXPR2))*(EXPR3),(EXPR2)*(-...
+TS->begingroup.show(EXPR2)*(EXPR3),
+ (-(EXPR2))*(EXPR3),(EXPR2)*(-(EXPR3)),(-(...
l.29 TS(1207.05434)(27.14708)
; % p*q=2^47-2^14-1 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -214,8 +214,8 @@ tactics next time. But I shall try to carry on anyway.
>> 32767.99998
! Arithmetic overflow.
-TS->...XPR3),(-(EXPR2))*(EXPR3),
- (EXPR2)*(-(EXPR3)),(-(EXPR2))...
+TS->...oup.show(EXPR2)*(EXPR3),(-(EXPR2))*(EXPR3),
+ (EXPR2)*(-(EXPR3)),(-(EXPR...
l.29 TS(1207.05434)(27.14708)
; % p*q=2^47-2^14-1 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -225,8 +225,8 @@ tactics next time. But I shall try to carry on anyway.
>> -32767.99998
! Arithmetic overflow.
-TS->...XPR3),(EXPR2)*(-(EXPR3)),
- (-(EXPR2))*(-(EXPR3))endgroup
+TS->...PR3),(-(EXPR2))*(EXPR3),(EXPR2)*(-(EXPR3)),
+ (-(EXPR2))*(-(EXPR3))endgroup
l.29 TS(1207.05434)(27.14708)
; % p*q=2^47-2^14-1 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -236,8 +236,8 @@ tactics next time. But I shall try to carry on anyway.
>> -32767.99998
! Arithmetic overflow.
-TS->...XPR2))*(-(EXPR3))endgroup
-
+TS->...2)*(-(EXPR3)),(-(EXPR2))*(-(EXPR3))endgroup
+
l.29 TS(1207.05434)(27.14708)
; % p*q=2^47-2^14-1 => *
Uh, oh. A little while ago one of the quantities that I was
@@ -296,14 +296,14 @@ tactics next time. But I shall try to carry on anyway.
>> 360.31036
>> 32767
>> 16394
-Memory usage 28&13 (3358 still untouched)
-String usage 8&32 (1302&9869 now untouched)
-Memory usage 109&13 (3358 still untouched)
-String usage 10&42 (1300&9859 now untouched)
-Memory usage 116&13 (3358 still untouched)
-String usage 11&45 (1299&9856 now untouched)
-Memory usage 139&56 (3358 still untouched)
-String usage 14&51 (1296&9850 now untouched)
+Memory usage 19&13 (3867 still untouched)
+String usage 7&20 (97&7766 now untouched)
+Memory usage 111&13 (3867 still untouched)
+String usage 9&30 (95&7756 now untouched)
+Memory usage 118&13 (3867 still untouched)
+String usage 10&33 (94&7753 now untouched)
+Memory usage 141&56 (3867 still untouched)
+String usage 13&39 (91&7747 now untouched)
>> Edge structure at line 71:
End edges
@@ -313,21 +313,18 @@ End edges
>> false
>> false
>> 0
-Memory usage 152&59 (3358 still untouched)
-String usage 14&51 (1296&9850 now untouched)
+Memory usage 154&59 (3867 still untouched)
+String usage 13&39 (91&7747 now untouched)
>> Edge structure at line 73:
clipping path:
(50,0)..controls (50,13.26082) and (44.73216,25.97853)
..(35.35535,35.35535)..controls (25.97853,44.73216) and (13.26082,50)
..(0,50)..controls (-13.26082,50) and (-25.97853,44.73216)
- ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082
-)
+ ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082)
..(-50,0)..controls (-50,-13.26082) and (-44.73216,-25.97853)
- ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,
--50)
+ ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,-50)
..(0,-50)..controls (13.26082,-50) and (25.97853,-44.73216)
- ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082
-)
+ ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082)
..cycle
stop clipping
End edges
@@ -338,8 +335,8 @@ End edges
>> true
>> false
>> 0
-Memory usage 220&59 (3358 still untouched)
-String usage 14&51 (1296&9850 now untouched)
+Memory usage 230&59 (3867 still untouched)
+String usage 13&39 (91&7747 now untouched)
>> Edge structure at line 75:
setbounds path:
(-3,-2)..controls (0.33333,-2) and (3.66667,-2)
@@ -355,8 +352,8 @@ End edges
>> false
>> true
>> 0
-Memory usage 245&59 (3358 still untouched)
-String usage 14&51 (1296&9850 now untouched)
+Memory usage 258&59 (3867 still untouched)
+String usage 13&39 (91&7747 now untouched)
>> Edge structure at line 76:
Filled pen stroke :
(1,1)..controls (1.66667,1.33333) and (2.33333,1.66667)
@@ -371,21 +368,18 @@ End edges
>> false
>> false
>> 1
-Memory usage 293&72 (3358 still untouched)
-String usage 14&51 (1296&9850 now untouched)
+Memory usage 312&72 (3867 still untouched)
+String usage 13&39 (91&7747 now untouched)
>> Edge structure at line 78:
clipping path:
(50,0)..controls (50,13.26082) and (44.73216,25.97853)
..(35.35535,35.35535)..controls (25.97853,44.73216) and (13.26082,50)
..(0,50)..controls (-13.26082,50) and (-25.97853,44.73216)
- ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082
-)
+ ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082)
..(-50,0)..controls (-50,-13.26082) and (-44.73216,-25.97853)
- ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,
--50)
+ ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,-50)
..(0,-50)..controls (13.26082,-50) and (25.97853,-44.73216)
- ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082
-)
+ ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082)
..cycle
stop clipping
Filled pen stroke :
@@ -401,8 +395,8 @@ End edges
>> true
>> false
>> 2
-Memory usage 314&59 (3358 still untouched)
-String usage 14&51 (1296&9850 now untouched)
+Memory usage 339&59 (3867 still untouched)
+String usage 13&39 (91&7747 now untouched)
>> (0.5,2.5)
>> (3.5,0.5)
>> Edge structure at line 81:
@@ -415,14 +409,11 @@ clipping path:
(50,0)..controls (50,13.26082) and (44.73216,25.97853)
..(35.35535,35.35535)..controls (25.97853,44.73216) and (13.26082,50)
..(0,50)..controls (-13.26082,50) and (-25.97853,44.73216)
- ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082
-)
+ ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082)
..(-50,0)..controls (-50,-13.26082) and (-44.73216,-25.97853)
- ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,
--50)
+ ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,-50)
..(0,-50)..controls (13.26082,-50) and (25.97853,-44.73216)
- ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082
-)
+ ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082)
..cycle
stop clipping
Filled pen stroke :
@@ -439,8 +430,8 @@ End edges
>> false
>> true
>> 2
-Memory usage 339&59 (3358 still untouched)
-String usage 14&51 (1296&9850 now untouched)
+Memory usage 367&59 (3867 still untouched)
+String usage 13&39 (91&7747 now untouched)
>> (-7,-3)
>> (2,7)
>> Edge structure at line 82:
@@ -453,14 +444,11 @@ clipping path:
(50,0)..controls (50,13.26082) and (44.73216,25.97853)
..(35.35535,35.35535)..controls (25.97853,44.73216) and (13.26082,50)
..(0,50)..controls (-13.26082,50) and (-25.97853,44.73216)
- ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082
-)
+ ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082)
..(-50,0)..controls (-50,-13.26082) and (-44.73216,-25.97853)
- ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,
--50)
+ ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,-50)
..(0,-50)..controls (13.26082,-50) and (25.97853,-44.73216)
- ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082
-)
+ ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082)
..cycle
stop clipping
Filled pen stroke :
@@ -477,8 +465,8 @@ End edges
>> false
>> true
>> 2
-Memory usage 339&59 (3358 still untouched)
-String usage 14&51 (1296&9850 now untouched)
+Memory usage 367&59 (3867 still untouched)
+String usage 13&39 (91&7747 now untouched)
>> Edge structure at line 83:
Filled contour colored (0.4,0.4,0.4):
(-36,-24)..controls (3.99994,-24) and (44.00006,-24)
@@ -493,8 +481,8 @@ End edges
>> false
>> false
>> 1
-Memory usage 345&70 (3358 still untouched)
-String usage 14&51 (1296&9850 now untouched)
+Memory usage 373&70 (3867 still untouched)
+String usage 13&39 (91&7747 now untouched)
>> Edge structure at line 85:
setbounds path:
(2,-3)..controls (2,0.33333) and (2,3.66667)
@@ -505,14 +493,11 @@ clipping path:
(50,0)..controls (50,13.26082) and (44.73216,25.97853)
..(35.35535,35.35535)..controls (25.97853,44.73216) and (13.26082,50)
..(0,50)..controls (-13.26082,50) and (-25.97853,44.73216)
- ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082
-)
+ ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082)
..(-50,0)..controls (-50,-13.26082) and (-44.73216,-25.97853)
- ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,
--50)
+ ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,-50)
..(0,-50)..controls (13.26082,-50) and (25.97853,-44.73216)
- ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082
-)
+ ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082)
..cycle
stop clipping
Filled pen stroke :
@@ -534,8 +519,8 @@ End edges
>> false
>> true
>> 2
-Memory usage 364&59 (3358 still untouched)
-String usage 14&51 (1296&9850 now untouched)
+Memory usage 398&59 (3867 still untouched)
+String usage 13&39 (91&7747 now untouched)
>> Edge structure at line 86:
"A56" infont "trapf"
transformed (0,0,1,0,0,1)
@@ -547,8 +532,8 @@ End edges
>> false
>> false
>> 1
-Memory usage 355&64 (3358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
+Memory usage 386&64 (3867 still untouched)
+String usage 15&47 (89&7739 now untouched)
>> Edge structure at line 88:
setbounds path:
(2,-3)..controls (2,0.33333) and (2,3.66667)
@@ -559,14 +544,11 @@ clipping path:
(50,0)..controls (50,13.26082) and (44.73216,25.97853)
..(35.35535,35.35535)..controls (25.97853,44.73216) and (13.26082,50)
..(0,50)..controls (-13.26082,50) and (-25.97853,44.73216)
- ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082
-)
+ ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082)
..(-50,0)..controls (-50,-13.26082) and (-44.73216,-25.97853)
- ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,
--50)
+ ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,-50)
..(0,-50)..controls (13.26082,-50) and (25.97853,-44.73216)
- ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082
-)
+ ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082)
..cycle
stop clipping
Filled pen stroke :
@@ -591,8 +573,8 @@ End edges
>> false
>> true
>> 3
-Memory usage 365&59 (3358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
+Memory usage 399&59 (3867 still untouched)
+String usage 14&42 (90&7744 now untouched)
>> Edge structure at line 89:
Filled pen stroke :
(4,5)..controls (5.33333,3.66667) and (6.66667,2.33333)
@@ -607,8 +589,8 @@ End edges
>> false
>> false
>> 1
-Memory usage 390&73 (3358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
+Memory usage 427&73 (3867 still untouched)
+String usage 14&42 (90&7744 now untouched)
>> Edge structure at line 91:
setbounds path:
(2,-3)..controls (2,0.33333) and (2,3.66667)
@@ -619,14 +601,11 @@ clipping path:
(50,0)..controls (50,13.26082) and (44.73216,25.97853)
..(35.35535,35.35535)..controls (25.97853,44.73216) and (13.26082,50)
..(0,50)..controls (-13.26082,50) and (-25.97853,44.73216)
- ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082
-)
+ ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082)
..(-50,0)..controls (-50,-13.26082) and (-44.73216,-25.97853)
- ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,
--50)
+ ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,-50)
..(0,-50)..controls (13.26082,-50) and (25.97853,-44.73216)
- ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082
-)
+ ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082)
..cycle
stop clipping
Filled pen stroke :
@@ -656,8 +635,8 @@ End edges
>> false
>> true
>> 4
-Memory usage 409&59 (3358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
+Memory usage 452&59 (3867 still untouched)
+String usage 14&42 (90&7744 now untouched)
>> "non-picture"
>> false
>> false
@@ -665,10 +644,10 @@ String usage 17&64 (1293&9837 now untouched)
>> false
>> false
>> 11
-Memory usage 409&59 (3358 still untouched)
-String usage 18&75 (1292&9826 now untouched)
-Memory usage 308&13 (3358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
+Memory usage 452&59 (3867 still untouched)
+String usage 15&53 (89&7733 now untouched)
+Memory usage 342&13 (3867 still untouched)
+String usage 14&42 (90&7744 now untouched)
>> Edge structure at line 96:
setbounds path:
(2,-3)..controls (2,0.33333) and (2,3.66667)
@@ -679,14 +658,11 @@ clipping path:
(50,0)..controls (50,13.26082) and (44.73216,25.97853)
..(35.35535,35.35535)..controls (25.97853,44.73216) and (13.26082,50)
..(0,50)..controls (-13.26082,50) and (-25.97853,44.73216)
- ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082
-)
+ ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082)
..(-50,0)..controls (-50,-13.26082) and (-44.73216,-25.97853)
- ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,
--50)
+ ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,-50)
..(0,-50)..controls (13.26082,-50) and (25.97853,-44.73216)
- ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082
-)
+ ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082)
..cycle
stop clipping
Filled pen stroke :
@@ -718,11 +694,11 @@ butt ends, mitered joins limited 1 with pen
pencircle transformed (0,0,0,0,0,1)
End edges
-Memory usage 308&13 (3358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
+Memory usage 342&13 (3867 still untouched)
+String usage 14&42 (90&7744 now untouched)
>> 4
-Memory usage 563&13 (3358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
+Memory usage 637&13 (3867 still untouched)
+String usage 14&42 (90&7744 now untouched)
>> Edge structure at line 104:
clipping path:
(5,5)..controls (5,6.32608) and (4.47322,7.59785)
@@ -743,14 +719,11 @@ clipping path:
(50,0)..controls (50,13.26082) and (44.73216,25.97853)
..(35.35535,35.35535)..controls (25.97853,44.73216) and (13.26082,50)
..(0,50)..controls (-13.26082,50) and (-25.97853,44.73216)
- ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082
-)
+ ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082)
..(-50,0)..controls (-50,-13.26082) and (-44.73216,-25.97853)
- ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,
--50)
+ ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,-50)
..(0,-50)..controls (13.26082,-50) and (25.97853,-44.73216)
- ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082
-)
+ ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082)
..cycle
stop clipping
Filled pen stroke :
@@ -782,14 +755,11 @@ clipping path:
(50,0)..controls (50,13.26082) and (44.73216,25.97853)
..(35.35535,35.35535)..controls (25.97853,44.73216) and (13.26082,50)
..(0,50)..controls (-13.26082,50) and (-25.97853,44.73216)
- ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082
-)
+ ..(-35.35535,35.35535)..controls (-44.73216,25.97853) and (-50,13.26082)
..(-50,0)..controls (-50,-13.26082) and (-44.73216,-25.97853)
- ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,
--50)
+ ..(-35.35535,-35.35535)..controls (-25.97853,-44.73216) and (-13.26082,-50)
..(0,-50)..controls (13.26082,-50) and (25.97853,-44.73216)
- ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082
-)
+ ..(35.35535,-35.35535)..controls (44.73216,-25.97853) and (50,-13.26082)
..cycle
stop clipping
Filled pen stroke :
@@ -814,8 +784,8 @@ pencircle transformed (0,0,0,0,0,1)
End edges
>> 5
-Memory usage 747&13 (3358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
+Memory usage 853&13 (3867 still untouched)
+String usage 14&42 (90&7744 now untouched)
>> false
>> false
>> false
@@ -844,8 +814,8 @@ End edges
>> (0,0)
>> (0,0)
>> (0,0)
-Memory usage 1003&85 (2358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
+Memory usage 1149&85 (2867 still untouched)
+String usage 14&42 (90&7744 now untouched)
>> false
>> false
>> false
@@ -869,8 +839,8 @@ End edges
>> (0,0)
>> (0,0)
>> (0,0)
-Memory usage 873&85 (2358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
+Memory usage 996&85 (2867 still untouched)
+String usage 14&42 (90&7744 now untouched)
>> false
>> true
>> false
@@ -894,8 +864,8 @@ End edges
>> (0,0)
>> (0,0)
>> (0,0)
-Memory usage 786&85 (2358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
+Memory usage 898&85 (2867 still untouched)
+String usage 14&42 (90&7744 now untouched)
>> false
>> false
>> true
@@ -916,8 +886,8 @@ End edges
>> (2,3)
>> (0.86603,0.5)
>> (-0.5,0.86603)
-Memory usage 773&85 (2358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
+Memory usage 882&85 (2867 still untouched)
+String usage 15&47 (89&7739 now untouched)
>> true
>> false
>> false
@@ -939,23 +909,27 @@ End edges
>> (0,0)
>> (0,0)
>> (0,0)
-Memory usage 788&85 (2358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
+Memory usage 900&85 (2867 still untouched)
+String usage 15&47 (89&7739 now untouched)
>> Edge structure at line 116:
"B34" infont "trapf"
transformed (0,0,1,0,0,1)
End edges
-Memory usage 319&13 (2358 still untouched)
-String usage 17&64 (1293&9837 now untouched)
-[0] [1]
-Memory usage 325&13 (2358 still untouched)
-String usage 20&78 (1287&9809 now untouched)
+Memory usage 353&13 (2867 still untouched)
+String usage 15&47 (89&7739 now untouched)
+[0] [1
+Warning: cannot open font map file psfonts.map
+]
+Memory usage 359&13 (2867 still untouched)
+String usage 16&50 (84&7716 now untouched)
>> "%!PS"
->> "%%BoundingBox: -36 -24 84 84"
->> "%%Creator: MetaPost"
+>> "%%BoundingBox: -36 -24 84 84 "
+>> "%%HiResBoundingBox: -36 -24 84 84 "
+>> "%%Creator: MetaPost 1.201"
>> "%%Pages: 1"
>> "%*Font: trapf 9.9628 9.96265 35:c008"
+>> "%%BeginProlog"
>> "%%EndProlog"
>> "%%Page: 1 1"
>> "gsave newpath 50 0 moveto"
@@ -968,16 +942,16 @@ String usage 20&78 (1287&9809 now untouched)
>> "13.26082 -50 25.97853 -44.73216 35.35535 -35.35535 curveto"
>> "44.73216 -25.97853 50 -13.26082 50 0 curveto closepath clip"
>> "grestore"
->> " 0 setgray 0 1 dtransform truncate idtransform setlinewidth pop"
+>> " 0 0 0 setrgbcolor 0 1 dtransform truncate idtransform setlinewidth pop"
>> " [] 0 setdash 0 setlinecap 0 setlinejoin 1 setmiterlimit"
>> "newpath 1 1 moveto"
>> "3 2 lineto stroke"
->> " 0.4 setgray"
+>> " 0.4 0.4 0.4 setrgbcolor"
>> "newpath -36 -24 moveto"
>> "84 -24 lineto"
>> "0 84 lineto"
>> " closepath fill"
->> " 0 setgray"
+>> " 0 0 0 setrgbcolor"
>> "gsave [0.86601 0.5 -0.5 0.86601 2 3 ] concat 0 0 moveto"
>> "(A56) trapf 9.9628 fshow grestore"
>> "gsave newpath 4 5 moveto"
@@ -985,33 +959,33 @@ String usage 20&78 (1287&9809 now untouched)
>> "0.00064 1 scale stroke grestore"
>> "showpage"
>> "%%EOF"
-Memory usage 325&13 (2358 still untouched)
-String usage 22&84 (1247&8769 now untouched)
+Memory usage 359&13 (2867 still untouched)
+String usage 16&50 (46&6607 now untouched)
>> "%!PS-Adobe-3.0 EPSF-3.0"
->> "%%BoundingBox: -84 -36 24 84"
->> 40
-Memory usage 325&13 (2358 still untouched)
-String usage 22&84 (1206&7603 now untouched)
+>> "%%BoundingBox: -84 -36 24 84 "
+>> 42
+Memory usage 359&13 (2867 still untouched)
+String usage 16&50 (5&5366 now untouched)
>> "^^@"
>> "%!PS"
->> "%%BoundingBox: -36 -24 84 84"
->> "%%Creator: MetaPost"
-Memory usage 325&13 (2358 still untouched)
-String usage 24&110 (1197&7522 now untouched)
-Memory usage 325&13 (2358 still untouched)
-String usage 26&125 (1148&7358 now untouched)
+>> "%%BoundingBox: -36 -24 84 84 "
+>> "%%HiResBoundingBox: -36 -24 84 84 "
+Memory usage 359&13 (2867 still untouched)
+String usage 17&84 (1&5292 now untouched)
+Memory usage 359&13 (2867 still untouched)
+String usage 30&97 (43&7558 now untouched)
>> "1 1"
->> "%%Pages: 1"
+>> "%%CreationDate: 2009.05.25:1247"
>> "2 4"
->> "%*Font: trapf 9.9628 9.96265 35:c008"
+>> "%%Pages: 1"
>> "3 9"
->> "%%EndProlog"
-Memory usage 325&13 (2358 still untouched)
-String usage 25&135 (1144&7308 now untouched)
+>> "%*Font: trapf 9.9628 9.96265 35:c008"
+Memory usage 359&13 (2867 still untouched)
+String usage 30&88 (41&7527 now untouched)
{randomseed:=4.34294}
>> "bbbbbbbbadadbbbbbbbbadadbbbbbbbbadadbbbbbbbbadadbbbbbbbbadad"
-Memory usage 325&13 (2358 still untouched)
-String usage 26&141 (1195&1840 now untouched)
+Memory usage 359&13 (2867 still untouched)
+String usage 30&88 (61&6618 now untouched)
! Number is too large (12000).
l.185 n = 12000
; show n;
@@ -1035,8 +1009,8 @@ I can't handle numbers bigger than 32767.99998;
so I've changed your constant to that maximum amount.
>> 32767.99998
-Memory usage 325&13 (2358 still untouched)
-String usage 26&141 (1195&1840 now untouched)
+Memory usage 359&13 (2867 still untouched)
+String usage 30&88 (61&6618 now untouched)
>> triangle
! Improper iteration spec has been replaced by nullpicture.
<to be read again>
@@ -1045,8 +1019,8 @@ l.191 for x within triangle:
show x; endfor
When you say `for x in p', p must be a known picture.
-Memory usage 327&13 (2358 still untouched)
-String usage 27&149 (1194&1832 now untouched)
+Memory usage 361&13 (2867 still untouched)
+String usage 31&96 (60&6610 now untouched)
>> path
! Not a string.
<to be read again>
@@ -1090,19 +1064,19 @@ now in front of anything that you don't want me to delete.
! Not a string.
<to be read again>
;
-l.195 ...e "triangle" to triang;
-
+l.195 write "triangle" to triang;
+
I can't write to that file name. It isn't a known string
-Memory usage 327&13 (2358 still untouched)
-String usage 27&149 (1193&1824 now untouched)
->> "%%BoundingBox: -36 -24 84 84" )
+Memory usage 361&13 (2867 still untouched)
+String usage 31&96 (59&6602 now untouched)
+>> "%%BoundingBox: -36 -24 84 84 " )
+
Here is how much of MetaPost's memory you used:
- 32 strings out of 1310
- 561 string characters out of 9901
- 2143 words of memory out of 4501
- 237 symbolic tokens out of 2100
- 5i,33n,6p,100b stack positions out of 30i,100n,150p,500b
- 3 string compactions (moved 1368 characters, 89 strings)
-
+ 37 strings out of 104
+ 508 string characters out of 7786
+ 2134 words of memory out of 5000
+ 265 symbolic tokens out of 16384
+ 5i,42n,6p,99b,2f stack positions out of 300i,84n,1500p,200b,25f
+ 8 string compactions (moved 2756 characters, 222 strings)
2 output files written: mtrap.0 .. mtrap.1