diff options
-rw-r--r-- | Build/source/texk/web2c/luatexdir/ChangeLog | 5 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/NEWS | 28 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/font/texfont.h | 2 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/lua/liolib.c | 4 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/lua/loslibext.c | 4 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/lua/luainit.c | 5 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinesave.c | 9 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luatex.ch | 7 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luatex.web | 67 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/pdf/pdfpage.c | 2 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/tex/math.c | 4 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/tex/mlist.c | 23 | ||||
-rw-r--r-- | Build/source/texk/web2c/luatexdir/utils/utils.c | 4 |
13 files changed, 96 insertions, 68 deletions
diff --git a/Build/source/texk/web2c/luatexdir/ChangeLog b/Build/source/texk/web2c/luatexdir/ChangeLog index acf8f253f7f..ede944cfb99 100644 --- a/Build/source/texk/web2c/luatexdir/ChangeLog +++ b/Build/source/texk/web2c/luatexdir/ChangeLog @@ -1,3 +1,8 @@ +2009-05-08 Taco Hoekwater <taco@luatex.org> + + * luatexdir: import of the current state of luatex, 0.40.1. + This affects many files in subdirectories. + 2009-05-05 Peter Breitenlohner <peb@mppmu.mpg.de> * image/pdftoepdf.cc, utils/utils.c: adapt for poppler. diff --git a/Build/source/texk/web2c/luatexdir/NEWS b/Build/source/texk/web2c/luatexdir/NEWS index 8ac0d995e8e..78bf54ccb43 100644 --- a/Build/source/texk/web2c/luatexdir/NEWS +++ b/Build/source/texk/web2c/luatexdir/NEWS @@ -1,4 +1,32 @@ ============================================================== +Luatex beta-0.40.1 was released 20090508 +============================================================== + +* Vertical placement of root radicals and degrees is fixed. + +* The use of \pageleftoffset could deviate from \hoffset + if \mag != 1000. + +* LuaTeX now issues a warning if \pagedir !- \bodydir during + shipout. + +* The previous crash in font.read_tfm() was still not quite + correct. + +* The Web2C version is now also printed in the --version + and --credits output. + + +* There is a new MPlib 1.200 release candidate with a few minor + fixes included. + +* The xpdf library is updated to patch level 3. + +* New imports to the build system, from texlive. In particular, + there is now configure-level support for building with + libpoppler and support for building under cygwin 1.7 is added. + +============================================================== Luatex beta-0.40.0 was released 20090422 ============================================================== diff --git a/Build/source/texk/web2c/luatexdir/font/texfont.h b/Build/source/texk/web2c/luatexdir/font/texfont.h index 690a242d171..0e733850435 100644 --- a/Build/source/texk/web2c/luatexdir/font/texfont.h +++ b/Build/source/texk/web2c/luatexdir/font/texfont.h @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: texfont.h 2331 2009-04-18 16:39:50Z hhenkel $ */ +/* $Id: texfont.h 2361 2009-04-27 14:30:46Z taco $ */ /* Here we have the interface to LuaTeX's font system, as seen from the main pascal program. There is a companion list in luatex.defines to diff --git a/Build/source/texk/web2c/luatexdir/lua/liolib.c b/Build/source/texk/web2c/luatexdir/lua/liolib.c index 5d10744c10b..00d020c4495 100644 --- a/Build/source/texk/web2c/luatexdir/lua/liolib.c +++ b/Build/source/texk/web2c/luatexdir/lua/liolib.c @@ -1,5 +1,5 @@ /* -** $Id: liolib.c 2271 2009-04-12 23:42:21Z oneiros $ +** $Id: liolib.c 2363 2009-04-30 07:47:37Z taco $ ** Standard I/O (and system) library ** See Copyright Notice in lua.h */ @@ -27,8 +27,6 @@ #define IO_INPUT 1 #define IO_OUTPUT 2 -extern int shell_cmd_is_allowed(char **cmd, char **safecmd, char **cmdname); - static const char *const fnames[] = { "input", "output" }; diff --git a/Build/source/texk/web2c/luatexdir/lua/loslibext.c b/Build/source/texk/web2c/luatexdir/lua/loslibext.c index eebb4e8e49e..fbe3f875148 100644 --- a/Build/source/texk/web2c/luatexdir/lua/loslibext.c +++ b/Build/source/texk/web2c/luatexdir/lua/loslibext.c @@ -25,7 +25,7 @@ #include <time.h> static const char _svn_version[] = - "$Id: loslibext.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/loslibext.c $"; + "$Id: loslibext.c 2363 2009-04-30 07:47:37Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/loslibext.c $"; #if defined(_WIN32) || defined(WIN32) || defined(__NT__) # define MKDIR(a,b) mkdir(a) @@ -33,8 +33,6 @@ static const char _svn_version[] = # define MKDIR(a,b) mkdir(a,b) #endif -extern int shell_cmd_is_allowed(char **cmd, char **safecmd, char **cmdname); - /* An attempt to figure out the basic platform, does not care about niceties like version numbers yet, and ignores platforms where luatex is unlikely to diff --git a/Build/source/texk/web2c/luatexdir/lua/luainit.c b/Build/source/texk/web2c/luatexdir/lua/luainit.c index 18db3984e4f..7e49c28389b 100644 --- a/Build/source/texk/web2c/luatexdir/lua/luainit.c +++ b/Build/source/texk/web2c/luatexdir/lua/luainit.c @@ -25,7 +25,7 @@ #include <luatexdir/luatexextra.h> static const char _svn_version[] = - "$Id: luainit.c 2330 2009-04-18 16:21:21Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luainit.c $"; + "$Id: luainit.c 2363 2009-04-30 07:47:37Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luainit.c $"; /* TH: TODO * @@ -43,9 +43,6 @@ static const char _svn_version[] = * SELFAUTOLOC SELFAUTODIR SELFAUTOPARENT progname * */ -extern void mk_shellcmdlist(char *v); -extern int shell_cmd_is_allowed(char **cmd, char **safecmd, char **cmdname); -extern void init_shell_escape(void); extern string normalize_quotes(const_string name, const_string mesg); diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinesave.c b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinesave.c index 91e14934ad2..f387856eb75 100644 --- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinesave.c +++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinesave.c @@ -1477,6 +1477,7 @@ static unsigned char *SplineChar2PS(SplineChar *sc,int *len,int round,int iscjk, MMSet *mm = sc->parent->mm; HintMask *hm[MmMax]; int fixuphm = false; + hm[0] = 0; if ( !(flags&ps_flag_nohints) && SCNeedsSubsPts(sc,format,gi->layer)) SCFigureHintMasks(sc,gi->layer); @@ -2513,8 +2514,8 @@ static void RSC2PS2(GrowBuf *gb, SplineChar *base,SplineChar *rsc, RefChar *r, *unsafe=NULL; int unsafecnt=0, allwithouthints=true; int round = (flags&ps_flag_round)? true : false; - StemInfo *oldh, *oldv; - int hc, vc; + StemInfo *oldh = NULL, *oldv = NULL; + int hc = 0, vc = 0; SplineSet *freeme, *temp; int wasntconflicted = hdb->noconflicts; @@ -2595,8 +2596,8 @@ static unsigned char *SplineChar2PS2(SplineChar *sc,int *len, int nomwid, GrowBuf gb; unsigned char *ret; struct hintdb hdb; - StemInfo *oldh, *oldv; - int hc, vc; + StemInfo *oldh = NULL, *oldv = NULL; + int hc = 0, vc = 0; SplineChar *scs[MmMax]; int round = (flags&ps_flag_round)? true : false; HintMask *hm = NULL; diff --git a/Build/source/texk/web2c/luatexdir/luatex.ch b/Build/source/texk/web2c/luatexdir/luatex.ch index 5361f6550ca..d3c32b9a931 100644 --- a/Build/source/texk/web2c/luatexdir/luatex.ch +++ b/Build/source/texk/web2c/luatexdir/luatex.ch @@ -1844,7 +1844,12 @@ end {|main_body|}; end; @z - +@x +write_svnversion(luatex_svnversion); +@y +wterm(versionstring); +write_svnversion(luatex_svnversion); +@z @x slow_print(log_name); print_char("."); diff --git a/Build/source/texk/web2c/luatexdir/luatex.web b/Build/source/texk/web2c/luatexdir/luatex.web index 160a2ea0b11..c1467f01cd2 100644 --- a/Build/source/texk/web2c/luatexdir/luatex.web +++ b/Build/source/texk/web2c/luatexdir/luatex.web @@ -250,8 +250,8 @@ known as `\eTeX'. @d pdftex_version_string=='-2.00.0' {current \pdfTeX\ version} @# @d luatex_version==40 { \.{\\luatexversion} } -@d luatex_revision=="0" { \.{\\luatexrevision} } -@d luatex_version_string=='beta-0.40.0' {current \LuaTeX\ version} +@d luatex_revision=="1" { \.{\\luatexrevision} } +@d luatex_version_string=='beta-0.40.1' {current \LuaTeX\ version} @d luatex_date_info==-extra_version_info { the compile date is negated } @d luatex_svnversion=='$Id$' {for long --version information, as proposed by Peter M\"unster} @@ -7115,6 +7115,12 @@ if (mag<=0)or(mag>32768) then help1("The magnification ratio must be between 1 and 32768."); int_error(mag); geq_word_define(int_base+mag_code,1000); end; +if (mag_set=0) and (mag<>mag_set) then begin + if mag<>1000 then + one_true_inch:=xn_over_d(one_hundred_inch,10,mag) + else + one_true_inch:=one_inch; +end; mag_set:=mag; end; @@ -13913,10 +13919,6 @@ if total_pages=0 then @^preamble of \.{DVI} file@> dvi_four(25400000); dvi_four(473628672); {conversion ratio for sp} prepare_mag; dvi_four(mag); {magnification factor is frozen} - if mag<>1000 then - one_true_inch:=xn_over_d(one_hundred_inch,10,mag) - else - one_true_inch:=one_inch; old_setting:=selector; selector:=new_string; print(" LuaTeX output "); print_int(year); print_char("."); print_two(month); print_char("."); print_two(day); @@ -14789,6 +14791,8 @@ flush_node_list(p); tats @ @<Ship box |p| out@>= +if box_dir(p) <> page_direction then + pdf_warning("\shipout", "\pagedir != \bodydir; \box255 may be placed wrongly on the page.", true, true); @<Update the values of |max_h| and |max_v|; but if the page is too large, |goto done|@>; @<Initialize variables as |ship_out| begins@>; @@ -14805,24 +14809,22 @@ for the DVI origin depending on the |page_direction|.} dvi_direction:=page_direction; case box_direction(dvi_direction) of dir_TL_,dir_LT_: begin - cur.h := page_left_offset; - cur.v := page_top_offset; + cur.h := h_offset; + cur.v := v_offset; end; dir_TR_,dir_RT_: begin - cur.h := cur_page_size.h - page_right_offset; - cur.v := page_top_offset; + cur.h := cur_page_size.h - page_right_offset - one_true_inch; + cur.v := v_offset; end; dir_BL_,dir_LB_: begin - cur.h := page_left_offset; - cur.v := cur_page_size.v - page_bottom_offset; + cur.h := h_offset; + cur.v := cur_page_size.v - page_bottom_offset - one_true_inch; end; dir_RB_,dir_BR_: begin - cur.h := cur_page_size.h - page_right_offset; - cur.v := cur_page_size.v - page_bottom_offset; + cur.h := cur_page_size.h - page_right_offset - one_true_inch; + cur.v := cur_page_size.v - page_bottom_offset - one_true_inch; end; end; -cur.h := cur.h - one_true_inch; {correct for DVI origin} -cur.v := cur.v - one_true_inch; {The movement is actually done within the upright page coordinate system.} dvi_direction := dir_TL_; {only temporarily for this adjustment} synch_pos_with_cur; box_pos := pos; {keep track on page} @@ -15588,6 +15590,7 @@ accurary. @ @<Set init...@>= one_hundred_inch := 7227 * 65536; {exact, 473628672} one_inch := (one_hundred_inch + 50) div 100; {rounded to 4736287} +one_true_inch := one_inch; one_hundred_bp := one_hundred_inch div 72; {exact, 6578176} one_bp := (one_hundred_bp + 50) div 100; {rounded to 65782} ten_pow[0] := 1; @@ -17600,6 +17603,8 @@ if post_callback_id>0 then end; @ @<(\pdfTeX) Ship box |p| out@>= +if shipping_page and (box_dir(p) <> page_direction) then + pdf_warning("\shipout", "\pagedir != \bodydir; \box255 may be placed wrongly on the page.", true, true); @<Update the values of |max_h| and |max_v|; but if the page is too large, |goto done|@>; @<Initialize variables as |pdf_ship_out| begins@>; @@ -17612,10 +17617,6 @@ done: @ @<Initialize variables as |pdf_ship_out| begins@>= prepare_mag; -if mag<>1000 then - one_true_inch:=xn_over_d(one_hundred_inch,10,mag) -else - one_true_inch:=one_inch; temp_ptr:=p; pdf_last_resources := pdf_new_objnum; @<Reset resource lists@>; @@ -17662,24 +17663,22 @@ if is_shipping_page then begin dvi_direction:=page_direction; case box_direction(dvi_direction) of dir_TL_,dir_LT_: begin - cur.h := page_left_offset; - cur.v := page_top_offset; + cur.h := h_offset; + cur.v := v_offset; end; dir_TR_,dir_RT_: begin - cur.h := cur_page_size.h - page_right_offset; - cur.v := page_top_offset; + cur.h := cur_page_size.h - page_right_offset - one_true_inch; + cur.v := v_offset; end; dir_BL_,dir_LB_: begin - cur.h := page_left_offset; - cur.v := cur_page_size.v - page_bottom_offset; + cur.h := h_offset; + cur.v := cur_page_size.v - page_bottom_offset - one_true_inch; end; dir_RB_,dir_BR_: begin - cur.h := cur_page_size.h - page_right_offset; - cur.v := cur_page_size.v - page_bottom_offset; + cur.h := cur_page_size.h - page_right_offset - one_true_inch; + cur.v := cur_page_size.v - page_bottom_offset - one_true_inch; end; end; - cur.h := cur.h - one_true_inch; {correct for DVI origin} - cur.v := cur.v - one_true_inch; {The movement is actually done within the upright page coordinate system.} dvi_direction := dir_TL_; {only temporarily for this adjustment} synch_pos_with_cur; box_pos := pos; {keep track on page} @@ -24294,19 +24293,19 @@ might be necessary. Good first step.} end else if (p>=dimen_base)and(p<eqtb_size) then begin if p=(dimen_base+page_left_offset_code) then begin - n:=cur_val - one_inch; + n:=cur_val - one_true_inch; word_define(dimen_base+h_offset_code, n); end else if p=(dimen_base+h_offset_code) then begin - n:=cur_val + one_inch; + n:=cur_val + one_true_inch; word_define(dimen_base+page_left_offset_code, n); end else if p=(dimen_base+page_top_offset_code) then begin - n:=cur_val - one_inch; + n:=cur_val - one_true_inch; word_define(dimen_base+v_offset_code, n); end else if p=(dimen_base+v_offset_code) then begin - n:=cur_val + one_inch; + n:=cur_val + one_true_inch; word_define(dimen_base+page_top_offset_code, n); end; word_define(p,cur_val); diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfpage.c b/Build/source/texk/web2c/luatexdir/pdf/pdfpage.c index ab5817e2624..84c8c9a2f34 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfpage.c +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfpage.c @@ -25,7 +25,7 @@ #include "ptexlib.h" static const char __svn_version[] = - "$Id: pdfpage.c 2264 2009-04-12 17:54:48Z hhenkel $ " + "$Id: pdfpage.c 2361 2009-04-27 14:30:46Z taco $ " "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfpage.c $"; #define lround(a) (long) floor((a) + 0.5) diff --git a/Build/source/texk/web2c/luatexdir/tex/math.c b/Build/source/texk/web2c/luatexdir/tex/math.c index 9ec4aab9b39..9c40d128981 100644 --- a/Build/source/texk/web2c/luatexdir/tex/math.c +++ b/Build/source/texk/web2c/luatexdir/tex/math.c @@ -27,7 +27,7 @@ #include "tokens.h" static const char _svn_version[] = - "$Id: math.c 2314 2009-04-17 20:57:48Z hhenkel $ " + "$Id: math.c 2362 2009-04-29 16:03:00Z taco $ " "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/math.c $"; #define mode cur_list.mode_field @@ -1320,7 +1320,7 @@ void set_math_char(mathcodeval mval) case 3: subtype(p) = rel_noad_type; break; case 4: subtype(p) = open_noad_type; break; case 5: subtype(p) = close_noad_type; break; - case 6: subtype(p) = inner_noad_type; break; + case 6: subtype(p) = punct_noad_type; break; } } vlink(tail) = p; diff --git a/Build/source/texk/web2c/luatexdir/tex/mlist.c b/Build/source/texk/web2c/luatexdir/tex/mlist.c index 0f211151fbc..5f19d162fdb 100644 --- a/Build/source/texk/web2c/luatexdir/tex/mlist.c +++ b/Build/source/texk/web2c/luatexdir/tex/mlist.c @@ -24,7 +24,7 @@ #include "commands.h" static const char _svn_version[] = - "$Id: mlist.c 2323 2009-04-18 09:53:47Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/mlist.c $"; + "$Id: mlist.c 2358 2009-04-27 06:39:33Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/mlist.c $"; #define delimiter_factor int_par(param_delimiter_factor_code) #define delimiter_shortfall dimen_par(param_delimiter_shortfall_code) @@ -2356,21 +2356,17 @@ void make_radical(pointer q) theta = fraction_rule(cur_style); y = var_delimiter(left_delimiter(q), cur_size, height(x) + depth(x) + clr + theta); - left_delimiter(q) = null; theta = height(y); - delta = depth(y) - (height(x) + depth(x) + clr); - if (delta > 0) - clr = clr + half(delta); /* increase the actual clearance */ - shift_amount(y) = -(height(x) + clr); - h = shift_amount(y) + height(y); } else { y = var_delimiter(left_delimiter(q), cur_size, height(x) + depth(x) + clr + theta); - left_delimiter(q) = null; - delta = height(y) - (height(x) + clr + theta); - shift_amount(y) = delta; - h = -(height(y) - shift_amount(y)); } + left_delimiter(q) = null; + delta = (depth(y)+height(y)-theta) - (height(x) + depth(x) + clr); + if (delta > 0) + clr = clr + half(delta); /* increase the actual clearance */ + shift_amount(y) = (height(y)-theta)-(height(x) + clr); + h = depth(y) + height(y); p = overbar(x, clr, theta, radical_kern(cur_style), node_attr(y)); vlink(y) = p; if (degree(q) != null) { @@ -2388,8 +2384,9 @@ void make_radical(pointer q) x = new_kern(ar); reset_attributes(x, node_attr(degree(q))); vlink(x) = y; - shift_amount(r) = - (xn_over_d(h, radical_degree_raise(cur_style), 100)); + shift_amount(r) = + - ((xn_over_d(h, radical_degree_raise(cur_style), 100)) - + depth(y) - shift_amount(y)); vlink(r) = x; x = new_kern(br); reset_attributes(x, node_attr(degree(q))); diff --git a/Build/source/texk/web2c/luatexdir/utils/utils.c b/Build/source/texk/web2c/luatexdir/utils/utils.c index f6afa5687ae..a621d1e2448 100644 --- a/Build/source/texk/web2c/luatexdir/utils/utils.c +++ b/Build/source/texk/web2c/luatexdir/utils/utils.c @@ -42,15 +42,15 @@ #include "png.h" #ifdef POPPLER_VERSION #define xpdfString "poppler" -#define xpdfVersion POPPLER_VERSION #include "poppler-config.h" +#define xpdfVersion POPPLER_VERSION #else #define xpdfString "xpdf" #include "xpdf/config.h" /* just to get the xpdf version */ #endif static const char __svn_version[] = - "$Id: utils.c 2329 2009-04-18 14:25:30Z hhenkel $ " + "$Id: utils.c 2381 2009-05-08 11:52:01Z taco $ " "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/utils/utils.c $"; #define check_nprintf(size_get, size_want) \ |