texlive[50068] Build/source/texk: aux files for cross-compilation of

commits+lscarso at tug.org commits+lscarso at tug.org
Wed Feb 20 02:04:18 CET 2019


Revision: 50068
          http://tug.org/svn/texlive?view=revision&revision=50068
Author:   lscarso
Date:     2019-02-20 02:04:18 +0100 (Wed, 20 Feb 2019)
Log Message:
-----------
aux files for cross-compilation of Mingw win64; fixed spaces on luatex.am

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/luatexdir/am/luatex.am

Added Paths:
-----------
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/README
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/bitmap2eps.ico
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/bitmap2eps.svg
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/calldll.c
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/callexe.c
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun.dll
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun.exe
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun_dll.c
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun_exe.c
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/readme.txt
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/libkpathsea-6.dll
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/readme.txt
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.dll
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.exe
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.tlu
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript_dll.c
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript_exe.c
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/texlua.dll
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/texlua.exe
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/tl-tray-menu.c
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr-gui.txt
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr.ico
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr.svg
    trunk/Build/source/texk/texlive/w64_mingw_wrapper/wrunscript_exe.c

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/README
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/README	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/README	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,8 @@
+This file and the graphics are public domain.
+
+This directory is for the generic TeX Live wrapper on Windows that is
+used for most scripts. The main file is runscript.tlu.
+
+*.svg are the sources for *.ico,
+and the *.ico are used in wrappers.
+Hence their locaton here.

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/bitmap2eps.ico
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/texlive/w64_mingw_wrapper/bitmap2eps.ico
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/bitmap2eps.ico	2019-02-19 23:56:38 UTC (rev 50067)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/bitmap2eps.ico	2019-02-20 01:04:18 UTC (rev 50068)

