diff options
Diffstat (limited to 'office/texlive/branch2013/r30928-new-metapost-release-1.803-source-files-from-r30833.diff')
-rw-r--r-- | office/texlive/branch2013/r30928-new-metapost-release-1.803-source-files-from-r30833.diff | 245 |
1 files changed, 245 insertions, 0 deletions
diff --git a/office/texlive/branch2013/r30928-new-metapost-release-1.803-source-files-from-r30833.diff b/office/texlive/branch2013/r30928-new-metapost-release-1.803-source-files-from-r30833.diff new file mode 100644 index 0000000000..c924ea1bfc --- /dev/null +++ b/office/texlive/branch2013/r30928-new-metapost-release-1.803-source-files-from-r30833.diff @@ -0,0 +1,245 @@ +Index: Build/source/texk/web2c/mplibdir/mp.w +=================================================================== +--- Build/source/texk/web2c/mplibdir/mp.w (revision 30927) ++++ Build/source/texk/web2c/mplibdir/mp.w (revision 30928) +@@ -1,4 +1,4 @@ +-% $Id: mp.w 1901 2013-05-22 14:42:19Z taco $ ++% $Id: mp.w 1918 2013-06-13 12:47:55Z taco $ + % + % This file is part of MetaPost; + % the MetaPost program is in the public domain. +@@ -73,12 +73,12 @@ + @^extensions to \MP@> + @^system dependencies@> + +-@d default_banner "This is MetaPost, Version 1.802" /* printed when \MP\ starts */ ++@d default_banner "This is MetaPost, Version 1.803" /* printed when \MP\ starts */ + @d true 1 + @d false 0 + + @<Metapost version header@>= +-#define metapost_version "1.802" ++#define metapost_version "1.803" + + @ The external library header for \MP\ is |mplib.h|. It contains a + few typedefs and the header defintions for the externally used +@@ -516,8 +516,8 @@ + /* open the terminal for output */ + t_open_out(); + #if DEBUG +- setlinebuf(stdout); +- setlinebuf(mp->term_out); ++ setvbuf(stdout, (char *) NULL, _IONBF, 0); ++ setvbuf(mp->term_out, (char *) NULL, _IONBF, 0); + #endif + if (opt->math_mode == mp_math_scaled_mode) { + mp->math = mp_initialize_scaled_math(mp); +@@ -8330,8 +8330,8 @@ + @ @c + void mp_curl_ratio (MP mp, mp_number *ret, mp_number gamma_orig, mp_number a_tension, mp_number b_tension) { + mp_number alpha, beta, gamma, num, denom, ff; /* registers */ +- mp_number n1; +- new_number (n1); ++ mp_number arg1; ++ new_number (arg1); + new_fraction (alpha); + new_fraction (beta); + new_fraction (gamma); +@@ -8342,49 +8342,33 @@ + make_fraction (beta, unity_t, b_tension); + number_clone (gamma, gamma_orig); + if (number_lessequal(alpha, beta)) { +- mp_number arg1; +- new_number (arg1); + make_fraction (ff, alpha, beta); + number_clone (arg1, ff); + take_fraction (ff, arg1, arg1); + number_clone (arg1, gamma); + take_fraction (gamma, arg1, ff); + convert_fraction_to_scaled (beta); +- set_number_from_addition (arg1, alpha, three_t); +- number_substract (arg1, beta); +- take_fraction (denom, gamma, arg1); +- set_number_from_substraction (arg1, fraction_three_t, alpha); +- number_add (arg1, beta); +- take_fraction (num, gamma, arg1); +- free_number (arg1); ++ take_fraction (denom, gamma, alpha); ++ number_add (denom, three_t); + } else { +- mp_number arg1, r1; +- new_number (arg1); +- new_number (r1); + make_fraction (ff, beta, alpha); + number_clone (arg1, ff); + take_fraction (ff, arg1, arg1); + take_fraction (arg1, beta, ff); + convert_fraction_to_scaled (arg1); +- number_clone (beta, arg1); +- take_fraction (arg1, gamma, alpha); +- new_number (denom); +- { +- set_number_from_div (n1, ff, twelvebits_3); +- number_clone (denom, arg1); +- number_add (denom, n1); +- number_substract (denom, beta); +- } +- set_number_from_substraction (arg1, fraction_three_t, alpha); +- take_fraction (num, gamma, arg1); +- number_add (num, beta); +- free_number (arg1); +- free_number (r1); ++ number_clone (beta, arg1); ++ take_fraction (denom, gamma, alpha); ++ set_number_from_div (arg1, ff, twelvebits_3); ++ number_add (denom, arg1); + } +- number_clone (n1, denom); +- number_double (n1); +- number_double (n1); /* n1 = 4*denom */ +- if (number_greaterequal(num, n1)) { ++ number_substract (denom, beta); ++ set_number_from_substraction (arg1, fraction_three_t, alpha); ++ take_fraction (num, gamma, arg1); ++ number_add (num, beta); ++ number_clone (arg1, denom); ++ number_double (arg1); ++ number_double (arg1); /* arg1 = 4*denom */ ++ if (number_greaterequal(num, arg1)) { + number_clone(*ret, fraction_four_t); + } else { + make_fraction (*ret, num, denom); +@@ -8395,7 +8379,7 @@ + free_number (num); + free_number (denom); + free_number (ff); +- free_number (n1); ++ free_number (arg1); + } + + +Index: Build/source/texk/web2c/mplibdir/mpmathdouble.w +=================================================================== +--- Build/source/texk/web2c/mplibdir/mpmathdouble.w (revision 30927) ++++ Build/source/texk/web2c/mplibdir/mpmathdouble.w (revision 30928) +@@ -1,4 +1,4 @@ +-% $Id: mpmathdouble.w 1892 2013-03-22 10:21:05Z taco $ ++% $Id: mpmathdouble.w 1915 2013-06-13 10:17:31Z taco $ + % + % This file is part of MetaPost; + % the MetaPost program is in the public domain. +@@ -17,13 +17,13 @@ + @ Introduction. + + @c +-#define _ISOC99_SOURCE /* to get the round() prototype */ + #include <w2c/config.h> + #include <stdio.h> + #include <stdlib.h> + #include <string.h> + #include <math.h> + #include "mpmathdouble.h" /* internal header */ ++#define ROUND(a) floor((a)+0.5) + @h + + @ @c +@@ -402,11 +402,7 @@ + } + void mp_number_angle_to_scaled (mp_number *A) { + A->type = mp_scaled_type; +- if (A->data.dval >= 0) { +- A->data.dval = round(A->data.dval) / angle_multiplier; +- } else { +- A->data.dval = -((-round(A->data.dval))/ angle_multiplier); +- } ++ A->data.dval = ROUND(A->data.dval) / angle_multiplier; + } + void mp_number_scaled_to_fraction (mp_number *A) { + A->type = mp_fraction_type; +@@ -422,7 +418,7 @@ + + @c + int mp_number_to_scaled(mp_number A) { +- return (int)round(A.data.dval * 65536.0); ++ return (int)ROUND(A.data.dval * 65536.0); + } + int mp_number_to_int(mp_number A) { + return (int)(A.data.dval); +@@ -434,7 +430,7 @@ + return A.data.dval; + } + int mp_number_odd(mp_number A) { +- return odd((int)round(A.data.dval * 65536.0)); ++ return odd((int)ROUND(A.data.dval * 65536.0)); + } + int mp_number_equal(mp_number A, mp_number B) { + return (A.data.dval==B.data.dval); +@@ -962,7 +958,7 @@ + @ |round_unscaled| rounds a |scaled| and converts it to |int| + @c + int mp_round_unscaled(mp_number x_orig) { +- int x = (int)round(x_orig.data.dval); ++ int x = (int)ROUND(x_orig.data.dval); + return x; + } + +Index: Build/source/texk/web2c/mplibdir/ChangeLog +=================================================================== +--- Build/source/texk/web2c/mplibdir/ChangeLog (revision 30927) ++++ Build/source/texk/web2c/mplibdir/ChangeLog (revision 30928) +@@ -1,3 +1,7 @@ ++2013-06-16 Taco Hoekwater <taco@luatex.org> ++ ++ Import metapost 1.803 (released version) ++ + 2013-05-22 Taco Hoekwater <taco@luatex.org> + + * svgout.w: fix a problem with overly large characters in +Index: Build/source/texk/web2c/mplibdir/mpost.w +=================================================================== +--- Build/source/texk/web2c/mplibdir/mpost.w (revision 30927) ++++ Build/source/texk/web2c/mplibdir/mpost.w (revision 30928) +@@ -1,4 +1,4 @@ +-% $Id: mpost.w 1895 2013-03-27 11:17:17Z taco $ ++% $Id: mpost.w 1916 2013-06-13 10:19:49Z taco $ + % + % This file is part of MetaPost; + % the MetaPost program is in the public domain. +@@ -443,7 +443,7 @@ + mpost_xfree(mpversion); + } + } +- ++ + mpost_xfree (cnf_cmd); + return (int)(ret == 0); + } +@@ -1290,6 +1290,17 @@ + @ Now this is really it: \MP\ starts and ends here. + + @c ++static char *cleaned_invocation_name(char *arg) ++{ ++ char *ret, *dot; ++ const char *start = xbasename(arg); ++ ret = xstrdup(start); ++ dot = strrchr(ret, '.'); ++ if (dot != NULL) { ++ *dot = 0; /* chop */ ++ } ++ return ret; ++} + int + #if defined(WIN32) && !defined(__MINGW32__) && defined(DLLPROC) + DLLPROC (int argc, char **argv) +@@ -1306,8 +1317,8 @@ + options->ini_version = (int)false; + options->print_found_names = (int)true; + { +- const char *base = xbasename(argv[0]); +- if (!strcmp(base, "dvitomp") || !strcasecmp(base, "dvitomp.exe")) ++ const char *base = cleaned_invocation_name(argv[0]); ++ if (FILESTRCASEEQ(base, "dvitomp")) + dvitomp_only=1; + } + if (dvitomp_only) { |