diff options
Diffstat (limited to 'Build/source/texk/web2c')
-rw-r--r-- | Build/source/texk/web2c/xetexdir/ChangeLog | 4 | ||||
-rw-r--r-- | Build/source/texk/web2c/xetexdir/XeTeX_ext.c | 8 |
2 files changed, 11 insertions, 1 deletions
diff --git a/Build/source/texk/web2c/xetexdir/ChangeLog b/Build/source/texk/web2c/xetexdir/ChangeLog index 2c3b8bad2da..6e52dc09bf8 100644 --- a/Build/source/texk/web2c/xetexdir/ChangeLog +++ b/Build/source/texk/web2c/xetexdir/ChangeLog @@ -1,3 +1,7 @@ +2013-12-05 Akira Kakuto <kakuto@fuk.kindai.ac.jp> + + * XeTeX_ext.c: Rewrite command line for popen(). Windows only. + 2013-09-25 Karl Berry <karl@tug.org> * xetexextra.h (BANNER), diff --git a/Build/source/texk/web2c/xetexdir/XeTeX_ext.c b/Build/source/texk/web2c/xetexdir/XeTeX_ext.c index de6ef753e26..374834a77f5 100644 --- a/Build/source/texk/web2c/xetexdir/XeTeX_ext.c +++ b/Build/source/texk/web2c/xetexdir/XeTeX_ext.c @@ -2733,6 +2733,8 @@ open_dvi_output(FILE** fptr) } #if defined(WIN32) { + wchar_t *tmp1w; + char *tmp1; char *p, *pp, *bindir, *fullcmd, *prgnam; bindir = kpse_var_value("SELFAUTOLOC"); for(pp = bindir; *pp; pp++) { @@ -2748,10 +2750,14 @@ open_dvi_output(FILE** fptr) } *p = '\0'; fullcmd = concatn("\"\"", bindir, "\\", prgnam, "\"", pp, "\"", NULL); - *fptr = popen(fullcmd, "w"); + tmp1w = get_wstring_from_mbstring(CP_UTF8, (const char *)fullcmd, tmp1w=NULL); + tmp1 = get_mbstring_from_wstring(GetACP(), (const wchar_t *)tmp1w, tmp1=NULL); + *fptr = popen(tmp1, "w"); free(bindir); free(prgnam); free(fullcmd); + free(tmp1w); + free(tmp1); } #else *fptr = popen(cmd, "w"); |