Property changes on: trunk/Build/source/texk/texlive/w64_mingw_wrapper/bitmap2eps.ico
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/bitmap2eps.svg
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/bitmap2eps.svg	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/bitmap2eps.svg	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,525 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg3004"
+   version="1.1"
+   inkscape:version="0.48.0 r9654"
+   width="320"
+   height="320"
+   xml:space="preserve"
+   sodipodi:docname="grid_square.svg"><metadata
+     id="metadata3010"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+     id="defs3008" /><sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1254"
+     inkscape:window-height="954"
+     id="namedview3006"
+     showgrid="false"
+     inkscape:zoom="2.334375"
+     inkscape:cx="165.30692"
+     inkscape:cy="160"
+     inkscape:window-x="266"
+     inkscape:window-y="30"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="g3012" /><g
+     id="g3012"
+     inkscape:groupmode="layer"
+     inkscape:label="ink_ext_XXXXXX"
+     transform="matrix(1.25,0,0,-1.25,0,320)"><path
+       inkscape:connector-curvature="0"
+       id="path3016"
+       style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 0,0 16,0 16,16 0,16 0,0 z" /><path
+       style="fill:#100000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 20 300 L 20 320 L 40 320 L 60 320 L 60 300 L 40 300 L 20 300 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3018" /><path
+       style="fill:#300000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 60 300 L 60 320 L 80 320 L 100 320 L 100 300 L 80 300 L 60 300 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3022" /><path
+       style="fill:#500000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 100 300 L 100 320 L 120 320 L 140 320 L 140 300 L 120 300 L 100 300 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3026" /><path
+       style="fill:#700000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 140 300 L 140 320 L 160 320 L 180 320 L 180 300 L 160 300 L 140 300 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3030" /><path
+       style="fill:#8f0000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 180 300 L 180 320 L 200 320 L 220 320 L 220 300 L 200 300 L 180 300 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3034" /><path
+       style="fill:#536c5d;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 220 300 L 220 320 L 240 320 L 260 320 L 260 300 L 240 300 L 220 300 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3038" /><path
+       style="fill:#800000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 260 300 L 260 320 L 280 320 L 300 320 L 300 300 L 280 300 L 260 300 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3042" /><path
+       inkscape:connector-curvature="0"
+       id="path3046"
+       style="fill:#1c2224;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 240,0 16,0 0,16 -16,0 0,-16 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3048"
+       style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,0 0,0 0,16 0,0 0,-16 z" /><path
+       style="fill:#001000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 0 260 L 0 280 L 0 300 L 20 300 L 20 280 L 20 260 L 0 260 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3050" /><path
+       style="fill:#101000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 20 260 L 20 280 L 20 300 L 40 300 L 60 300 L 60 280 L 60 260 L 40 260 L 20 260 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3052" /><path
+       style="fill:#782121;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 60 260 L 60 280 L 60 300 L 80 300 L 100 300 L 100 280 L 100 260 L 80 260 L 60 260 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3056" /><path
+       style="fill:#501000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 100 260 L 100 280 L 100 300 L 120 300 L 140 300 L 140 280 L 140 260 L 120 260 L 100 260 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3060" /><path
+       style="fill:#701000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 140 260 L 140 280 L 140 300 L 160 300 L 180 300 L 180 280 L 180 260 L 160 260 L 140 260 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3064" /><path
+       style="fill:#16502d;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 180 260 L 180 280 L 180 300 L 200 300 L 220 300 L 220 280 L 220 260 L 200 260 L 180 260 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3068" /><path
+       style="fill:#782121;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 220 260 L 220 280 L 220 300 L 240 300 L 260 300 L 260 280 L 260 260 L 240 260 L 220 260 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3072" /><path
+       style="fill:#004455;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 260 260 L 260 280 L 260 300 L 280 300 L 300 300 L 300 280 L 300 260 L 280 260 L 260 260 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3076" /><path
+       style="fill:#782121;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 300 260 L 300 280 L 300 300 L 320 300 L 320 280 L 320 260 L 300 260 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3080" /><path
+       inkscape:connector-curvature="0"
+       id="path3082"
+       style="fill:#ff1000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,16 0,0 0,16 0,0 0,-16 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3116"
+       style="fill:#ff2000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,32 0,0 0,16 0,0 0,-16 z" /><path
+       style="fill:#003000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 0 220 L 0 240 L 0 260 L 20 260 L 20 240 L 20 220 L 0 220 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3118" /><path
+       style="fill:#164450;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 20 220 L 20 240 L 20 260 L 40 260 L 60 260 L 60 240 L 60 220 L 40 220 L 20 220 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3120" /><path
+       style="fill:#303000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 60 220 L 60 240 L 60 260 L 80 260 L 100 260 L 100 240 L 100 220 L 80 220 L 60 220 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3124" /><path
+       style="fill:#503000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 100 220 L 100 240 L 100 260 L 120 260 L 140 260 L 140 240 L 140 220 L 120 220 L 100 220 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3128" /><path
+       style="fill:#703000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 140 220 L 140 240 L 140 260 L 160 260 L 180 260 L 180 240 L 180 220 L 160 220 L 140 220 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3132" /><path
+       style="fill:#8f3000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 180 220 L 180 240 L 180 260 L 200 260 L 220 260 L 220 240 L 220 220 L 200 220 L 180 220 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3136" /><path
+       style="fill:#af3000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 220 220 L 220 240 L 220 260 L 240 260 L 260 260 L 260 240 L 260 220 L 240 220 L 220 220 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3140" /><path
+       style="fill:#803300;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 260 220 L 260 240 L 260 260 L 280 260 L 300 260 L 300 240 L 300 220 L 280 220 L 260 220 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3144" /><path
+       style="fill:#808000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 300 220 L 300 240 L 300 260 L 320 260 L 320 240 L 320 220 L 300 220 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3148" /><path
+       inkscape:connector-curvature="0"
+       id="path3150"
+       style="fill:#ff3000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,48 0,0 0,16 0,0 0,-16 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3184"
+       style="fill:#ff4000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,64 0,0 0,16 0,0 0,-16 z" /><path
+       style="fill:#005000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 0 180 L 0 200 L 0 220 L 20 220 L 20 200 L 20 180 L 0 180 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3186" /><path
+       style="fill:#105000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 20 180 L 20 200 L 20 220 L 40 220 L 60 220 L 60 200 L 60 180 L 40 180 L 20 180 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3188" /><path
+       style="fill:#305000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 60 180 L 60 200 L 60 220 L 80 220 L 100 220 L 100 200 L 100 180 L 80 180 L 60 180 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3192" /><path
+       style="fill:#505000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 100 180 L 100 200 L 100 220 L 120 220 L 140 220 L 140 200 L 140 180 L 120 180 L 100 180 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3196" /><path
+       style="fill:#803300;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 140 180 L 140 200 L 140 220 L 160 220 L 180 220 L 180 200 L 180 180 L 160 180 L 140 180 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3200" /><path
+       style="fill:#8f5000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 180 180 L 180 200 L 180 220 L 200 220 L 220 220 L 220 200 L 220 180 L 200 180 L 180 180 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3204" /><path
+       style="fill:#af5000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 220 180 L 220 200 L 220 220 L 240 220 L 260 220 L 260 200 L 260 180 L 240 180 L 220 180 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3208" /><path
+       style="fill:#536c67;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 260 180 L 260 200 L 260 220 L 280 220 L 300 220 L 300 200 L 300 180 L 280 180 L 260 180 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3212" /><path
+       style="fill:#784421;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 300 180 L 300 200 L 300 220 L 320 220 L 320 200 L 320 180 L 300 180 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3216" /><path
+       inkscape:connector-curvature="0"
+       id="path3218"
+       style="fill:#ff5000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,80 0,0 0,16 0,0 0,-16 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3252"
+       style="fill:#ff6000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,96 0,0 0,16 0,0 0,-16 z" /><path
+       style="fill:#007000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 0 140 L 0 160 L 0 180 L 20 180 L 20 160 L 20 140 L 0 140 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3254" /><path
+       style="fill:#554400;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 20 140 L 20 160 L 20 180 L 40 180 L 60 180 L 60 160 L 60 140 L 40 140 L 20 140 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3256" /><path
+       style="fill:#307000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 60 140 L 60 160 L 60 180 L 80 180 L 100 180 L 100 160 L 100 140 L 80 140 L 60 140 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3260" /><path
+       style="fill:#507000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 100 140 L 100 160 L 100 180 L 120 180 L 140 180 L 140 160 L 140 140 L 120 140 L 100 140 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3264" /><path
+       style="fill:#707000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 140 140 L 140 160 L 140 180 L 160 180 L 180 180 L 180 160 L 180 140 L 160 140 L 140 140 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3268" /><path
+       style="fill:#8f7000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 180 140 L 180 160 L 180 180 L 200 180 L 220 180 L 220 160 L 220 140 L 200 140 L 180 140 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3272" /><path
+       style="fill:#af7000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 220 140 L 220 160 L 220 180 L 240 180 L 260 180 L 260 160 L 260 140 L 240 140 L 220 140 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3276" /><path
+       style="fill:#502d16;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 260 140 L 260 160 L 260 180 L 280 180 L 300 180 L 300 160 L 300 140 L 280 140 L 260 140 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3280" /><path
+       style="fill:#225500;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 300 140 L 300 160 L 300 180 L 320 180 L 320 160 L 320 140 L 300 140 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3284" /><path
+       inkscape:connector-curvature="0"
+       id="path3286"
+       style="fill:#ff7000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,112 0,0 0,16 0,0 0,-16 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3320"
+       style="fill:#ff8000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,128 0,0 0,16 0,0 0,-16 z" /><path
+       style="fill:#782144;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 0 100 L 0 120 L 0 140 L 20 140 L 20 120 L 20 100 L 0 100 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3322" /><path
+       style="fill:#004455;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 20 100 L 20 120 L 20 140 L 40 140 L 60 140 L 60 120 L 60 100 L 40 100 L 20 100 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3324" /><path
+       style="fill:#308f00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 60 100 L 60 120 L 60 140 L 80 140 L 100 140 L 100 120 L 100 100 L 80 100 L 60 100 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3328" /><path
+       style="fill:#803300;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 100 100 L 100 120 L 100 140 L 120 140 L 140 140 L 140 120 L 140 100 L 120 100 L 100 100 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3332" /><path
+       style="fill:#708f00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 140 100 L 140 120 L 140 140 L 160 140 L 180 140 L 180 120 L 180 100 L 160 100 L 140 100 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3336" /><path
+       style="fill:#8f8f00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 180 100 L 180 120 L 180 140 L 200 140 L 220 140 L 220 120 L 220 100 L 200 100 L 180 100 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3340" /><path
+       style="fill:#af8f00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 220 100 L 220 120 L 220 140 L 240 140 L 260 140 L 260 120 L 260 100 L 240 100 L 220 100 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3344" /><path
+       style="fill:#cf8f00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 260 100 L 260 120 L 260 140 L 280 140 L 300 140 L 300 120 L 300 100 L 280 100 L 260 100 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3348" /><path
+       style="fill:#782167;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 300 100 L 300 120 L 300 140 L 320 140 L 320 120 L 320 100 L 300 100 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3352" /><path
+       inkscape:connector-curvature="0"
+       id="path3354"
+       style="fill:#ff8f00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,144 0,0 0,16 0,0 0,-16 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3388"
+       style="fill:#ff9f00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,160 0,0 0,16 0,0 0,-16 z" /><path
+       style="fill:#504416;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 0 60 L 0 80 L 0 100 L 20 100 L 20 80 L 20 60 L 0 60 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3390" /><path
+       style="fill:#165016;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 20 60 L 20 80 L 20 100 L 40 100 L 60 100 L 60 80 L 60 60 L 40 60 L 20 60 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3392" /><path
+       style="fill:#502d16;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 60 60 L 60 80 L 60 100 L 80 100 L 100 100 L 100 80 L 100 60 L 80 60 L 60 60 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3396" /><path
+       style="fill:#668000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 100 60 L 100 80 L 100 100 L 120 100 L 140 100 L 140 80 L 140 60 L 120 60 L 100 60 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3400" /><path
+       style="fill:#806600;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 140 60 L 140 80 L 140 100 L 160 100 L 180 100 L 180 80 L 180 60 L 160 60 L 140 60 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3404" /><path
+       style="fill:#008033;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 180 60 L 180 80 L 180 100 L 200 100 L 220 100 L 220 80 L 220 60 L 200 60 L 180 60 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3408" /><path
+       style="fill:#784421;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 220 60 L 220 80 L 220 100 L 240 100 L 260 100 L 260 80 L 260 60 L 240 60 L 220 60 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3412" /><path
+       style="fill:#a0892c;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 260 60 L 260 80 L 260 100 L 280 100 L 300 100 L 300 80 L 300 60 L 280 60 L 260 60 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3416" /><path
+       style="fill:#806600;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 300 60 L 300 80 L 300 100 L 320 100 L 320 80 L 320 60 L 300 60 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3420" /><path
+       inkscape:connector-curvature="0"
+       id="path3422"
+       style="fill:#ffaf00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,176 0,0 0,16 0,0 0,-16 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3456"
+       style="fill:#ffbf00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,192 0,0 0,16 0,0 0,-16 z" /><path
+       style="fill:#484537;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 0 20 L 0 40 L 0 60 L 20 60 L 20 40 L 20 20 L 0 20 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3458" /><path
+       style="fill:#338000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 20 20 L 20 40 L 20 60 L 40 60 L 60 60 L 60 40 L 60 20 L 40 20 L 20 20 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3460" /><path
+       style="fill:#668000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 60 20 L 60 40 L 60 60 L 80 60 L 100 60 L 100 40 L 100 20 L 80 20 L 60 20 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3464" /><path
+       style="fill:#aa4400;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 100 20 L 100 40 L 100 60 L 120 60 L 140 60 L 140 40 L 140 20 L 120 20 L 100 20 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3468" /><path
+       style="fill:#008033;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 140 20 L 140 40 L 140 60 L 160 60 L 180 60 L 180 40 L 180 20 L 160 20 L 140 20 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3472" /><path
+       style="fill:#6f7c91;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 180 20 L 180 40 L 180 60 L 200 60 L 220 60 L 220 40 L 220 20 L 200 20 L 180 20 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3476" /><path
+       style="fill:#aa4400;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 220 20 L 220 40 L 220 60 L 240 60 L 260 60 L 260 40 L 260 20 L 240 20 L 220 20 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3480" /><path
+       style="fill:#786721;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 260 20 L 260 40 L 260 60 L 280 60 L 300 60 L 300 40 L 300 20 L 280 20 L 260 20 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3484" /><path
+       style="fill:#a02c2c;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 300 20 L 300 40 L 300 60 L 320 60 L 320 40 L 320 20 L 300 20 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3488" /><path
+       inkscape:connector-curvature="0"
+       id="path3490"
+       style="fill:#ffcf00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,208 0,0 0,16 0,0 0,-16 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3524"
+       style="fill:#ffdf00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,224 0,0 0,16 0,0 0,-16 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3526"
+       style="fill:#550000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 0,240 16,0 0,16 -16,0 0,-16 z" /><path
+       style="fill:#483737;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 20 0 L 20 20 L 40 20 L 60 20 L 60 0 L 40 0 L 20 0 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3528" /><path
+       style="fill:#800000;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 60 0 L 60 20 L 80 20 L 100 20 L 100 0 L 80 0 L 60 0 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3532" /><path
+       style="fill:#161650;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 100 0 L 100 20 L 120 20 L 140 20 L 140 0 L 120 0 L 100 0 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3536" /><path
+       style="fill:#445500;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 140 0 L 140 20 L 160 20 L 180 20 L 180 0 L 160 0 L 140 0 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3540" /><path
+       style="fill:#445016;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 180 0 L 180 20 L 200 20 L 220 20 L 220 0 L 200 0 L 180 0 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3544" /><path
+       style="fill:#806600;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 220 0 L 220 20 L 240 20 L 260 20 L 260 0 L 240 0 L 220 0 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3548" /><path
+       style="fill:#89a02c;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="M 260 0 L 260 20 L 280 20 L 300 20 L 300 0 L 280 0 L 260 0 z "
+       transform="matrix(0.8,0,0,-0.8,0,256)"
+       id="path3552" /><path
+       inkscape:connector-curvature="0"
+       id="path3556"
+       style="fill:#280b0b;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 240,240 16,0 0,16 -16,0 0,-16 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3558"
+       style="fill:#ffef00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,240 0,0 0,16 0,0 0,-16 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3560"
+       style="fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 0,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3562"
+       style="fill:#10ff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 16,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3564"
+       style="fill:#20ff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 32,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3566"
+       style="fill:#30ff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 48,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3568"
+       style="fill:#40ff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 64,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3570"
+       style="fill:#50ff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 80,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3572"
+       style="fill:#60ff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 96,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3574"
+       style="fill:#70ff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 112,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3576"
+       style="fill:#80ff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 128,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3578"
+       style="fill:#8fff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 144,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3580"
+       style="fill:#9fff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 160,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3582"
+       style="fill:#afff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 176,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3584"
+       style="fill:#bfff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 192,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3586"
+       style="fill:#cfff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 208,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3588"
+       style="fill:#dfff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 224,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3590"
+       style="fill:#efff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 240,256 16,0 0,0 -16,0 z" /><path
+       inkscape:connector-curvature="0"
+       id="path3592"
+       style="fill:#ffff00;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       d="m 256,256 0,0 0,0 0,0 z" /><g
+       transform="scale(0.90694018,-1.1026086)"
+       style="font-size:113.55400085px;font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Frutiger;-inkscape-font-specification:Frutiger Heavy"
+       id="text3979"><path
+         d="m 18.037517,-135.17236 33.384876,0 c 14.194236,0 30.886688,-3.97441 30.886688,-22.93791 0,-9.65208 -5.450603,-15.32979 -16.011114,-17.48732 l 0,-0.22711 c 8.857203,-2.9524 13.967142,-8.51656 13.967142,-18.5093 0,-13.62646 -11.014753,-20.09906 -25.776758,-20.09906 l -36.450834,0 0,79.2607 m 21.121044,-33.61199 6.472578,0 c 7.267449,0 15.556898,0.79489 15.556898,9.42498 0,8.06233 -8.062342,9.19788 -15.784006,9.19788 l -6.24547,0 0,-18.62286 m 0,-30.65958 6.131916,0 c 7.040341,0 13.853588,0.68133 13.853588,7.94878 0,6.69968 -7.153909,8.403 -14.080696,8.403 l -5.904808,0 0,-16.35178"
+         style=""
+         id="path3988" /><path
+         d="m 93.888041,-135.17236 20.666829,0 -0.45422,-60.86495 0.22711,0 19.30418,60.86495 19.41774,0 20.21261,-60.86495 0.22711,0 -0.34067,60.86495 20.66683,0 0,-79.2607 -32.02223,0 -17.60087,52.68906 -0.2271,0 -16.806,-52.68906 -33.271319,0 0,79.2607"
+         style=""
+         id="path3990" /><path
+         d="m 205.39807,-135.17236 57.34477,0 0,-14.98913 -31.3409,0 5.6777,-4.88282 c 7.49455,-6.47258 24.187,-22.0295 24.187,-37.47282 0,-15.78399 -12.71807,-23.27857 -30.43247,-23.27857 -4.65571,0 -12.15029,0.56777 -23.50568,4.65571 l 0.79488,16.46533 c 4.88281,-2.83885 13.96715,-5.45059 20.78038,-5.45059 6.35902,0 11.24184,2.95241 11.24184,9.99275 0,10.67407 -18.62287,25.89033 -34.74752,39.85745 l 0,15.10269"
+         style=""
+         id="path3992" /></g><g
+       transform="scale(0.90694016,-1.1026086)"
+       style="font-size:144.79751587px;font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Frutiger;-inkscape-font-specification:Frutiger Heavy"
+       id="text3983"><path
+         d="m 17.609618,-14.892303 72.833151,0 0,-19.113273 -45.900813,0 0,-22.878007 41.846482,0 0,-19.113272 -41.846482,0 0,-20.850842 44.30804,0 0,-19.113273 -71.240378,0 0,101.068667"
+         style=""
+         id="path3995" /><path
+         d="m 105.40442,-14.892303 26.93234,0 0,-35.330594 10.42542,0 c 25.19474,0 40.10891,-12.163012 40.10891,-32.579441 0,-22.733192 -14.47978,-33.158632 -45.32162,-33.158632 l -32.14505,0 0,101.068667 m 26.93234,-81.955394 6.95028,0 c 9.26703,0 16.65171,3.330353 16.65171,13.610966 0,10.570208 -7.38468,13.900562 -16.65171,13.900562 l -6.95028,0 0,-27.511528"
+         style=""
+         id="path3997" /><path
+         d="m 193.34402,-17.498659 c 8.97744,2.895948 20.70606,4.343926 30.11789,4.343926 22.44359,0 44.45283,-7.095105 44.45283,-33.303429 0,-36.488937 -47.78318,-25.484379 -47.78318,-41.846482 0,-8.83264 11.29422,-9.411839 18.09969,-9.411839 7.67426,0 15.49334,1.447979 22.44362,4.633521 l 1.73757,-20.850838 c -6.80548,-2.31676 -16.36213,-3.76474 -26.06355,-3.76474 -20.27164,0 -44.01845,6.66071 -44.01845,30.986669 0,36.778532 47.78318,24.905191 47.78318,43.728849 0,8.108653 -8.10867,9.846232 -16.65171,9.846232 -11.1494,0 -20.85085,-2.895955 -27.80113,-6.660686 l -2.31676,22.298817"
+         style=""
+         id="path3999" /></g></g></svg>
\ No newline at end of file

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/calldll.c
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/calldll.c	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/calldll.c	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,13 @@
+/* Public domain.
+ * Originally written by Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+ *
+ * DLL calling main program for TeX & Co
+ * DLLPROC must be defined in the Makefile as,
+ * e.g., -DDLLPROC=dlltexmain.
+ */
+
+__declspec(dllimport) DLLPROC(int ac, char **av);
+int main(int ac, char **av)
+{
+  return (DLLPROC(ac, av));
+}

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/callexe.c
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/callexe.c	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/callexe.c	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,43 @@
+/* Public domain.
+ * Originally written by Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+ *
+ * WIN32 wrapper program replacing Unix symlinks such as,
+ * e.g., ofm2opl -> omfonts.
+ *
+ * EXEPROG must be defined in the Makefile as,
+ * e.g., -DEXEPROG=\"omfonts.exe\".
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <process.h>
+#include <string.h>
+#include <malloc.h>
+
+static int is_include_space(char *s)
+{
+  char *p;
+  p = strchr(s, ' ');
+  if(p) return 1;
+  p = strchr(s, '\t');
+  if(p) return 1;
+  return 0;
+}
+
+int main(int argc, char *argv[])
+{
+  int i;
+  char *p;
+
+  for(i = 0; i < argc; i++) {
+    if(is_include_space(argv[i])) {
+      p = (char *)malloc(strlen(argv[i])+3);
+      strcpy(p, "\"");
+      strcat(p, argv[i]);
+      strcat(p, "\"");
+      free(argv[i]);
+      argv[i] = p;
+    }
+  }
+  argv[argc] = NULL;
+  return _spawnvp(_P_WAIT, EXEPROG, (const char * const *)argv);
+}

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun.dll
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun.dll
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun.dll	2019-02-19 23:56:38 UTC (rev 50067)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun.dll	2019-02-20 01:04:18 UTC (rev 50068)

Property changes on: trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun.dll
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun.exe
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun.exe
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun.exe	2019-02-19 23:56:38 UTC (rev 50067)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun.exe	2019-02-20 01:04:18 UTC (rev 50068)

Property changes on: trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun.exe
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun_dll.c
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun_dll.c	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun_dll.c	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,306 @@
+/************************************************************************
+
+  Copyright:
+
+  Public Domain
+  Originally written in 2010 by Tomasz M. Trzeciak and Hans Hagen
+
+  This program is derived from the 'runscript' program originally
+  written in 2009 by T.M. Trzeciak. It has been adapted for use in
+  ConTeXt MkIV.
+
+  Comment:
+
+  In ConTeXt MkIV we have two core scripts: luatools.lua and
+  mtxrun.lua where the second one is used to launch other scripts.
+  Normally a user will use a call like:
+
+  mtxrun --script font --reload
+
+  Here mtxrun is a lua script. In order to avoid the usage of a cmd
+  file on windows this runner will start texlua directly. If the
+  shared library luatex.dll is available, texlua will be started in
+  the same process avoiding thus any additional overhead. Otherwise
+  it will be spawned in a new proces.
+
+  We also don't want to use other runners, like those that use kpse
+  to locate the script as this is exactly what mtxrun itself is doing
+  already. Therefore the runscript program is adapted to a more direct
+  approach suitable for mtxrun.
+
+  Compilation:
+
+  with gcc (size optimized):
+
+  gcc -Os -s -shared -o mtxrun.dll mtxrun_dll.c
+  gcc -Os -s -o mtxrun.exe mtxrun_exe.c -L./ -lmtxrun
+
+  with tcc (extra small size):
+
+  tcc -shared -o mtxrun.dll mtxrun_dll.c
+  tcc -o mtxrun.exe mtxrun_exe.c mtxrun.def
+
+************************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <windows.h>
+
+//#define STATIC
+#define IS_WHITESPACE(c) ((c == ' ') || (c == '\t'))
+#define MAX_CMD 32768
+#define DIE(...) { \
+  fprintf( stderr, "mtxrun: " ); \
+  fprintf( stderr, __VA_ARGS__ ); \
+  return 1; \
+}
+
+static char cmdline[MAX_CMD];
+static char dirpath[MAX_PATH];
+static char progname[MAX_PATH];
+static char scriptpath[MAX_PATH];
+static char luatexpath[MAX_PATH];
+HMODULE dllluatex = NULL;
+typedef int ( *mainlikeproc )( int, char ** );
+
+#ifdef STATIC
+int main( int argc, char *argv[] )
+#else
+__declspec(dllexport) int dllrunscript( int argc, char *argv[] )
+#endif
+{
+  char *binary, *s, *luatexfname, *argstr, **lua_argv;
+  int k, quoted, lua_argc;
+  int passprogname = 0;
+  unsigned char is_jit=0;
+
+  // directory of this module/executable
+  HMODULE module_handle = GetModuleHandle( "mtxrun.dll" );
+  // if ( module_handle == NULL ) exe path will be used, which is OK too
+  k = (int) GetModuleFileName( module_handle, dirpath, MAX_PATH );
+  if ( !k || ( k == MAX_PATH ) )
+    DIE( "unable to determine a valid module name\n" );
+  s = strrchr(dirpath, '\\');
+  if ( s == NULL ) DIE( "no directory part in module path: %s\n", dirpath );
+  *(++s) = '\0'; //remove file name, leave trailing backslash
+
+  // program name
+  k = strlen(argv[0]);
+  while ( k && (argv[0][k-1] != '/') && (argv[0][k-1] != '\\') ) k--;
+  strcpy(progname, &argv[0][k]);
+  s = progname;
+  if ( s = strrchr(s, '.') ) *s = '\0'; // remove file extension part
+
+   /* check "jit" : strlen("jit") = 3 */
+  if (strncmp(progname + strlen(progname) - 3, "jit", 3) == 0) {
+       is_jit = 1;
+       progname[strlen(progname) - 3]='\0';
+  }
+  else
+       is_jit = 0;
+ 
+  // script path
+
+  strcpy( scriptpath, dirpath );
+  k = strlen(progname);
+  if ( k < 6 ) k = 6; // in case the program name is shorter than "mtxrun"
+  if ( strlen(dirpath) + k + 4 >=  MAX_PATH )
+    DIE( "path too long: %s%s\n", dirpath, progname );
+
+  if ( strcmpi(progname,"mtxrun") == 0 ) {
+    strcat( scriptpath, progname );
+    strcat( scriptpath, ".lua" );
+  } else if ( strcmpi(progname,"luatools") == 0 ) {
+    strcat( scriptpath, "mtxrun.lua" );
+    strcpy( progname, "base" );
+    passprogname = 1;
+  } else if ( strcmpi(progname,"texmfstart") == 0 ) {
+    strcat( scriptpath, "mtxrun.lua" );
+  } else {
+    strcat( scriptpath, "mtxrun.lua" );
+    passprogname = 1;
+  }
+  if ( GetFileAttributes(scriptpath) == INVALID_FILE_ATTRIBUTES )
+    DIE( "file not found: %s\n", scriptpath );
+
+  // find luatex.exe /luajittex.exe
+  if ( SearchPath(
+		  dirpath, // was getenv( "PATH" ), // path to search (optional)
+		  (is_jit ? "luajittex.exe":"luatex.exe"),     // file name to search
+		  NULL,             // file extension to add (optional)
+		  MAX_PATH,         // output buffer size
+		  luatexpath,       // output buffer pointer
+		  &luatexfname )    // pointer to a file part in the output buffer (optional)
+       ) {
+    binary = (is_jit ? "luajittex.exe":"luatex.exe");
+  } else if ( SearchPath(
+			 dirpath, // was getenv( "PATH" ), // path to search (optional)
+			 (is_jit ? "texluajit.exe":"texlua.exe"),     // file name to search
+			 NULL,             // file extension to add (optional)
+			 MAX_PATH,         // output buffer size
+			 luatexpath,       // output buffer pointer
+			 &luatexfname )    // pointer to a file part in the output buffer (optional)
+	      ) {
+    binary = (is_jit ? "texluajit.exe":"texlua.exe");
+  } else if ( SearchPath(
+			 getenv("PATH"), // was dirpath,          // path to search (optional)
+			 (is_jit ? "luajittex.exe":"luatex.exe"),     // file name to search
+			 NULL,             // file extension to add (optional)
+			 MAX_PATH,         // output buffer size
+			 luatexpath,       // output buffer pointer
+			 &luatexfname )    // pointer to a file part in the output buffer (optional)
+	      ) {
+    binary = (is_jit ? "luajittex.exe":"luatex.exe");
+  } else if ( SearchPath(
+			 getenv("PATH") , // was dirpath,          // path to search (optional)
+			 (is_jit ? "texluajit.exe":"texlua.exe"),     // file name to search
+			 NULL,             // file extension to add (optional)
+			 MAX_PATH,         // output buffer size
+			 luatexpath,       // output buffer pointer
+			 &luatexfname )    // pointer to a file part in the output buffer (optional)
+	      ) {
+    binary = (is_jit ? "texluajit.exe":"texlua.exe");
+  }else {
+    DIE( "unable to locate texlua.exe on the search path" );
+  }
+
+  /* if ( SearchPath( */
+  /* 	   dirpath, // was getenv( "PATH" ), // path to search (optional) */
+  /* 	   (is_jit ? "luajittex.exe":"luatex.exe"),     // file name to search */
+  /* 	   NULL,             // file extension to add (optional) */
+  /* 	   MAX_PATH,         // output buffer size */
+  /* 	   luatexpath,       // output buffer pointer */
+  /* 	   &luatexfname )    // pointer to a file part in the output buffer (optional) */
+  /*      ) { */
+  /*   binary = (is_jit ? "luajittex.exe":"luatex.exe"); */
+  /* }else if ( SearchPath( */
+  /* 	       getenv("PATH"), // was dirpath,          // path to search (optional) */
+  /* 	       (is_jit ? "luajittex.exe":"luatex.exe"),     // file name to search */
+  /* 	       NULL,             // file extension to add (optional) */
+  /* 	       MAX_PATH,         // output buffer size */
+  /* 	       luatexpath,       // output buffer pointer */
+  /* 	       &luatexfname )    // pointer to a file part in the output buffer (optional) */
+  /* 	     ) { */
+  /*   binary = (is_jit ? "luajittex.exe":"luatex.exe"); */
+  /* }else if ( SearchPath( */
+  /* 	   dirpath, // was getenv( "PATH" ), // path to search (optional) */
+  /* 	   (is_jit ? "texluajit.exe":"texlua.exe"),     // file name to search */
+  /* 	   NULL,             // file extension to add (optional) */
+  /* 	   MAX_PATH,         // output buffer size */
+  /* 	   luatexpath,       // output buffer pointer */
+  /* 	   &luatexfname )    // pointer to a file part in the output buffer (optional) */
+  /*      ) { */
+  /*   binary = (is_jit ? "texluajit.exe":"texlua.exe"); */
+  /* }else if ( SearchPath( */
+  /* 	       getenv("PATH") , // was dirpath,          // path to search (optional) */
+  /* 	       (is_jit ? "texluajit.exe":"texlua.exe"),     // file name to search */
+  /* 	       NULL,             // file extension to add (optional) */
+  /* 	       MAX_PATH,         // output buffer size */
+  /* 	       luatexpath,       // output buffer pointer */
+  /* 	       &luatexfname )    // pointer to a file part in the output buffer (optional) */
+  /* 	     ) { */
+  /*   binary = (is_jit ? "texluajit.exe":"texlua.exe"); */
+  /* }else { */
+  /*   DIE( "unable to locate texlua.exe on the search path" ); */
+  /* } */
+
+
+
+
+  // link directly with luatex.dll if available in texlua's dir
+  strcpy( luatexfname, (is_jit ? "luajittex.dll":"luatex.dll") );
+  if ( dllluatex = LoadLibrary(luatexpath) )
+  {
+    mainlikeproc dllluatexmain = (mainlikeproc) GetProcAddress( dllluatex, (is_jit ? "dllluajittexmain": "dllluatexmain" ));
+    if ( dllluatexmain == NULL )
+      if (is_jit)
+       DIE( "unable to locate dllluatexmain procedure in luajittex.dll"  )
+     else 
+       DIE( "unable to locate dllluatexmain procedure in luatex.dll"  );
+
+    // set up argument list for texlua script
+
+    lua_argv = (char **)malloc( (argc + 5) * sizeof(char *) );
+    if ( lua_argv == NULL ) DIE( "out of memory\n" );
+    lua_argv[lua_argc=0] =  luatexfname;
+    lua_argv[++lua_argc] = "--luaonly";
+    lua_argv[++lua_argc] = scriptpath; // script to execute
+    if (passprogname) {
+      lua_argv[++lua_argc] = "--script";
+      lua_argv[++lua_argc] = progname;
+    }
+    for ( k = 1; k < argc; k++ ) lua_argv[++lua_argc] = argv[k];
+    lua_argv[++lua_argc] = NULL;
+
+    // call texlua interpreter
+    // dllluatexmain  never returns, but we pretend that it does
+    
+    k = dllluatexmain( lua_argc, lua_argv );
+    if (lua_argv) free( lua_argv );
+    return k;
+  }
+  // we are still here, so no luatex.dll; spawn texlua.exe instead
+
+  strcpy( luatexfname,binary);
+  strcpy( cmdline, " --luaonly " );
+  strcpy( cmdline, "\"" );
+  strcat( cmdline, luatexpath );
+  strcat( cmdline, "\" \"" );
+  strcat( cmdline, scriptpath );
+  strcat( cmdline, "\"" );
+  if (passprogname) {
+    strcat( cmdline, " --script " );
+    strcat( cmdline, progname );
+  }
+  argstr = GetCommandLine(); // get the command line of this process
+  if ( argstr == NULL ) DIE( "unable to retrieve the command line string\n" );
+
+  // skip over argv[0] in the argument string
+  // (it can contain embedded double quotes if launched from cmd.exe!)
+
+  for ( quoted = 0; (*argstr) && ( !IS_WHITESPACE(*argstr) || quoted ); argstr++ )
+    if (*argstr == '"') quoted = !quoted;
+
+  // pass through all the arguments
+
+  if ( strlen(cmdline) + strlen(argstr) >= MAX_CMD )
+    DIE( "command line string too long:\n%s%s\n", cmdline, argstr );
+  strcat( cmdline, argstr );
+
+  // create child process
+
+  STARTUPINFO si;
+  PROCESS_INFORMATION pi;
+  ZeroMemory( &si, sizeof(si) );
+  si.cb = sizeof(si);
+	si.dwFlags = STARTF_USESTDHANDLES;// | STARTF_USESHOWWINDOW;
+	//si.dwFlags = STARTF_USESHOWWINDOW;
+	//si.wShowWindow = SW_HIDE ; // can be used to hide console window (requires STARTF_USESHOWWINDOW flag)
+	si.hStdInput  = GetStdHandle( STD_INPUT_HANDLE );
+	si.hStdOutput = GetStdHandle( STD_OUTPUT_HANDLE );
+	si.hStdError  = GetStdHandle( STD_ERROR_HANDLE );
+  ZeroMemory( &pi, sizeof(pi) );
+  if( !CreateProcess(
+    NULL,     // module name (uses command line if NULL)
+    cmdline,  // command line
+    NULL,     // process security atrributes
+    NULL,     // thread security atrributes
+    TRUE,     // handle inheritance
+    0,        // creation flags, e.g. CREATE_NEW_CONSOLE, CREATE_NO_WINDOW, DETACHED_PROCESS
+    NULL,     // pointer to environment block (uses parent if NULL)
+    NULL,     // starting directory (uses parent if NULL)
+    &si,      // STARTUPINFO structure
+    &pi )     // PROCESS_INFORMATION structure
+  ) DIE( "command execution failed: %s\n", cmdline );
+  DWORD ret = 0;
+  CloseHandle( pi.hThread ); // thread handle is not needed
+  if ( WaitForSingleObject( pi.hProcess, INFINITE ) == WAIT_OBJECT_0 ) {
+    if ( !GetExitCodeProcess( pi.hProcess, &ret) )
+        DIE( "unable to retrieve process exit code: %s\n", cmdline );
+  } else DIE( "failed to wait for process termination: %s\n", cmdline );
+  CloseHandle( pi.hProcess );
+
+  // propagate exit code from the child process
+  return ret;
+
+}

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun_exe.c
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun_exe.c	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/mtxrun_exe.c	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,8 @@
+// This is the .exe part of the mtxrun program, see mtxrun_dll.c
+// for more details.
+
+#include <windows.h>
+
+__declspec(dllimport) int dllrunscript( int argc, char *argv[] );
+
+int main( int argc, char *argv[] ) { return dllrunscript( argc, argv ); }

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/readme.txt
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/readme.txt	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/context/readme.txt	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,40 @@
+Copyright:
+
+The originally 'runscript' program was written by in 2009 by T.M.Trzeciak and is
+public domain. This derived mtxrun program is an adapted version by Hans Hagen and
+Luigi Scarso.
+
+Comment:
+
+In ConTeXt MkIV we have two core scripts: luatools.lua and mtxrun.lua where the
+second one is used to launch other scripts. The mtxrun.exe program calls luatex.exe.
+
+Normally a user will use a call like:
+
+    mtxrun    --script font --reload
+
+Here mtxrun is a lua script. In order to avoid the usage of a cmd file on windows this
+runner will start texlua directly. In TeXlive a runner is added for each cmd file but
+we don't want that overhead (and extra files). By using an exe we can call these
+scripts in batch files without the need for using call.
+
+The mtxrun.exe file can be copied to a mtxrunjit.exe file in which case luajittex.exe
+is called.
+
+    mtxrunjit --script font --reload
+
+We also don't want to use other runners, like those that use kpse to locate the script
+as this is exactly what mtxrun itself is doing already. Therefore the runscript program
+is adapted to a more direct approach suitable for mtxrun.
+
+Compilation:
+
+with gcc (size optimized):
+
+    gcc -Os -s -shared -o mtxrun.dll mtxrun_dll.c
+    gcc -Os -s -o mtxrun.exe mtxrun_exe.c -L./ -lmtxrun
+
+with tcc (ver. 0.9.24), extra small size
+
+    tcc -shared -o runscript.dll runscript_dll.c
+    tcc -o runscript.exe runscript_exe.c runscript.def

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/libkpathsea-6.dll
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/texlive/w64_mingw_wrapper/libkpathsea-6.dll
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/libkpathsea-6.dll	2019-02-19 23:56:38 UTC (rev 50067)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/libkpathsea-6.dll	2019-02-20 01:04:18 UTC (rev 50068)

Property changes on: trunk/Build/source/texk/texlive/w64_mingw_wrapper/libkpathsea-6.dll
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/readme.txt
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/readme.txt	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/readme.txt	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,229 @@
+
+  Script wrappers in TeX Live on Windows
+  
+  Rationale
+  
+    Wrappers enable use of scripts on Windows as regular programs.  
+    They are also required for some binary programs to set up the 
+    right environment for them. 
+    
+    Batch scripts can be used for wrapping but they are not as universal 
+    as binaries (there are some odd cases where they don't work) and 
+    it is hard to make them robust and secure.  Compiled binary wrappers 
+    don't suffer from these problems but they are harder to write, debug
+    and maintain in comparison to scripts.  For these reasons a hybrid 
+    approach is taken that combines a binary stub with a launcher script.
+  
+  Adding wrappers for user scripts
+  
+    The script wrapping machinery is not limited to scripts shipped with 
+    TeX Live.  You can also use it for script programs from manually 
+    installed packages.  This should minimize problems when using them 
+    with TeX Live. 
+    
+    First, make sure that there is an interpreter program available on 
+    your system for the script you want to use.  Interpreters for Perl 
+    and Lua are bundled with TeX Live, all others have to be installed 
+    independently.  Lua scripts are the most efficient to run, so if you
+    consider writing a new script, that would be the recommended choice.
+    
+    The following script types and their file extensions are currently 
+    supported and searched in that order:
+    
+      Lua      (.tlu;.texlua;.lua) --  included
+      Perl     (.pl)               --  included
+      Ruby     (.rb)               --  requires installation
+      Python   (.py)               --  requires installation
+      Tcl      (.tcl)              --  requires installation
+      Java     (.jar)              --  requires installation
+      VBScript (.vbs)              --  part of Windows
+      JScript  (.js)               --  part of Windows
+      Batch    (.bat;.cmd)         --  part of Windows
+    
+    Finally, Unix-style extensionless scripts are searched as last and 
+    the interpreter program is established based on the she-bang (#!) 
+    specification on the very first line of the script.  This can be 
+    an arbitrary program but it must be present on the search path.
+    
+    Next, the script program needs to be installed somewhere below the 
+    'scripts' directory under one of the TEXMF trees (consult the 
+    documentation or texmf/web2c/texmf.cnf file for a list).  You may 
+    need to update the file search database afterwards with:
+    
+      mktexlsr [TEXMFDIR]
+      
+    It is also possible to use scripts that are outside of TEXMF hierarchy 
+    by adjusting TEXMFSCRIPTS environment or kpathsea variable, see 
+    kpathsea documentation for more information on setting its variables.
+    
+    Test if the script can be located with:
+    
+      kpsewhich --format=texmfscripts <script-name>.<ext>
+    
+    This should output the full path to the script if everything is 
+    properly installed and configured.  If this test is successful, 
+    the script can be run immediately with:
+    
+      runscript <script-name> [script arguments]
+    
+    If you prefer to call the script program simply by its name, copy 
+    and rename bin/win32/runscript.exe to <script-name>.exe and put it 
+    somewhere on the search path.
+
+  Wrapper structure
+  
+    Wrappers consist of small binary stubs and a common texlua script.  
+    The binary stubs are all the same, just different names (but CLI 
+    and GUI stubs differ, see below, and GUI stubs are actually all 
+    different due to different embedded icons).
+    
+    The job of the binary stub is twofold: (a) call the texlua launcher
+    script 'runscript.tlu' from the same directory (or more precisely 
+    from the directory containing 'runscript.dll') and (b) pass to it 
+    argv[0] and the unparsed argument string as the last two arguments 
+    (after adding a sentinel argument, which ends with a new line 
+    character).  Arbitrary C strings can be passed, because the script 
+    is executed by linking with luatex.dll and calling the lua 
+    interpreter internally rather than by spawning a new process.
+    
+    There are two flavours of the binary stub: one for CLI programs 
+    and another one for GUI programs.  The GUI variant does not open 
+    a console window nor does it block the command prompt if started 
+    from there.  It also uses a dialog box to display an error message 
+    in addition to outputting to stderr.
+    
+    The stubs are further split into a common DLL and EXE proxies 
+    to it.  This is for maintenance reasons - updates can be done by 
+    replacement of a single DLL rather than all binary stubs.
+    
+    The launcher script knows, which variant has been used to invoke it 
+    based on the sentinel argument.  The lack of this argument means 
+    that it was invoked in a standard way, i.e., through texlua.exe. 
+    
+    All the hard work of locating a script/program to execute happens 
+    in the launcher script.  The located script/program is always 
+    executed directly by spawning its interpreter (or binary) in a new 
+    process.  The system shell (cmd.exe) is never called (except for 
+    batch scripts, of course).  If the located script happens to be 
+    a (tex)lua script, it is loaded and called internally from within 
+    this script, i.e. no new process is spawned.  Execution is done 
+    using a protected call, so any compile or runtime errors are catched.
+    
+  Source files
+  
+    runscript.tlu     launcher script for locating and dispatching 
+                      target scripts/programs
+    runscript_dll.c   common DLL part of the binary stubs; locates and
+                      calls the launcher script
+    runscript_exe.c   EXE proxy to the common DLL for CLI mode stubs
+    wrunscript_exe.c  EXE proxy to the common DLL for GUI mode stubs
+  
+  Compilation of binaries (requires luatex.dll in the same directory)
+
+    with gcc (size optimized):
+    
+    x86_64-w64-mingw32-gcc -Os -s -shared -o runscript.dll runscript_dll.c -L./ -ltexlua
+    x86_64-w64-mingw32-gcc -Os -s -o runscript.exe runscript_exe.c -L./ -lrunscript
+Untested (todo):
+    x86_64-w64-mingw32-gcc -mwindows -Os -s -o wrunscript.exe wrunscript_exe.c -L./ -lrunscript
+
+Untested (todo):
+    with tcc (extra small size):
+    
+    tiny_impdef texlua.dll
+    tcc -shared -o runscript.dll runscript_dll.c luatex.def
+    tcc -o runscript.exe runscript_exe.c runscript.def
+    tcc -o wrunscript.exe wrunscript_exe.c runscript.def
+
+  License
+  
+    Originally written in 2009 by Tomasz M. Trzeciak, Public Domain.
+    
+    Prior work:
+    'tl-w32-wrapper.texlua' by Reinhard Kotucha and Norbert Preining.
+    'tl-w32-wrapper.cmd' by Tomasz M. Trzeciak.
+  
+  Changelog
+  
+    2009/12/04 
+        - initial version
+    2009/12/15 
+        - minor fixes for path & extension list parsing
+    2010/01/09 
+        - added support for GUI mode stubs
+    2010/02/28 
+        - enable GUI mode stubs for dviout, psv and texworks;
+        - added generic handling of sys programs
+        - added restricted repstopdf to alias_table
+    2010/03/13 
+        - added 'readme.txt' and changelog
+        - added support and docs for calling user added scripts; 
+          (use path of 'runscript.dll' instead of .exe stub to 
+          locate 'runscript.tlu' script)
+        - limit search for shell_escape_commands to system trees
+        - added function for creating directory hierarchy 
+        - fixed directory creation for dviout & texworks aliases
+        - fixed arg[0] of repstopdf & rpdfcrop
+    2010/03/28
+        - restructured docs, added --help and --version options 
+          (available only when invoked under 'runscript' name)
+        - use TEXMF_RESTRICTED_SCRIPTS kpse var for searching
+          shell_escape_commands
+        - changed command validation to handle a list of commands
+        - prepend GUI mode command(s) to the command list
+        - added support for .tcl scripts
+    2010/03/31
+        - fixed fatal bug in extention_map definition for GUI mode
+    2010/04/15
+        - encapsulated main chunk in a function to execute with 
+          pcall for more robustness and better error catching
+        - added texdoctk to scripts4tlperl table
+        - added tlgs and tlperl to alias_table; callable as e.g.: 
+          runscript tlperl ...
+        - doc tweaks
+    2010/04/22
+        - ensure only backslash is used in USERPROFILE variable 
+          (Adobe Reader crash case)
+        - fixed argument processing for direct execution under texlua
+        - more doc tweaks
+    2010/05/30
+        - Windows XP or newer required to run TeXworks
+    2010/06/04
+        - added support for Perl scripts starting with eval-exec-perl 
+          construct in place of she-bang (#!)
+    2010/06/25
+        - run internal tlperl only with our Perl
+        - added fontinst to alias_table
+        - added support for all tex4ht commands from mk4ht.pl
+        - removed some unsued aliases
+        - some code refactoring and cleanup
+    2010/12/28
+        - use of external Perl now requires kpathsea variable
+          TEXLIVE_WINDOWS_TRY_EXTERNAL_PERL to be explicitly set to 1
+        - alias_table replaced with if-elseif-end tests to streamline 
+          special cases and to avoid hardcoding of texmf* file paths
+        - added a2ping to special cases (requires -x switch to Perl)
+        - set ASYMPTOTE_GS (for asy) to full path to tlgs
+    2011/01/09
+        - removed tex4ht commands starting with ht from mk4ht aliases; 
+          they have their own scripts and mk4ht calls them internally, 
+          so aliasing results in an infinite recursion
+        - removed alias for fontinst (no fontinst.exe any more)
+        - fixed GUI-mode interpreter for Ruby
+    2011/09/10
+        - added -dDisableFAPI=true to psview argument list. Needed by
+          gs-9.xx
+    2012/03/12
+        - added '-i', '.' to psview argument list (author's request)
+        - added environment clean up from Perl specific variables 
+          (when not using external Perl)
+    2012/08/05
+        - added alias for fmtutil
+    2013/05/09
+        - added alias mkluatexfontdb -> luaotfload-tool
+    2013/07/03
+        - fix for psview and UNC paths in unix-style
+        - remove not needed is_abs_path function
+    2019/02/19
+        - patches for cross-compiled texlive with Mingw x86_64 from Ubuntu
+

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.dll
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.dll
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.dll	2019-02-19 23:56:38 UTC (rev 50067)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.dll	2019-02-20 01:04:18 UTC (rev 50068)

Property changes on: trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.dll
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.exe
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.exe
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.exe	2019-02-19 23:56:38 UTC (rev 50067)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.exe	2019-02-20 01:04:18 UTC (rev 50068)

Property changes on: trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.exe
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.tlu
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.tlu	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.tlu	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,928 @@
+
+
+local svnrevision = string.match("$Revision: 49485 $", "%d+") or "0"
+local svndate     = string.match("$Date: 2018-12-23 16:28:08 +0100 (Sun, 23 Dec 2018) $", "[-%d]+") or "2009-12-04"
+local bannerstr   = "runscript wrapper utility (rev. " ..
+                    svnrevision .. ", " .. svndate .. ")\n" .. 
+                    "usage:   runscript script-name [arguments]\n" ..
+                    "try -help [-v] for more information"
+
+local helpstr = [[
+
+  Script wrappers in TeX Live on Windows
+  
+  Rationale
+  
+    Wrappers enable use of scripts on Windows as regular programs.  
+    They are also required for some binary programs to set up the 
+    right environment for them. 
+    
+    Batch scripts can be used for wrapping but they are not as universal 
+    as binaries (there are some odd cases where they don't work) and 
+    it is hard to make them robust and secure.  Compiled binary wrappers 
+    don't suffer from these problems but they are harder to write, debug
+    and maintain in comparison to scripts.  For these reasons a hybrid 
+    approach is taken that combines a binary stub with a launcher script.
+  
+  Adding wrappers for user scripts
+  
+    The script wrapping machinery is not limited to scripts shipped with 
+    TeX Live.  You can also use it for script programs from manually 
+    installed packages.  This should minimize problems when using them 
+    with TeX Live. 
+    
+    First, make sure that there is an interpreter program available
+    on your system for the script you want to use.  Interpreters for
+    Perl, Lua and Tcl/Tk (GUI scripts only) are bundled with TeX
+    Live, all others have to be installed independently.  Lua
+    scripts are the most efficient to run, so if you consider
+    writing a new script, that would be the recommended choice.
+    
+    The following script types and their file extensions are currently 
+    supported and searched in that order:
+    
+      Lua      (.tlu;.texlua;.lua) --  included
+      Perl     (.pl)               --  included
+      Ruby     (.rb)               --  requires installation
+      Python   (.py)               --  requires installation
+      Tcl      (.tcl)              --  included (GUI scripts only)
+      Java     (.jar)              --  requires installation
+      VBScript (.vbs)              --  part of Windows
+      JScript  (.js)               --  part of Windows
+      Batch    (.bat;.cmd)         --  part of Windows
+    
+    Finally, Unix-style extensionless scripts are searched as last and 
+    the interpreter program is established based on the she-bang (#!) 
+    specification on the very first line of the script.  This can be 
+    an arbitrary program but it must be present on the search path.
+    
+    Next, the script program needs to be installed somewhere below the 
+    'scripts' directory under one of the TEXMF trees (consult the 
+    documentation or texmf/web2c/texmf.cnf file for a list).  You may 
+    need to update the file search database afterwards with:
+    
+      mktexlsr [TEXMFDIR]
+      
+    It is also possible to use scripts that are outside of TEXMF hierarchy 
+    by adjusting TEXMFSCRIPTS environment or kpathsea variable, see 
+    kpathsea documentation for more information on setting its variables.
+    
+    Test if the script can be located with:
+    
+      kpsewhich --format=texmfscripts <script-name>.<ext>
+    
+    This should output the full path to the script if everything is 
+    properly installed and configured.  If this test is successful, 
+    the script can be run immediately with:
+    
+      runscript <script-name> [script arguments]
+    
+    If you prefer to call the script program simply by its name, copy 
+    and rename bin/win32/runscript.exe (or bin/win64/runscript.exe for
+    64-bit Windows) to <script-name>.exe and put it somewhere on the
+    search path.]]
+
+local docstr = [[
+
+  Wrapper structure
+  
+    Wrappers consist of small binary stubs and a common texlua script.  
+    The binary stubs are all the same, just different names (but CLI 
+    and GUI stubs differ, see below, and GUI stubs are actually all 
+    different due to different embedded icons).
+    
+    The job of the binary stub is twofold: (a) call the texlua launcher
+    script 'runscript.tlu' from the same directory (or more precisely 
+    from the directory containing 'runscript.dll') and (b) pass to it 
+    argv[0] and the unparsed argument string as the last two arguments 
+    (after adding a sentinel argument, which ends with a new line 
+    character).  Arbitrary C strings can be passed, because the script 
+    is executed by linking with luatex.dll and calling the lua 
+    interpreter internally rather than by spawning a new process.
+    
+    There are two flavours of the binary stub: one for CLI programs 
+    and another one for GUI programs.  The GUI variant does not open 
+    a console window nor does it block the command prompt if started 
+    from there.  It also uses a dialog box to display an error message 
+    in addition to outputting to stderr.
+    
+    The stubs are further split into a common DLL and EXE proxies 
+    to it.  This is for maintenance reasons - updates can be done by 
+    replacement of a single DLL rather than all binary stubs.
+    
+    The launcher script knows, which variant has been used to invoke it 
+    based on the sentinel argument.  The lack of this argument means 
+    that it was invoked in a standard way, i.e., through texlua.exe. 
+    
+    All the hard work of locating a script/program to execute happens 
+    in the launcher script.  The located script/program is always 
+    executed directly by spawning its interpreter (or binary) in a new 
+    process.  The system shell (cmd.exe) is never called (except for 
+    batch scripts, of course).  If the located script happens to be 
+    a (tex)lua script, it is loaded and called internally from within 
+    this script, i.e. no new process is spawned.  Execution is done 
+    using a protected call, so any compile or runtime errors are caught.
+    
+  Source files
+  
+    runscript.tlu     launcher script for locating and dispatching 
+                      target scripts/programs
+    runscript_dll.c   common DLL part of the binary stubs; locates and
+                      calls the launcher script
+    runscript_exe.c   EXE proxy to the common DLL for CLI mode stubs
+    wrunscript_exe.c  EXE proxy to the common DLL for GUI mode stubs
+  
+  Compilation of binaries (requires luatex.dll in the same directory)
+
+    with gcc (size optimized):
+    
+    gcc -Os -s -shared -o runscript.dll runscript_dll.c -L./ -lluatex
+    gcc -Os -s -o runscript.exe runscript_exe.c -L./ -lrunscript
+    gcc -mwindows -Os -s -o wrunscript.exe wrunscript_exe.c -L./ -lrunscript
+
+    with tcc (extra small size):
+    
+    tiny_impdef luatex.dll
+    tcc -shared -o runscript.dll runscript_dll.c luatex.def
+    tcc -o runscript.exe runscript_exe.c runscript.def
+    tcc -o wrunscript.exe wrunscript_exe.c runscript.def
+
+  License
+  
+    Originally written in 2009 by Tomasz M. Trzeciak, Public Domain.
+    
+    Prior work:
+    'tl-w32-wrapper.texlua' by Reinhard Kotucha and Norbert Preining.
+    'tl-w32-wrapper.cmd' by Tomasz M. Trzeciak.
+  
+  Changelog
+  
+    2009/12/04 
+        - initial version
+    2009/12/15 
+        - minor fixes for path & extension list parsing
+    2010/01/09 
+        - added support for GUI mode stubs
+    2010/02/28 
+        - enable GUI mode stubs for dviout, psv and texworks;
+        - added generic handling of sys programs
+        - added restricted repstopdf to alias_table
+    2010/03/13 
+        - added 'readme.txt' and changelog
+        - added support and docs for calling user added scripts; 
+          (use path of 'runscript.dll' instead of .exe stub to 
+          locate 'runscript.tlu' script)
+        - limit search for shell_escape_commands to system trees
+        - added function for creating directory hierarchy 
+        - fixed directory creation for dviout & texworks aliases
+        - fixed arg[0] of repstopdf & rpdfcrop
+    2010/03/28
+        - restructured docs, added --help and --version options 
+          (available only when invoked under 'runscript' name)
+        - use TEXMF_RESTRICTED_SCRIPTS kpse var for searching
+          shell_escape_commands
+        - changed command validation to handle a list of commands
+        - prepend GUI mode command(s) to the command list
+        - added support for .tcl scripts
+    2010/03/31
+        - fixed fatal bug in extention_map definition for GUI mode
+    2010/04/15
+        - encapsulated main chunk in a function to execute with 
+          pcall for more robustness and better error catching
+        - added texdoctk to scripts4tlperl table
+        - added tlgs and tlperl to alias_table; callable as e.g.: 
+          runscript tlperl ...
+        - doc tweaks
+    2010/04/22
+        - ensure only backslash is used in USERPROFILE variable 
+          (Adobe Reader crash case)
+        - fixed argument processing for direct execution under texlua
+        - more doc tweaks
+    2010/05/30
+        - Windows XP or newer required to run TeXworks
+    2010/06/04
+        - added support for Perl scripts starting with eval-exec-perl 
+          construct in place of she-bang (#!)
+    2010/06/25
+        - run internal tlperl only with our Perl
+        - added fontinst to alias_table
+        - added support for all tex4ht commands from mk4ht.pl
+        - removed some unsued aliases
+        - some code refactoring and cleanup
+    2010/12/28
+        - use of external Perl now requires kpathsea variable
+          TEXLIVE_WINDOWS_TRY_EXTERNAL_PERL to be explicitly set to 1
+        - alias_table replaced with if-elseif-end tests to streamline 
+          special cases and to avoid hardcoding of texmf* file paths
+        - added a2ping to special cases (requires -x switch to Perl)
+        - set ASYMPTOTE_GS (for asy) to full path to tlgs
+    2011/01/09
+        - removed tex4ht commands starting with ht from mk4ht aliases; 
+          they have their own scripts and mk4ht calls them internally, 
+          so aliasing results in an infinite recursion
+        - removed alias for fontinst (no fontinst.exe any more)
+        - fixed GUI-mode interpreter for Ruby
+    2011/09/10
+        - added -dDisableFAPI=true to psview argument list. Needed by
+          gs-9.xx
+    2012/03/12
+        - added '-i', '.' to psview argument list (author's request)
+        - added environment clean up from Perl specific variables 
+          (when not using external Perl)
+    2012/08/05
+        - added alias for fmtutil
+    2013/05/09
+        - added alias mkluatexfontdb -> luaotfload-tool
+    2013/07/03
+        - fix for psview and UNC paths in unix-style
+        - remove not needed is_abs_path function
+    2013/08/07
+        - handle updmap-sys via updmap --sys
+    2013/08/08
+        - allow overriding gs/gs_dll/gs_lib with kpse variables
+	  TEXLIVE_WINDOWS_EXTERNAL_GS, ..._GS_LIB, ..._GS_DLL
+    2013/08/30
+        - do not pass -NULL to dviout, to allow users changing and
+	  saving settings. Patch by Yusuke KUROKI
+    2013/09/22
+        - add TEXMFDIST/fonts to the GS_LIB path. Patch by Yusuke KUROKI
+    2014/04/30
+        - fix for argument duplication in fmtutil
+    2015/04/12
+        - handle fmtutil-sys via fmtutil --sys
+    2015/09/10
+        - more slash flipping for the sake of vbscript and unc paths
+    2015/12/11
+    	- fix spurious arguments for updmap and fmtutil
+    2016/04/22
+    	- Warning if external perl is requested but missing
+    2017/04/22 (exactly one year later ;-)
+        - Cater for fmtutil-user and updmap-user => -user arg        
+    2017/04/24
+        - GS_LIB setting for tlgs.
+    2017/05/06
+        - introduce sys_user_progs, make checks for updmap/fmtutil
+          use sys_user_progs instead, add kanji-config-updmap
+    2018/03/12
+        - introduce a new function gettexmfdist() for security.
+    2018/04/06
+        - introduce a new function is_64bit_windows_os() to
+          check Windows OS.
+    2018/06/20
+        - support also scripts in trees other than TEXMFDIST:
+          https://tug.org/pipermail/tex-live/2018-June/041922.html
+    2018/10/10
+        - support cluttex scripts
+    2018/11/08
+        - use included tcltk interpreter
+
+]]
+
+-- HELPER SUBROUTINES --
+
+local TEXDIR
+local guimode
+
+local function show_error(msg)
+  if guimode then
+    os.setenv('RUNSCRIPT_ERROR_MESSAGE', msg)
+    if lfs.isfile(TEXDIR..'/tlpkg/tltcl/tclkit.exe') and
+        lfs.isfile(TEXDIR..'/tlpkg/tltcl/gui_err.tcl') then
+      os.spawn{TEXDIR..'/tlpkg/tltcl/tclkit.exe',
+          TEXDIR..'/tlpkg/tltcl/gui_err.tcl'}
+    end
+  else
+    io.stderr:write(msg, '\n')
+  end
+end
+
+-- quotes string with spaces
+local function _q(str)
+  str = string.gsub(str, '"', '') -- disallow embedded double quotes
+  return string.find(str, "%s") and '"'..str..'"' or str
+end
+
+-- prepends directories to path if they are not already there
+local function prepend_path(path, ...)
+  local pathcmp = string.lower(string.gsub(path, '/', '\\'))..';'
+  for k = 1, select('#', ...) do 
+    local dir = string.lower(string.gsub(select(k, ...), '/', '\\'))..';'
+    if not string.find(pathcmp, dir, 1, true) then path = dir..path end
+  end
+  return path
+end
+
+-- searches the PATH for a file
+local function search_path(fname, PATH, PATHEXT)
+  if string.find(fname, '[/\\]') then 
+    return nil, "directory part not allowed for PATH search: "..fname 
+  end
+  PATH = PATH or os.getenv('PATH')
+  PATHEXT = PATHEXT or '\0' -- '\0' for no extension
+  for dir in string.gmatch(PATH, '[^;]+') do
+    local dirsep = (string.find(dir, '\\') and '\\' or '/')
+    for ext in string.gmatch(PATHEXT, '[^;]+') do
+      local f = dir..dirsep..fname..ext
+      if lfs.isfile(f) then return f, ext end
+    end
+  end
+  return nil, "file or program not on PATH: "..fname
+end
+
+-- tests for tex4ht command (as given in mk4ht.pl)
+-- except for commands starting with 'ht' (they have their own scripts)
+local function is_tex4ht_command(progname)
+  local prefixes = 'xh uxh xhm mz oo es js jm tei teim db dbm w jh jh1'
+  local formats = 'context latex tex texi xelatex xetex'
+  for p in string.gmatch(prefixes, '%S+') do
+    for q in string.gmatch(formats, '%S+') do
+      if (progname == p..q) then 
+        -- we have a hit, but not all combinations are valid
+        return (p ~= 'teim' and p ~=  'dbm') or (q ~= 'xelatex' and q~= 'xetex')
+      end
+    end
+  end
+  return false
+end
+
+-- checks whether an item is in an array
+local function contains (tab, val)
+  for index, value in ipairs(tab) do
+    if value == val then
+      return true
+    end
+  end
+  return false
+end
+
+-- locates texmfscript to execute
+local function find_texmfscript(progname, ext_list)
+  ext_list = ext_list or '\0'
+  for ext in string.gmatch(ext_list, '[^;]+') do
+    local progfullname = kpse.find_file(progname..ext, 'texmfscripts')
+    if progfullname then return progfullname, ext end
+  end
+  return nil, "no appropriate script or program found: "..progname
+end
+
+-- converts the #! line to arg table 
+-- used for scripts w/o extension
+-- only the two most common cases are considered:
+-- #! /path/to/command [options]
+-- #! /usr/bin/env command [options]
+-- ([options] after the command are retained as well)
+local function shebang_to_argv(progfullname)
+  local fid, errmsg = io.open(progfullname, 'r')
+  if not fid then return nil, errmsg end
+  local fstln = fid:read('*line')
+  fid:close()
+  if string.find(fstln, "eval.*exit.*exec.*perl") then 
+    -- special case of Perl's time-honoured "totally devious construct":
+    -- eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
+    return {"perl"}
+  elseif (string.sub(fstln, 1, 2) ~= '#!') then
+    return nil, "don't know how to execute script: "..progfullname
+  end
+  local argv = string.explode( string.sub(fstln, 3) ) -- split on spaces
+  argv[1] = string.match(argv[1], '[^/]+$')
+  if (argv[1] == 'env') then table.remove(argv, 1) end
+  return argv
+end
+
+-- checks if command exists on the path and returns its full path
+local function check_command(cmdlist, PATH)
+  for cmd in string.gmatch(cmdlist, '%S+') do
+    local cmdext = cmd..(string.find(cmd, '%.[^\\/.]*$') and '' or '.exe')
+    local fullcmd = search_path(cmdext, PATH)
+    if fullcmd then 
+      return fullcmd, cmd
+    end
+  end
+  return nil, 'program not found (not part of TeX Live): '..cmdlist
+end
+
+-- creates directory or directory hierarchy
+local function mkdir_plus(dir)
+  if lfs.mkdir(dir) then
+    return true
+  end
+  -- try with system's mkdir in case we need to create intermediate dirs too
+  local ret = os.spawn({[0]=search_path("cmd.exe"), 
+                        string.format('cmd.exe /x /c mkdir "%s"', dir)})
+  if ret == 0 then
+    return true
+  else
+    return nil, string.format("cannot create directory (error code %d): %s", ret, dir)
+  end
+end
+
+--
+-- return the TEXMFDIST directory in TeX Live
+--
+local function gettexmfdist()
+  local ffi = require("ffi")
+  ffi.cdef[[
+  typedef void*  HANDLE;
+  typedef char*  LPCSTR;
+  int GetModuleFileNameA(HANDLE h, LPCSTR l, int i);
+  HANDLE GetModuleHandleA(const char *a);
+  ]]
+  local buffer = ffi.new("char[?]", 512)
+  local runscripthandle = ffi.C.GetModuleHandleA("runscript.dll")
+  if runscripthandle == nil then
+    return nil
+  end
+  local err = ffi.C.GetModuleFileNameA(runscripthandle, buffer, 256)
+  if err == 0 then
+    return nil
+  end
+  local str = ffi.string(buffer)
+  str = string.gsub(str, "\\","/")
+  str = string.reverse(str)
+  local a, b
+-- remove '/runscript.dll'
+  a, b = string.find(str, '/', 1, true)
+  str = string.sub(str,a+1)
+-- remove '/win32'
+  a, b = string.find(str, '/', 1, true)
+  str = string.sub(str,a+1)
+-- remove '/bin'
+  a, b = string.find(str, '/', 1, true)
+  str = string.sub(str,a+1)
+  str = string.reverse(str)
+  str = str .. '/texmf-dist'
+  return str
+end
+
+--
+-- Is the Windows OS 64bit?
+--
+local function is_64bit_windows_os()
+  local return_val = false
+  -- 32 bit binaries always work, thus the default is false
+  local architecture = os.getenv('PROCESSOR_ARCHITECTURE')
+  if architecture ~= nil then
+    if architecture == 'x86' then
+      local is_wow64 = os.getenv('PROCESSOR_ARCHITEW6432')
+      if is_wow64 == nil then
+        return_val = false
+      else
+        return_val = true
+      end
+    else
+      return_val = true
+    end
+  end
+  return return_val
+end
+
+-- MAIN_CHUNK -- encapsulated in a function for more robust execution with pcall
+
+local function MAIN_CHUNK()
+
+--[[
+
+OVERVIEW OF MAIN_CHUNK
+
+We start out with a lot of housekeeping, especially with respect to
+perl and ghostscript: if we are going to use the built-in versions,
+then the search path and other environment variables must be set or
+unset to make these findable and working right.
+
+Next we compose an ARGV table for os.spawn, unless the script turns
+out to be a [tex]lua script; see further down this comment block.
+
+The parameter table ARGV can have the following elements (see the
+luatex manual on os.exec and os.spawn):
+
+- ARGV[0]: the full path to the interpreter
+- ARGV[1]: the filename part of the interpreter. The interpreter choice
+  depends on the detected script extension and also on gui mode.
+- ARGV[2]: progfulname, the full path to the script
+- ARGV[3]: argline, i.e. the unparsed arguments for the script.
+  This is normally the last argument passed to runscript.tlu.
+  See the actual code for when this is not the case.
+
+ARGV[0] gets priority over ARGV[1] if it is present.
+
+After everything has been set up, a call os.spawn(ARGV) runs the
+right program with the right arguments.
+
+But in case the script to be run is a texlua script, we run the script
+in the current texlua process using the dofile function. The original arg
+argument table may have been modified before then.
+
+Some variables:
+
+- ARGV, see above
+- arg, the texlua argument table of runscript.tlu
+- progname, the name under which [w]runscript.exe was called
+- progfullname, the full path of the script to be run. This variable
+  is introduced only after some special cases have been dealt with.
+- argline, unparsed arguments to the script; may get modified
+
+--]]
+
+-- set the system-default value for LC_CTYPE
+-- http://tug.org/pipermail/tex-live/2018-May/041628.html
+os.setlocale("", "ctype")
+
+-- preprocess arguments: arg[-1] => texlua.exe, arg[0] => scriptname
+
+-- guimode already declared local
+guimode = false
+local argline = ''
+-- check for the sentinel argment coming from the .exe stub 
+if arg[#arg-2] and ( string.sub(arg[#arg-2], -1) == '\n' ) then
+  -- argv[0] and unparsed argument line are passed 
+  -- from the .exe stub as the two last arguments 
+  -- pop them up from the arg table
+  argline = table.remove(arg) -- pop unparsed arguments
+  arg[0] = table.remove(arg) -- pop C stub's argv[0]
+  guimode = (table.remove(arg) == 'GUI_MODE\n') -- pop sentinel argument
+else
+  -- we must be called as: texlua runscript.tlu progname ...
+  -- this is treated the same as: runscript[.exe] progname ...
+  -- we don't have the unparsed arument line in this case, so construct one
+  for k = #arg, 1, -1 do argline = _q(arg[k]) .. ' ' .. argline end
+end
+
+-- program name
+
+-- lower arg[0] : get file name part : remove extension 
+local progname, substcount = string.lower(arg[0]):gsub('^.*[\\/]', ''):gsub('%.[^.]*$', '')
+-- special behaviour when called under 'runscript' name
+if (progname == 'runscript') then
+  -- we are called as: runscript progname ...
+  -- or as: runscript --help|-h|--version ...
+  -- handle options first (only --help and --version)
+  local opt, param = {}, nil
+  while true do
+    -- remove the first argument from the arg table and from the argline string
+    -- (this argument should have no embedded spaces!)
+    param = table.remove(arg, 1)
+    if not param then break end
+    argline = string.gsub(argline, '^%S+%s*', '')
+    local optname =  string.lower(param):match('^%-%-?(.*)$')
+    if not optname then
+      break
+    elseif (optname == 'h') or (optname == 'help') then
+      opt.help = true
+    elseif (optname == 'v') then
+      opt.v = true
+    elseif (optname == 'version') then
+      opt.version = true
+    else
+      error("unknown option: "..param.."\n"..bannerstr)
+    end
+  end
+  if opt.help then
+    print(helpstr)
+    if opt.v then print(docstr) end
+    os.exit(0)
+  elseif opt.version or opt.v then
+    print(bannerstr)
+    os.exit(0)
+  end
+  -- make sure progname is valid 
+  arg[0] = assert(param, "not enough arguments!\n"..bannerstr)
+  progname = string.lower(arg[0]):gsub('^.*[\\/]', ''):gsub('%.[^.]*$', '')
+  assert(progname == string.lower(arg[0]), "bad command name: " .. arg[0])
+end
+-- special case of sys programs
+progname, substcount = string.gsub(progname, '%-sys$', '')
+local sysprog = (substcount > 0) -- true if there was a -sys suffix removed
+-- special case of user programs
+-- we do not guard against programs foobar-user-sys ... we don't ship them
+progname, substcount = string.gsub(progname, '%-user$', '')
+local userprog = (substcount > 0) -- true if there was a -user suffix removed
+-- prevent recursive calls to this script
+assert(progname ~= 'runscript', "oops! wrapping the wrapper?")
+
+
+-- kpse and environment set-up
+
+-- init kpathsea 
+local k = -1 
+while arg[k-1] do k = k - 1 end -- in case of a call: luatex --luaonly ...
+local lua_binary = arg[k]
+kpse.set_program_name(lua_binary, progname)
+
+-- various dir-vars
+-- TEXDIR already declared local
+TEXDIR = kpse.var_value('SELFAUTOPARENT')
+-- local TEXMFDIST = kpse.var_value('TEXMFDIST')
+-- use a new function to obtain TEXMFDIST
+local TEXMFDIST = gettexmfdist()
+if TEXMFDIST == nil then
+  TEXMFDIST = kpse.var_value('TEXMFDIST')
+end
+local BINDIR = kpse.var_value('SELFAUTOLOC')
+local PATH = os.getenv('PATH') or ''
+
+-- list of programs that have -sys and -user variants
+local sys_user_progs = { 'updmap', 'fmtutil', 'kanji-config-updmap' }
+
+-- restricted programs
+local shell_escape_commands = string.lower(kpse.var_value('shell_escape_commands') or '')
+local is_restricted_progname = string.find( ','..shell_escape_commands..',', 
+                                            ','..progname..',', 1, true)
+if is_restricted_progname then
+  -- limit search path to the restricted (system) trees 
+  -- (not really necessary for entries in the alias_table, 
+  -- because they are not searched for with kpathsea)
+  os.setenv('TEXMFSCRIPTS', kpse.var_value('TEXMF_RESTRICTED_SCRIPTS'))
+end
+-- perl stuff
+local scripts4tlperl = {
+  tlperl = true, 
+  updmap = true, 
+  fmtutil = true,
+  ['updmap-sys'] = true, 
+  ['fmtutil-sys'] = true, 
+}
+local try_extern_perl = (kpse.var_value('TEXLIVE_WINDOWS_TRY_EXTERNAL_PERL') == '1') and 
+                        not (guimode or is_restricted_progname or scripts4tlperl[progname])
+local PERLEXE = try_extern_perl and search_path('perl.exe', PATH)
+local extperl_warn
+if not PERLEXE then
+  if try_extern_perl then extperl_warn = [[
+External Perl missing or outdated. Please install a recent Perl, or configure
+TeX Live to always use the builtin Perl:
+  tlmgr conf texmf TEXLIVE_WINDOWS_TRY_EXTERNAL_PERL 0
+Meanwhile, continuing with built-in Perl...
+]]
+  end -- if try_extern_perl
+  PERLEXE = TEXDIR..'/tlpkg/tlperl/bin/perl.exe'
+  os.setenv('PERL5LIB', TEXDIR..'/tlpkg/tlperl/lib')
+  PATH = prepend_path(PATH, TEXDIR..'/tlpkg/tlperl/bin')
+  local PERLENV = 'PERL5OPT;PERLIO;PERLIO_DEBUG;PERLLIB;PERL5DB;PERL5DB_THREADED;' ..
+                  'PERL5SHELL;PERL_ALLOW_NON_IFS_LSP;PERL_DEBUG_MSTATS;' ..
+                  'PERL_DESTRUCT_LEVEL;PERL_DL_NONLAZY;PERL_ENCODING;PERL_HASH_SEED;' ..
+                  'PERL_HASH_SEED_DEBUG;PERL_ROOT;PERL_SIGNALS;PERL_UNICODE'
+  for var in string.gmatch(PERLENV, '[^;]+') do os.setenv(var, nil) end
+end
+-- gs stuff
+local override_gs
+if not is_restricted_progname then
+  override_gs = kpse.var_value('TEXLIVE_WINDOWS_EXTERNAL_GS')
+end
+-- the full path to the executable
+local GSEXE
+-- the directory where the gs executable resides
+local GSDIR
+-- the name of the gs executable
+local GSNAME
+if override_gs then
+  -- first check whether we got an absolute path or only executable name
+  if string.find(override_gs, '[/\\]') then
+    GSEXE = override_gs
+  else
+    -- search in the path
+    GSEXE = search_path(override_gs, PATH)
+  end
+end
+if GSEXE then 
+  -- split the dir and progname part so that we can set the path
+  -- work on a string with all forward slashes
+  local foo = string.lower(string.gsub(GSEXE, '\\', '/'))
+  GSNAME = string.gsub(foo, '^.*[\\/]', '')
+  GSDIR  = string.gsub(foo, '^(.*)[\\/].*$', '%1')
+  -- search also for a GS_DLL setting
+  -- we do not need to check for is_restricted_progname, since
+  -- GSEXE is only defined when it is not set
+  local GSDLL = kpse.var_value('TEXLIVE_WINDOWS_EXTERNAL_GS_DLL')
+  if GSDLL then
+    os.setenv('GS_DLL', GSDLL)
+  end
+  local GSLIB = kpse.var_value('TEXLIVE_WINDOWS_EXTERNAL_GS_LIB')
+  if GSLIB then
+    os.setenv('GS_LIB', GSLIB)
+  end
+else
+  -- use built in gs
+   os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'
+	     ..TEXDIR..'/tlpkg/tlgs/fonts;'
+	     ..TEXDIR..'/tlpkg/tlgs/Resource/Init;'
+	     ..TEXDIR..'/tlpkg/tlgs/Resource;'
+	     ..TEXDIR..'/tlpkg/tlgs/kanji;'
+	     ..os.getenv('WINDIR')..'/Fonts;'..TEXMFDIST..'/fonts')
+  os.setenv('GS_DLL', TEXDIR..'/tlpkg/tlgs/bin/gsdll32.dll')
+  GSEXE = TEXDIR..'/tlpkg/tlgs/bin/gswin32c.exe'
+  GSNAME = 'gswin32c.exe'
+  GSDIR = TEXDIR..'/tlpkg/tlgs/bin'
+end
+-- now setup the path so that the gs program will be found
+PATH = prepend_path(PATH, GSDIR, BINDIR)
+os.setenv('PATH', PATH);
+
+-- sys stuff
+if (sysprog and not contains(sys_user_progs, progname)) then
+  os.setenv('TEXMFVAR', kpse.var_value('TEXMFSYSVAR'))
+  os.setenv('TEXMFCONFIG', kpse.var_value('TEXMFSYSCONFIG'))
+end
+-- Adobe Reader crash case: make sure USERPROFILE is not "slashed"
+os.setenv("USERPROFILE", os.getenv("USERPROFILE"):gsub('/', '\\'))
+
+-- extension to interpreter mapping
+
+-- the extension is mapped to an argument table.
+-- the command to execute is given as the first element of the table,
+-- which can be a whitespace separated list of names to try.
+local extension_map = {
+  ['.bat'] = {'cmd', '/c', 'call'},
+  ['.jar'] = {'java.exe', '-jar'},
+  ['.pl' ] = {'perl.exe'},
+  ['.py' ] = {'python.exe'},
+  ['.rb' ] = {'ruby.exe'},
+  ['.tcl'] = {'tclsh.exe tclsh86.exe tclsh85.exe tclkitsh.exe'},
+  ['.vbs'] = {'cscript.exe', '-nologo'},
+}
+if guimode then
+  -- for GUI mode wrappers we try GUI mode interpeters where possible
+  extension_map['.jar'][1] = 'javaw.exe '   .. extension_map['.jar'][1]
+  extension_map['.pl' ][1] = 'wperl.exe '   .. extension_map['.pl' ][1]
+  extension_map['.py' ][1] = 'pythonw.exe ' .. extension_map['.py' ][1]
+  extension_map['.rb' ][1] = 'rubyw.exe '   .. extension_map['.rb' ][1]
+  -- gui tcl shares no interpreters with non-gui tcl
+  extension_map['.tcl'] = {'wish.exe wish86.exe wish85.exe tclkit.exe'}
+  extension_map['.vbs'][1] = 'wscript.exe ' .. extension_map['.vbs'][1]
+end
+extension_map['.cmd'] = extension_map['.bat']
+extension_map['.js']  = extension_map['.vbs']
+
+-- set up ARGV table
+
+local ARGV = nil
+
+-- special cases (aliases)
+
+if is_tex4ht_command(progname) then
+  argline = progname .. ' ' .. argline
+  progname = 'mk4ht'
+elseif progname == 'a2ping' then 
+  table.insert(extension_map['.pl'], '-x')
+elseif contains(sys_user_progs, progname) then 
+  if sysprog then
+    argline = ' --sys ' .. argline
+  elseif userprog then
+    argline = ' --user ' .. argline
+  end
+  -- do not guess input encoding in format creation for ptex
+  -- and friends since guessing is not complete
+  os.setenv('GUESS_INPUT_KANJI_ENCODING', '0')
+elseif progname == 'asy' then
+  os.setenv('ASYMPTOTE_GS', GSEXE)
+  os.setenv('CYGWIN', 'nodosfilewarning')
+  if is_64bit_windows_os() then
+    ARGV = {[0]=TEXDIR..'/tlpkg/asymptote64/asy.exe', 'asy'}
+  else
+    ARGV = {[0]=TEXDIR..'/tlpkg/asymptote/asy.exe', 'asy'}
+  end
+elseif progname == 'dviout' then
+  local fontsdir = kpse.var_value('TEXMFVAR') .. '/fonts'
+  if (lfs.attributes(fontsdir, 'mode') ~= 'directory') then 
+    assert(mkdir_plus(fontsdir))
+  end
+  local tfmpath = kpse.show_path('tfm')
+  tfmpath = string.gsub(tfmpath, '!!', '')
+  tfmpath = string.gsub(tfmpath, '/', '\\')
+  local texrt = {}
+  for d in string.gmatch(tfmpath, '([^;]+\\fonts)\\tfm[^;]*') do
+    if (lfs.attributes(d, 'mode') == 'directory') then 
+      table.insert(texrt, d)
+    end
+  end
+  local par = [["-gen=']] .. string.gsub(TEXDIR, '/', '\\') .. 
+              [[\tlpkg\dviout\gen_pk'" "-TEXROOT=']] ..
+              table.concat(texrt, ';') .. [['" "-gsx=']] .. GSEXE .. [['"]];
+  ARGV = {[0]=TEXDIR..'/tlpkg/dviout/dviout.exe', 'dviout', par}
+elseif progname == 'mkluatexfontdb' then
+  progname = 'luaotfload-tool'
+  table.insert(arg, '--alias=mkluatexfontdb')
+elseif progname == 'psv' then
+  argline = '-sINPUT='..argline
+  ARGV = {[0]=TEXDIR..'/tlpkg/tlpsv/gswxlua.exe', 'gswxlua', 
+          '-dDisableFAPI=true',
+          '-l', (_q(TEXDIR..'/tlpkg/tlpsv/psv.wx.lua'):gsub('/','\\')),
+          '-p', (_q(TEXDIR..'/tlpkg/tlpsv/psv_view.ps'):gsub('/','\\')),
+          '-i', '.'}
+elseif progname == 'repstopdf' or progname == 'rpdfcrop' then
+  argline = '--restricted ' .. argline
+  progname = string.sub(progname, 2, -1)
+elseif progname == 'texworks' then
+  local winver = tonumber(string.match(os.uname().version, '%D*(%d+%.?%d*)'))
+  assert(winver >= 5.01, "Windows XP or newer required to run TeXworks")
+  local TW_LIBPATH = kpse.var_value('TW_LIBPATH') or 
+                     kpse.var_value('TEXMFCONFIG')..'/texworks'
+  local TW_INIPATH = kpse.var_value('TW_INIPATH') or TW_LIBPATH
+  os.setenv('TW_LIBPATH', TW_LIBPATH)
+  os.setenv('TW_INIPATH', TW_INIPATH)
+  if (TW_INIPATH and lfs.attributes(TW_INIPATH, 'mode') ~= 'directory') then
+    -- TeXworks needs directory holding its configuration to exist
+    assert(mkdir_plus(TW_INIPATH))
+  end
+  ARGV = {[0]=TEXDIR..'/tlpkg/texworks/texworks.exe', 'texworks'}
+elseif progname == 'tlgs' then
+  ARGV = {[0]=GSEXE, GSNAME}
+elseif progname == 'tlperl' then
+  ARGV = {[0]=PERLEXE, 'perl'}
+elseif progname == 'latexdef' then
+  progname = 'texdef'
+  argline = ' --tex latex ' .. argline
+elseif progname == 'cllualatex' then
+  progname = 'cluttex'
+  argline = ' --engine=lualatex ' .. argline
+elseif progname == 'clxelatex' then
+  progname = 'cluttex'
+  argline = ' --engine=xelatex ' .. argline
+end
+
+-- general case
+
+if not ARGV then
+  os.setenv('TEXMF', TEXMFDIST)
+  local extlist = '.tlu;.texlua;.pl;.lua;.rb;.py;.tcl;.jar;.vbs;.js;.bat;.cmd;\0'
+  local progfullname = search_path(progname, BINDIR, '.tlu;.bat;.cmd') or
+                       find_texmfscript(progname, extlist)
+  os.setenv('TEXMF', nil)
+  if progfullname == nil then
+    -- scripts in $TEXMFLOCAL etc. can't be found without the following
+    -- line !!
+    kpse.set_program_name('runscript')
+    progfullname = assert(find_texmfscript(progname, extlist))
+  end
+  local ext = string.match(string.lower(progfullname), '%.[^\\/.]*$') or ''
+  if (ext == '.lua') or (ext == '.tlu') or (ext == '.texlua') then -- lua script
+    arg[0] = progfullname
+  elseif (ext == '.tcl' and guimode) then -- tcl script; use built-in tclkit?
+    local try_extern_tcl =
+        (kpse.var_value('TEXLIVE_WINDOWS_TRY_EXTERNAL_TCL') == '1') and
+        not is_restricted_progname
+    local TCLEXENAME, TCLEXE
+    if try_extern_tcl then
+      TCLEXENAME, TCLEXE = check_command(extension_map['.tcl'][1], PATH)
+    end
+    if try_extern_tcl and not TCLEXENAME then
+      local exttcl_warn = [[
+External Tcl missing or outdated. Please install a recent Tcl, or configure
+TeX Live to always use the builtin Tcl for gui scripts:
+  tlmgr conf texmf TEXLIVE_WINDOWS_TRY_EXTERNAL_TCL 0
+Meanwhile, continuing with built-in Tcl...
+]]
+      show_error(exttcl_warn)
+    else -- did find something
+      ARGV = {[0]=TCLEXE, TCLEXENAME}
+    end
+    if not TCLEXENAME then
+      ARGV = {[0]=TEXDIR..'/tlpkg/tltcl/tclkit.exe', 'tclkit.exe'}
+      PATH = prepend_path(PATH, TEXDIR:gsub('/','\\')..'\\tlpkg\\tltcl')
+    end
+    table.insert(ARGV, _q(progfullname:gsub('/','\\')))
+    if (argline and argline ~= '') then argline = '-- '..argline end
+  else -- not gui tcl or not tcl at all
+    ARGV = extension_map[ext] or assert(shebang_to_argv(progfullname)) 
+    -- [w|c]script, for one, mistakes a forward-slashed UNC script path
+    -- for an option even when quoted
+    table.insert(ARGV, _q(progfullname:gsub('/','\\')))
+    if not ARGV[0] then
+      ARGV[0], ARGV[1] = assert(check_command(ARGV[1], PATH))
+    end
+  end
+end
+
+-- run the program/script
+
+if ARGV then
+  table.insert(ARGV, argline) -- pass through original arguments
+  if string.find (table.concat(ARGV, ' '), 'perl.exe') and extperl_warn then
+
+    show_error(extperl_warn)
+  end
+  local ret = assert(os.spawn(ARGV))
+  if ret ~= 0 then
+    local dbginfo = debug.getinfo(1)
+    local errormsg = string.format("%s:%d: command failed with exit code %d:\n%s",  
+                                   dbginfo.short_src, dbginfo.currentline - 2, 
+                                   ret, table.concat(ARGV, ' ') )
+    show_error(errormsg)
+  end
+  os.exit(ret)
+else -- must be a lua script
+  dofile(arg[0])
+end
+
+end -- MAIN_CHUNK
+
+-- execute MAIN_CHUNK with pcall to catch any runtime errors
+
+local success, errormsg = pcall(MAIN_CHUNK)
+if not success then
+  os.setenv('RUNSCRIPT_ERROR_MESSAGE', errormsg)
+  error(errormsg)
+end
+
+-- about RUNSCRIPT_ERROR_MESSAGE environment variable:
+-- it stores an error message that is caught and displayed 
+-- in a message box on the C side at process exit 
+-- (currently used only by gui mode stubs)


Property changes on: trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript.tlu
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript_dll.c
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript_dll.c	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript_dll.c	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,127 @@
+/************************************************************************
+
+  This file is a part of the wrapper program for launching scripts
+  and programs in TeX Live on Windows. See readme.txt for more details.
+  
+  This file was originally written in 2009 by Tomasz M. Trzeciak and
+  was placed in the Public Domain.
+ 
+************************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <windows.h>
+#define IS_WHITESPACE(c) ((c == ' ') || (c == '\t'))
+#define MAX_MSG 2*MAX_PATH
+#define DIE(...) { _snprintf( msg_buf, MAX_MSG - 1, __VA_ARGS__ ); goto DIE; }
+
+char module_name[] = "runscript.dll";
+char script_name[] = "runscript.tlu";
+char texlua_name[] = "texlua"; // just a bare name, luatex strips the rest anyway
+char subsys_mode[] = "CUI_MODE\n";
+char err_env_var[] = "RUNSCRIPT_ERROR_MESSAGE";
+char msg_buf[MAX_MSG];
+
+
+__declspec(dllexport) int dllrunscript( int argc, char *argv[] ) 
+{
+  static char own_path[MAX_PATH];
+  static char fpath[MAX_PATH];
+  char *fname, *argline, **lua_argv;
+  char *quoted_argline;
+  int k, quoted, lua_argc;
+  HMODULE module_handle = NULL;
+
+  // file path of the executable
+  k = (int) GetModuleFileName(NULL, own_path, MAX_PATH);
+  if ( !k || (k == MAX_PATH) ) 
+    DIE("cannot get own path (may be too long): %s\n", own_path);
+
+  // script path (the dir of this library)
+  module_handle = GetModuleHandle(module_name); 
+  // if ( module_handle == NULL ) exe path will be used, which is OK too
+  k = (int) GetModuleFileName(module_handle, fpath, MAX_PATH);
+  if ( !k || (k == MAX_PATH) ) 
+    DIE("cannot get module path (may be too long): %s\n", fpath);
+  fname = strrchr(fpath, '\\');
+  if ( fname == NULL ) DIE("no directory part in module path: %s\n", fpath);
+  fname++;
+  if ( fname + strlen(script_name) >=  fpath + MAX_PATH - 1 ) 
+    DIE("path too long: %s\n", fpath);
+  strcpy(fname, script_name);
+  if ( GetFileAttributes(fpath) == INVALID_FILE_ATTRIBUTES ) 
+    DIE("main lua script not found: %s\n", fpath);
+
+  // get command line of this process
+  argline = GetCommandLine();
+
+  if ( argline == NULL ) DIE("failed to retrieve command line string\n");
+  quoted_argline = malloc((1+strlen(argline)+1 + 1)*sizeof(char));
+  if ( quoted_argline == NULL ) DIE("failed to quote command line string\n");
+  // skip over argv[0] (it can contain embedded double quotes if launched from cmd.exe!)
+  for ( quoted = 0; (*argline) && ( !IS_WHITESPACE(*argline) || quoted ); argline++ )
+    if ( *argline == '"' ) quoted = !quoted;
+  while ( IS_WHITESPACE(*argline) ) argline++; // remove leading whitespace if any
+  // we need to quote our string , it seems.
+  snprintf(quoted_argline, (size_t)(1+strlen(argline)+1 + 1), "\"%s\"", argline); 
+
+  // set up argument list for texlua script
+  lua_argv = (char **)malloc( (argc + 6) * sizeof(char *) );
+  lua_argv[lua_argc=0] = texlua_name;
+  lua_argv[++lua_argc] = fpath; // script to execute
+  for ( k = 1; k < argc; k++ ) lua_argv[++lua_argc] = argv[k]; // copy argument list
+  lua_argv[++lua_argc] = subsys_mode; // sentinel argument
+  lua_argv[++lua_argc] = argc ? argv[0] : own_path; // original argv[0]
+  //lua_argv[++lua_argc] = argline; // unparsed arguments
+  lua_argv[++lua_argc] = quoted_argline; // unparsed arguments
+  lua_argv[++lua_argc] = NULL;
+
+  // call texlua interpreter
+  // for(int j=0; j<lua_argc; j++){printf("lua_argv[%d]=%s\n",j,lua_argv[j]);}
+  k = _spawnvp(_P_WAIT, "texlua", (const char * const *)lua_argv);
+  if (lua_argv) free(lua_argv);
+  return k;
+
+DIE:
+  fprintf(stderr, "%s: ", module_name);
+  fprintf(stderr, msg_buf);
+  if (*subsys_mode == 'G')
+    MessageBox( NULL, msg_buf, module_name, MB_ICONERROR | MB_SETFOREGROUND );
+  return 1;
+}
+
+void finalize( void )
+{
+  // check for and display error message if any
+  char *err_msg;
+  if ( err_msg = (char *) getenv(err_env_var) )
+    MessageBox( NULL, err_msg, script_name, MB_ICONERROR | MB_SETFOREGROUND );
+}
+
+__declspec(dllexport) int dllwrunscript( 
+  HINSTANCE hInstance,
+  HINSTANCE hPrevInstance,
+  char *argline,
+  int winshow 
+) {
+  // set sentinel argument (G for GUI_MODE)
+  *subsys_mode = 'G';
+  // clear error var in case it exists already
+  SetEnvironmentVariable(err_env_var, NULL);
+  // register atexit handler to recover control before terminating
+  atexit( finalize );
+  // call the console entry point routine
+#if defined(__MSVCRT__) && !defined(__MINGW32__)
+  // WinMain doesn't provide argc & argv, call MSVCRT proc to get them
+	int argc = 0; 
+  char **argv, **env; 
+  int expand_wildcards = 0;
+  int new_mode;
+  __getmainargs(&argc, &argv, &env, expand_wildcards, &new_mode);
+  return dllrunscript( argc, argv );
+#else
+  return dllrunscript( 0, NULL );
+#endif
+}
+
+

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript_exe.c
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript_exe.c	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/runscript_exe.c	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,15 @@
+/************************************************************************
+
+  This file is a part of the wrapper program for launching scripts
+  and programs in TeX Live on Windows. See readme.txt for more details.
+  
+  This file was originally written in 2009 by Tomasz M. Trzeciak and
+  was placed in the Public Domain.
+ 
+************************************************************************/
+
+#include <windows.h>
+
+__declspec(dllimport) int dllrunscript( int argc, char *argv[] );
+
+int main( int argc, char *argv[] ) { return dllrunscript( argc, argv ); }

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/texlua.dll
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/texlive/w64_mingw_wrapper/texlua.dll
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/texlua.dll	2019-02-19 23:56:38 UTC (rev 50067)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/texlua.dll	2019-02-20 01:04:18 UTC (rev 50068)

Property changes on: trunk/Build/source/texk/texlive/w64_mingw_wrapper/texlua.dll
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/texlua.exe
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/texlive/w64_mingw_wrapper/texlua.exe
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/texlua.exe	2019-02-19 23:56:38 UTC (rev 50067)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/texlua.exe	2019-02-20 01:04:18 UTC (rev 50068)

Property changes on: trunk/Build/source/texk/texlive/w64_mingw_wrapper/texlua.exe
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/tl-tray-menu.c
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/tl-tray-menu.c	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/tl-tray-menu.c	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,310 @@
+/*
+
+Simple tray menu
+
+Originally written in 2011 by Tomasz M. Trzeciak, Public Domain
+
+compiling with gcc (size optimized):
+echo 1 ICON "tl-tray-menu.ico">tl-tray-menu.rc
+windres tl-tray-menu.rc tl-tray-menu-rc.o
+gcc -Os -s -mwindows -o tl-tray-menu.exe tl-tray-menu-rc.o tl-tray-menu.c
+
+*/
+
+#define _WIN32_IE 0X0500 // minimum support for tray baloon (IE5)
+
+#include <windows.h>
+#include <process.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#define MAX_STR 32768
+
+static char strBuf[MAX_STR];
+
+#define DIE(...) { \
+  _snprintf( strBuf, 4*MAX_PATH, __VA_ARGS__ ); \
+  MessageBox( NULL, strBuf, "ERROR!", MB_ICONERROR | MB_SETFOREGROUND );\
+  return 1; \
+}
+
+#define IDI_ICON       1    // resource number of icon 
+#define IDI_TRAY       100
+#define WM_TRAYMSG     101
+
+#define MAX_MENU_ENTRIES 31
+#define MENU_CONFIG      ( MAX_MENU_ENTRIES + 1 )
+#define MENU_EXIT        ( MAX_MENU_ENTRIES + 2 )
+
+// buffer holding menu labels and commands 
+// (used only with config file)
+static char menuStrings[MAX_STR]; 
+
+// default menu labels
+char *menuLabels[MAX_MENU_ENTRIES] = {
+"&Package Manager",
+"&Documentation",
+"&Editor", 
+"PostScript/PDF &Viewer",
+"&Command Prompt",
+NULL };
+
+// default menu commands
+char *menuCommands[MAX_MENU_ENTRIES] = {
+"bin\\win32\\tlmgr-gui.exe",
+"bin\\win32\\texdoctk.exe",
+"bin\\win32\\texworks.exe",
+"bin\\win32\\psv.exe",
+"tlpkg\\installer\\tl-cmd.bat",
+NULL };
+
+char configInfo[4*MAX_PATH] = "\
+The menu can be customized with a configuration file.\n\
+For an example and instructions see:\n";
+
+HMENU hPopMenu;
+NOTIFYICONDATA nid;
+
+LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
+{
+  switch ( msg )             
+  {
+    case WM_CREATE:
+    {
+      hPopMenu = CreatePopupMenu();
+      int i;
+      for ( i = 0; menuLabels[i]; i++ )
+      {
+        if ( menuCommands[i] )
+          AppendMenu( hPopMenu, MF_STRING, i, menuLabels[i] );
+      }
+      AppendMenu( hPopMenu, MF_SEPARATOR, 0, NULL );
+      AppendMenu( hPopMenu, MF_STRING, MENU_CONFIG,  "More..." );
+      AppendMenu( hPopMenu, MF_STRING, MENU_EXIT,    "E&xit" );
+    }
+    break;
+    
+    case WM_TRAYMSG:
+    {
+      switch ( lParam )
+      {
+        case WM_LBUTTONUP:
+        case WM_RBUTTONUP:
+        {
+          POINT pnt;
+          GetCursorPos( &pnt );
+          SetForegroundWindow( hWnd ); // needed to get keyboard focus
+          TrackPopupMenu( hPopMenu, TPM_LEFTALIGN, pnt.x, pnt.y, 0, hWnd, NULL );
+        }
+        break;
+      }
+    }
+    break;
+    
+    case WM_COMMAND:
+    {
+      switch ( LOWORD( wParam ) )
+      {
+        case MENU_CONFIG:
+          MessageBox( NULL, configInfo, nid.szTip, MB_SETFOREGROUND );
+        break;
+
+        case MENU_EXIT:
+          Shell_NotifyIcon( NIM_DELETE, &nid );
+          ExitProcess(0);
+        break;
+
+        default:
+        {
+          STARTUPINFO si;
+          PROCESS_INFORMATION pi;
+          ZeroMemory( &si, sizeof(si) );
+          si.cb = sizeof(si);
+          //si.dwFlags = STARTF_USESHOWWINDOW;
+          //si.wShowWindow = SW_HIDE ;
+          ZeroMemory( &pi, sizeof(pi) );
+          if( !CreateProcess(
+            NULL,     // module name (uses command line if NULL)
+            menuCommands[LOWORD(wParam)],     // command line
+            NULL,     // process security atrributes
+            NULL,     // thread security atrributes
+            TRUE,     // handle inheritance
+            0,        // creation flags, e.g. CREATE_NO_WINDOW, DETACHED_PROCESS
+            NULL,     // pointer to environment block (uses parent if NULL)
+            NULL,     // starting directory (uses parent if NULL)
+            &si,      // STARTUPINFO structure
+            &pi )     // PROCESS_INFORMATION structure
+          ) DIE( "Failed to spawn command (error code %d):\n%s", 
+                 GetLastError(), menuCommands[LOWORD(wParam)] );
+        }
+      }
+    }
+    break;
+
+    default:                 
+      return DefWindowProc( hWnd, msg, wParam, lParam );
+
+  }
+
+  return 0;
+}
+
+int APIENTRY WinMain(
+        HINSTANCE hInstance,
+        HINSTANCE hPrevInstance,
+        LPSTR     lpCmdLine,
+        int       nCmdShow )
+{
+
+  // scratch variables
+
+  char *s;
+  
+  // get file name of this executable
+  
+  static char dirSelf[MAX_PATH];
+  DWORD nchars = GetModuleFileName(NULL, dirSelf, MAX_PATH);
+  if ( !nchars || ( nchars == MAX_PATH ) ) DIE( "Cannot get own path." );
+  if ( s = strrchr( dirSelf, '\\' ) ) *s = '\0'; // remove file name part
+  
+  // set current directory 
+  
+  if ( !SetCurrentDirectory( dirSelf ) ) 
+    DIE( "Failed to change current directory to:\n%s", dirSelf );
+  
+  // prepend bin/win32 to PATH
+  
+  strcpy( strBuf, dirSelf );
+  strcat( strBuf, "\\bin\\win32;" );
+  strcat( strBuf, getenv( "PATH" ) );
+  SetEnvironmentVariable( "PATH", strBuf );
+ 
+  // configuration
+  
+  static char fileConfig[MAX_PATH];
+  s = dirSelf + strlen(dirSelf) + 1;
+  strcpy( fileConfig, s );
+  if ( s = strrchr( fileConfig, '.' ) ) *s = '\0'; // remove file extension part
+  strcat( fileConfig, ".ini" );
+  
+  strcat( configInfo, dirSelf );
+  strcat( configInfo, "\\tlpkg\\installer\\" );
+  strcat( configInfo, fileConfig );
+  
+  if ( GetFileAttributes( fileConfig ) == INVALID_FILE_ATTRIBUTES ) {
+  
+    // validate default configuration (menuCommands should be existing files)
+    
+    int i;
+    for ( i = 0; menuLabels[i]; i++ ) 
+      if ( GetFileAttributes( menuCommands[i] ) == INVALID_FILE_ATTRIBUTES )
+        menuCommands[i] = NULL;
+
+  } else {
+
+    //  read menu configuration from ini file
+
+    FILE *CONFIG = fopen( fileConfig, "rt" );
+    if ( CONFIG == NULL )
+      DIE( "Failed to open configuration file:\n%s\\%s", dirSelf, fileConfig );
+
+    char strSect[] = "[menu]";
+    int menuItem = -1;
+    int i = 0;
+    int lineNo;
+    for ( lineNo = 1 ; fgets( strBuf, MAX_STR, CONFIG ) 
+                       && menuItem < MAX_MENU_ENTRIES ; lineNo++ )
+    {
+      if ( menuItem < 0 )
+      {
+        if ( *strBuf == '[' && 
+             strncmp( strBuf, strSect, strlen( strSect ) ) == 0 ) menuItem++;
+        continue;
+      }
+      if ( *strBuf == ';' ) continue; // skip comments
+      if ( *strBuf == '[' ) break;    // next section
+      s = &menuStrings[i];
+      i += ExpandEnvironmentStrings( strBuf, s, MAX_STR - i );
+      if ( i >= MAX_STR ) 
+        DIE( "Exceeded 32KB limit for configuration." );
+      if ( i-2 && menuStrings[i-2] == '\n' ) { menuStrings[i-2] = '\0'; i--; }
+      menuLabels[menuItem] = s;
+      while ( *s && *s != '=' ) s++;
+      if ( *s == '\0' ) 
+        DIE( "Missing '=' on line %d in configuration file:\n%s\\%s", 
+             lineNo, dirSelf, fileConfig );
+      *s++ = '\0'; // assign first, then increment
+      menuCommands[menuItem] = s;
+      menuItem++;
+    }
+    if ( menuItem < 0 ) 
+      DIE( "Missing [menu] section in configuration file:\n%s\\%s", 
+           dirSelf, fileConfig );
+    menuLabels[menuItem] = NULL;
+    menuCommands[menuItem] = NULL;
+
+    fclose( CONFIG );
+
+  }
+  
+  // create a hidden window for messaging
+
+  MSG msg;
+  WNDCLASS wc;
+  HWND hWnd;
+  char szAppName[] = "TrayMenu";
+
+  ZeroMemory( &wc, sizeof wc );
+  wc.hInstance     = hInstance;
+  wc.lpszClassName = szAppName;
+  wc.lpfnWndProc   = (WNDPROC)WndProc;
+  wc.style         = 0;
+  wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
+  wc.hIcon         = LoadIcon( NULL, IDI_APPLICATION );
+  wc.hCursor       = LoadCursor( NULL, IDC_ARROW );
+
+  if ( FALSE == RegisterClass( &wc ) ) DIE( "Failed to register window class" );
+
+  hWnd = CreateWindow(
+    szAppName,
+    "",
+    0,
+    CW_USEDEFAULT,
+    CW_USEDEFAULT,
+    CW_USEDEFAULT,
+    CW_USEDEFAULT,
+    0,
+    0,
+    hInstance,
+    0);
+
+  if ( hWnd == NULL ) DIE( "Failed to create window" );
+
+  // tray icon stuff
+  
+  nid.cbSize = sizeof nid;
+  nid.hWnd = hWnd;
+  nid.uID = IDI_TRAY;
+  nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
+  nid.hIcon = LoadIcon( hInstance, MAKEINTRESOURCE( IDI_ICON ) ); 
+  nid.uCallbackMessage = WM_TRAYMSG;
+  strcpy( nid.szTip, "TeX Live Menu" );
+#if (_WIN32_IE >= 0X0500)
+  nid.uFlags |= NIF_INFO;
+  nid.dwInfoFlags = NIIF_INFO;
+  strcpy( nid.szInfo, "Click on the tray icon\nto activate the menu." );
+  strcpy( nid.szInfoTitle, nid.szTip );
+#endif
+  Shell_NotifyIcon( NIM_ADD, &nid );
+  
+  // main message loop:
+  
+  while ( GetMessage( &msg, NULL, 0, 0 ) > 0 )
+  {
+    TranslateMessage( &msg );
+    DispatchMessage( &msg );
+  }
+
+  return msg.wParam;
+}
+

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr-gui.txt
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr-gui.txt	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr-gui.txt	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,77 @@
+/*
+
+Launcher stub for tlmgr gui (with hidden console window)
+
+//////////////////////////////////////////////////
+
+This version has been replaced with a version which triggers a UAC
+prompt when appropriate. See Master/source/tlmgr-gui_UAC.zip.
+
+//////////////////////////////////////////////////
+
+Originally written in 2011 by Tomasz M. Trzeciak, Public Domain
+
+compiling with gcc (size optimized):
+echo 1 ICON "tlmgr-gui.ico">tlmgr-gui.rc
+windres tlmgr-gui.rc tlmgr-gui-rc.o
+gcc -Os -s -mwindows -o tlmgr-gui.exe tlmgr-gui-rc.o tlmgr-gui.c
+
+compiling with tcc (ver. 0.9.25), extra small size
+windres tlmgr-gui.rc tlmgr-gui-rc.o
+tcc -o tlmgr-gui.exe tlmgr-gui-rc.o tlmgr-gui.c
+
+*/
+
+#include <windows.h>
+
+static char msgbuf[4*MAX_PATH];
+#define DIE(...) { \
+  _snprintf( msgbuf, 4*MAX_PATH, __VA_ARGS__ ); \
+  MessageBox( NULL, msgbuf, "ERROR!", MB_ICONERROR | MB_SETFOREGROUND );\
+  return 1; \
+}
+
+static char cmdln[2*MAX_PATH];
+
+int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShowint ) {
+
+  // get file name of this executable
+  
+  static char selfdir[MAX_PATH];
+  char *name, *ext, *s;
+  DWORD nchars = GetModuleFileName(NULL, selfdir, MAX_PATH);
+  if ( !nchars || (nchars == MAX_PATH) ) DIE( "cannot get own path" );
+  
+  // make command to execute
+  
+  if ( s = strrchr(selfdir, '\\') ) *s = '\0'; // remove file name part
+  strcat( cmdln, "\"" );
+  strcat( cmdln, selfdir );
+  strcat( cmdln, "\\tlmgr.bat\" -gui" );
+  
+  // create child process
+  
+  STARTUPINFO si;
+  PROCESS_INFORMATION pi;
+  ZeroMemory( &si, sizeof(si) );
+  si.cb = sizeof(si);
+	si.dwFlags = STARTF_USESHOWWINDOW;
+	si.wShowWindow = SW_HIDE ;
+  ZeroMemory( &pi, sizeof(pi) );
+  
+  if( !CreateProcess(
+    NULL,     // module name (uses command line if NULL)
+    cmdln,    // command line
+    NULL,     // process security atrributes
+    NULL,     // thread security atrributes
+    TRUE,     // handle inheritance
+    0,        // creation flags, e.g. CREATE_NEW_CONSOLE, CREATE_NO_WINDOW, DETACHED_PROCESS
+    NULL,     // pointer to environment block (uses parent if NULL)
+    NULL,     // starting directory (uses parent if NULL)
+    &si,      // STARTUPINFO structure
+    &pi )     // PROCESS_INFORMATION structure
+  ) DIE( "command execution failed: %s", cmdln ); 
+  
+  return 0; 
+  
+}

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr.ico
===================================================================
(Binary files differ)

Index: trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr.ico
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr.ico	2019-02-19 23:56:38 UTC (rev 50067)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr.ico	2019-02-20 01:04:18 UTC (rev 50068)

Property changes on: trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr.ico
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr.svg
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr.svg	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/tlmgr.svg	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 10.0.3, SVG Export Plug-In . SVG Version: 3.0.0 Build 77)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="270"
+   height="270"
+   viewBox="0 0 270.00001 270"
+   style="display:inline;overflow:visible"
+   xml:space="preserve"
+   id="svg2816"
+   version="1.1"
+   inkscape:version="0.48.1 r9760"
+   sodipodi:docname="tlmgr.svg"><metadata
+   id="metadata2851"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
+   id="defs2849"><linearGradient
+     id="linearGradient5749"><stop
+       id="stop5751"
+       offset="0"
+       style="stop-color:#c8bb2c;stop-opacity:1" /><stop
+       id="stop5753"
+       offset="0.42938474"
+       style="stop-color:#c8ab37;stop-opacity:1" /><stop
+       id="stop5755"
+       offset="1"
+       style="stop-color:#786721;stop-opacity:1" /></linearGradient><linearGradient
+     id="linearGradient5739"><stop
+       style="stop-color:#33b850;stop-opacity:1;"
+       offset="0"
+       id="stop5741" /><stop
+       id="stop5747"
+       offset="0.5"
+       style="stop-color:#c8ab37;stop-opacity:0.49803922;" /><stop
+       style="stop-color:#c8ab37;stop-opacity:0"
+       offset="1"
+       id="stop5743" /></linearGradient><linearGradient
+     id="linearGradient4223"><stop
+       id="stop3656"
+       offset="0"
+       style="stop-color:#6a5c22;stop-opacity:1;" /><stop
+       id="stop3654"
+       offset="0.70769727"
+       style="stop-color:#c8ab37;stop-opacity:1" /><stop
+       style="stop-color:#dac15a;stop-opacity:1;"
+       offset="1"
+       id="stop4227" /></linearGradient><linearGradient
+     inkscape:collect="always"
+     id="linearGradient4215"><stop
+       style="stop-color:#786721;stop-opacity:1;"
+       offset="0"
+       id="stop4217" /><stop
+       style="stop-color:#786721;stop-opacity:0;"
+       offset="1"
+       id="stop4219" /></linearGradient><linearGradient
+     id="linearGradient3682"><stop
+       style="stop-color:#f1e671;stop-opacity:1;"
+       offset="0"
+       id="stop4231" /><stop
+       style="stop-color:#c8ab37;stop-opacity:1"
+       offset="0.66298664"
+       id="stop4213" /><stop
+       style="stop-color:#786721;stop-opacity:1"
+       offset="1"
+       id="stop3686" /></linearGradient><inkscape:perspective
+     sodipodi:type="inkscape:persp3d"
+     inkscape:vp_x="0 : 114.031 : 1"
+     inkscape:vp_y="0 : 1000 : 0"
+     inkscape:vp_z="248.47099 : 114.031 : 1"
+     inkscape:persp3d-origin="124.2355 : 76.020665 : 1"
+     id="perspective2853" /><inkscape:perspective
+     id="perspective2856"
+     inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+     inkscape:vp_z="1 : 0.5 : 1"
+     inkscape:vp_y="0 : 1000 : 0"
+     inkscape:vp_x="0 : 0.5 : 1"
+     sodipodi:type="inkscape:persp3d" /><inkscape:perspective
+     id="perspective2997"
+     inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+     inkscape:vp_z="1 : 0.5 : 1"
+     inkscape:vp_y="0 : 1000 : 0"
+     inkscape:vp_x="0 : 0.5 : 1"
+     sodipodi:type="inkscape:persp3d" /><radialGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient3682"
+     id="radialGradient3688"
+     cx="59.357792"
+     cy="136.64711"
+     fx="59.357792"
+     fy="136.64711"
+     r="113.49914"
+     gradientTransform="matrix(1.3152342,0.04522208,-0.04703422,1.3679372,-5.8498181,-59.579928)"
+     gradientUnits="userSpaceOnUse" /><linearGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient4215"
+     id="linearGradient4221"
+     x1="180.77203"
+     y1="71.763046"
+     x2="199.85242"
+     y2="97.362198"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(1.0809402,0,0,1.0204074,-3.223564,-12.087424)" /><radialGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient4223"
+     id="radialGradient3652"
+     cx="44.960342"
+     cy="223.34352"
+     fx="44.960342"
+     fy="223.34352"
+     r="55.639721"
+     gradientTransform="matrix(1.4022312,0.35120986,-0.153588,0.61321069,30.002569,-17.284415)"
+     gradientUnits="userSpaceOnUse" /><inkscape:perspective
+     id="perspective3667"
+     inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+     inkscape:vp_z="1 : 0.5 : 1"
+     inkscape:vp_y="0 : 1000 : 0"
+     inkscape:vp_x="0 : 0.5 : 1"
+     sodipodi:type="inkscape:persp3d" /><linearGradient
+     id="linearGradient3682-0"><stop
+       style="stop-color:#f1e671;stop-opacity:1;"
+       offset="0"
+       id="stop4231-6" /><stop
+       style="stop-color:#c8ab37;stop-opacity:1"
+       offset="0.66298664"
+       id="stop4213-1" /><stop
+       style="stop-color:#786721;stop-opacity:1"
+       offset="1"
+       id="stop3686-5" /></linearGradient><linearGradient
+     id="linearGradient4223-6"><stop
+       id="stop3656-9"
+       offset="0"
+       style="stop-color:#6a5c22;stop-opacity:1;" /><stop
+       id="stop3654-3"
+       offset="0.70769727"
+       style="stop-color:#c8ab37;stop-opacity:1" /><stop
+       style="stop-color:#dac15a;stop-opacity:1;"
+       offset="1"
+       id="stop4227-7" /></linearGradient><linearGradient
+     inkscape:collect="always"
+     xlink:href="#linearGradient5749"
+     id="linearGradient5745"
+     x1="106.28487"
+     y1="31.718859"
+     x2="125.58268"
+     y2="20.102272"
+     gradientUnits="userSpaceOnUse"
+     gradientTransform="matrix(0.98036388,-0.19719702,0.19719702,0.98036388,-4.0195208,24.162963)" /></defs><sodipodi:namedview
+   pagecolor="#ffffff"
+   bordercolor="#666666"
+   borderopacity="1"
+   objecttolerance="10"
+   gridtolerance="10"
+   guidetolerance="10"
+   inkscape:pageopacity="0"
+   inkscape:pageshadow="2"
+   inkscape:window-width="1096"
+   inkscape:window-height="908"
+   id="namedview2847"
+   showgrid="false"
+   inkscape:zoom="2.6219511"
+   inkscape:cx="133.1416"
+   inkscape:cy="126.24304"
+   inkscape:window-x="474"
+   inkscape:window-y="50"
+   inkscape:window-maximized="0"
+   inkscape:current-layer="g2910"
+   inkscape:object-nodes="true"
+   inkscape:snap-global="false" />
+	
+<g
+   inkscape:groupmode="layer"
+   id="layer1"
+   inkscape:label="red"
+   transform="translate(0,41.938005)"><path
+     sodipodi:type="arc"
+     style="fill:#b3faec;fill-opacity:1;stroke:none"
+     id="path3763"
+     sodipodi:cx="137.88635"
+     sodipodi:cy="123.53212"
+     sodipodi:rx="101.42695"
+     sodipodi:ry="101.42695"
+     d="m 239.3133,123.53212 c 0,56.01656 -45.41039,101.42695 -101.42695,101.42695 -56.016554,0 -101.426946,-45.41039 -101.426946,-101.42695 0,-56.016557 45.410392,-101.426949 101.426946,-101.426949 56.01656,0 101.42695,45.410392 101.42695,101.426949 z"
+     transform="matrix(0.99808795,0,0,0.99808795,18.430079,-34.438385)" /></g><g
+   style="display:inline"
+   inkscape:label="New"
+   id="g2910"
+   inkscape:groupmode="layer"
+   transform="translate(0,41.938005)"><path
+     id="path2952"
+     style="fill:#00612b;fill-opacity:1"
+     d="m 200.81661,54.986631 c -3.64879,2.893622 -10.27939,-2.561778 -14.8154,-12.182166 -4.53602,-9.620387 -5.25062,-19.762511 -1.60288,-22.654025 3.64936,-2.890703 10.2794,2.561778 14.81703,12.182977 4.53497,9.622496 5.24956,19.764615 1.60125,22.653214 z"
+     inkscape:connector-curvature="0" /><path
+     id="path2950"
+     style="fill:#00612b;fill-opacity:1"
+     d="m 153.95812,24.495879 c -1.18398,8.821918 -6.30211,15.415312 -11.43224,14.7268 -5.1285,-0.688295 -8.32837,-8.400188 -7.14467,-17.219999 1.1837,-8.81981 6.30346,-15.412986 11.43196,-14.724692 5.13012,0.688514 8.32865,8.398081 7.14495,17.217891 z"
+     inkscape:connector-curvature="0" /><path
+     id="path2920"
+     style="fill:url(#linearGradient5745);fill-opacity:1"
+     d="m 113.89971,44.482838 c -9.42833,-5.583098 -10.97803,-16.545947 -8.95458,-25.701693 10.78651,-1.879166 15.62267,0.417141 22.40109,4.811931 4.62503,5.334319 8.89665,21.164927 8.89665,21.164927 0,0 -12.91818,5.304769 -22.34316,-0.275165 z"
+     sodipodi:nodetypes="ccccc"
+     inkscape:connector-curvature="0" /><g
+     id="g2914"
+     transform="translate(9.9926697,-9.9615949)" /><path
+     id="path2932"
+     style="fill:#ffffff;fill-opacity:1"
+     d="m 129.71368,59.616405 c 0,11.815 -9.941,21.394 -22.20501,21.394 -12.265,0 -22.206,-9.578 -22.206,-21.394 0,-11.816 9.941,-21.393 22.206,-21.393 12.26301,10e-4 22.20501,9.578 22.20501,21.393 z" /><path
+     id="path2936"
+     d="m 119.60176,60.722511 c 0,6.584565 -5.33607,11.922075 -11.92207,11.922075 -6.58457,0 -11.920639,-5.33751 -11.920639,-11.922075 0,-6.583123 5.336069,-11.919189 11.920639,-11.919189 6.586,0 11.92207,5.336066 11.92207,11.919189 z" /><path
+     id="path2938"
+     style="fill:url(#radialGradient3688);fill-opacity:1"
+     d="m 20.248693,126.38723 c -4.875,13.539 16.851977,38.11817 32.067977,43.40217 -1.406,13.13 18.633,35.877 28.653,41.022 0.271,-6.771 1.083,-12.186 4.062,-16.519 21.935,15.436 36.82901,17.061 53.66101,21.721 -10.862,-3.007 -10.008,-16.379 -15.479,-23.616 23.614,0.197 35.204,12.728 69.596,14.623 l -12.998,-17.331 c 14.352,3.521 34.933,2.708 43.057,4.874 -4.333,-13.811 -3.521,-41.433 -6.77,-55.784 l 18.414,3.52 c -9.749,-17.602 1.103,-75.441995 -43.87,-95.591995 -2.883,-2.148 -12.252,-5.109 -23.536,-6.479 1.331,-3.271 5.393,-2.458 7.289,-5.707 -22.206,-13.54 -53.6787,5.024694 -62.67916,27.983771 C 90.500287,59.627637 62.753824,68.608484 49.688055,76.479943 24.650591,75.107481 -8.7789229,95.442386 20.248693,126.38723 z"
+     sodipodi:nodetypes="ccccscccccccccccc" /><path
+     id="path2942"
+     style="fill:#c8ab37"
+     d="m 209.64295,79.922477 c -10.45927,8.654008 -27.04449,11.508862 -32.31327,5.958928 -5.729,-7.866 -0.576,-22.424 12.321,-31.361 11.012,-7.632 23.739,-8.173 33.089,-2.856 0,0 -0.56773,18.814072 -13.09673,28.258072 z"
+     sodipodi:nodetypes="ccccc"
+     inkscape:connector-curvature="0" /><path
+     id="path2944"
+     style="fill:#ffffff;fill-opacity:1"
+     d="m 161.14537,72.186106 c 0,14.031212 -12.05212,25.405391 -26.91875,25.405391 -14.86662,0 -26.91764,-11.374179 -26.91764,-25.405391 0,-14.030094 12.05102,-25.405393 26.91764,-25.405393 14.86663,0 26.91875,11.374182 26.91875,25.405393 z"
+     inkscape:connector-curvature="0" /><path
+     id="path2948"
+     d="m 152.13337,81.364785 c 0,7.213238 -5.84788,13.062625 -13.06111,13.062625 -7.21172,0 -13.0596,-5.849387 -13.0596,-13.062625 0,-7.210206 5.84788,-13.061111 13.0596,-13.061111 7.21172,0 13.06111,5.847874 13.06111,13.061111 z"
+     inkscape:connector-curvature="0" /><path
+     style="fill:url(#linearGradient4221);fill-opacity:1;stroke:none"
+     d="m 176.24831,85.215715 c 3.96315,-12.290584 9.03724,-17.823025 17.89563,-24.272687 8.8584,-6.449663 21.66306,-9.307376 28.22124,-9.202043 0.9601,6.584307 -4.34708,25.269778 -16.81208,31.477156 -12.465,6.207378 -22.71034,7.847933 -29.30479,1.997574 z"
+     id="path2905"
+     sodipodi:nodetypes="csczc"
+     inkscape:connector-curvature="0" /><path
+     style="fill:#786721;fill-opacity:1;stroke:none"
+     d="m 48.005001,111.71852 c -2.949904,3.53909 -16.95113,7.33888 -20.126512,4.65943 -2.992792,-2.5254 -7.802482,-14.27033 -5.418417,-18.576378 2.384068,-4.30606 10.357411,-5.39957 17.411449,-1.5565 7.054037,3.843048 11.083384,11.934348 8.13348,15.473448 z"
+     id="path2907"
+     sodipodi:nodetypes="czzsz" /><path
+     style="fill:url(#radialGradient3652);fill-opacity:1;stroke:none;display:inline;overflow:visible"
+     d="m 120.72419,134.27017 c 4.7296,4.0489 -17.95314,35.05629 -26.638897,26.20018 -22.634334,14.42744 -49.517528,17.54845 -70.511913,-17.46598 -3.196841,-2.19714 -2.880626,-8.47284 -6.330991,-11.78012 -4.712545,-5.28371 -5.115009,-9.41834 -5.948895,-17.41712 3.637076,7.79459 9.056496,10.69899 14.761583,14.12161 31.651372,43.90812 56.905665,23.7243 64.676686,20.10385 16.608687,12.57492 27.313777,-16.37878 29.992427,-13.76242 z"
+     id="path2986"
+     sodipodi:nodetypes="cccccccc" /></g></svg>
\ No newline at end of file

Added: trunk/Build/source/texk/texlive/w64_mingw_wrapper/wrunscript_exe.c
===================================================================
--- trunk/Build/source/texk/texlive/w64_mingw_wrapper/wrunscript_exe.c	                        (rev 0)
+++ trunk/Build/source/texk/texlive/w64_mingw_wrapper/wrunscript_exe.c	2019-02-20 01:04:18 UTC (rev 50068)
@@ -0,0 +1,27 @@
+/************************************************************************
+
+  This file is a part of the wrapper program for launching scripts
+  and programs in TeX Live on Windows. See readme.txt for more details.
+  
+  This file was originally written in 2009 by Tomasz M. Trzeciak and
+  was placed in the Public Domain.
+ 
+************************************************************************/
+
+#include <windows.h>
+
+__declspec(dllimport) int dllwrunscript(
+  HINSTANCE hInstance,
+  HINSTANCE hPrevInstance,
+  char *argline,
+  int winshow 
+ );
+
+int APIENTRY WinMain( 
+  HINSTANCE hInstance,
+  HINSTANCE hPrevInstance,
+  char *argline,
+  int winshow 
+){
+  return dllwrunscript( hInstance, hPrevInstance, argline, winshow );
+}

Modified: trunk/Build/source/texk/web2c/luatexdir/am/luatex.am
===================================================================
--- trunk/Build/source/texk/web2c/luatexdir/am/luatex.am	2019-02-19 23:56:38 UTC (rev 50067)
+++ trunk/Build/source/texk/web2c/luatexdir/am/luatex.am	2019-02-20 01:04:18 UTC (rev 50068)
@@ -116,17 +116,17 @@
 if WIN32
 if MINGW32
 install-luatex-links: .libs/luatex$(EXEEXT)
-       $(INSTALL_PROGRAM) .libs/luatex$(EXEEXT) $(DESTDIR)$(bindir)/texlua$(EXEEXT)
-       $(INSTALL_PROGRAM) .libs/luatex$(EXEEXT) $(DESTDIR)$(bindir)/texluac$(EXEEXT)
+	$(INSTALL_PROGRAM) .libs/luatex$(EXEEXT) $(DESTDIR)$(bindir)/texlua$(EXEEXT)
+	$(INSTALL_PROGRAM) .libs/luatex$(EXEEXT) $(DESTDIR)$(bindir)/texluac$(EXEEXT)
 uninstall-luatex-links:
-       rm -f $(DESTDIR)$(bindir)/texlua$(EXEEXT)
-       rm -f $(DESTDIR)$(bindir)/texluac$(EXEEXT)
+	rm -f $(DESTDIR)$(bindir)/texlua$(EXEEXT)
+	rm -f $(DESTDIR)$(bindir)/texluac$(EXEEXT)
 install-luajittex-links: .libs/luajittex$(EXEEXT)
-       $(INSTALL_PROGRAM) .libs/luajittex$(EXEEXT) $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
-       $(INSTALL_PROGRAM) .libs/luajittex$(EXEEXT) $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
+	$(INSTALL_PROGRAM) .libs/luajittex$(EXEEXT) $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
+	$(INSTALL_PROGRAM) .libs/luajittex$(EXEEXT) $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
 uninstall-luajittex-links:
-       rm -f $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
-       rm -f $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
+	rm -f $(DESTDIR)$(bindir)/texluajit$(EXEEXT)
+	rm -f $(DESTDIR)$(bindir)/texluajitc$(EXEEXT)
 else !MINGW32
 install-luatex-links: call_luatex$(EXEEXT)
 	$(INSTALL_PROGRAM) call_luatex$(EXEEXT) $(DESTDIR)$(bindir)/texlua$(EXEEXT)



More information about the tex-live-commits mailing list