texlive[47973] Build/source/texk: pdfTeX: Allow non-ascii file names
commits+takuji at tug.org
commits+takuji at tug.org
Sun Jun 10 08:12:42 CEST 2018
Revision: 47973
http://tug.org/svn/texlive?view=revision&revision=47973
Author: takuji
Date: 2018-06-10 08:12:41 +0200 (Sun, 10 Jun 2018)
Log Message:
-----------
pdfTeX: Allow non-ascii file names with UTF-8 source files (Windows only)
Modified Paths:
--------------
trunk/Build/source/texk/kpathsea/ChangeLog
trunk/Build/source/texk/kpathsea/Makefile.am
trunk/Build/source/texk/kpathsea/Makefile.in
trunk/Build/source/texk/kpathsea/knj.h
trunk/Build/source/texk/kpathsea/kpsewhich.c
trunk/Build/source/texk/kpathsea/progname.c
trunk/Build/source/texk/kpathsea/types.h
trunk/Build/source/texk/web2c/lib/ChangeLog
trunk/Build/source/texk/web2c/lib/texmfmp.c
trunk/Build/source/texk/web2c/pdftexdir/ChangeLog
trunk/Build/source/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc
trunk/Build/source/texk/web2c/pdftexdir/pdftoepdf.cc
trunk/Build/source/texk/web2c/pdftexdir/ptexlib.h
trunk/Build/source/texk/web2c/synctexdir/ChangeLog
trunk/Build/source/texk/web2c/synctexdir/synctex.c
Modified: trunk/Build/source/texk/kpathsea/ChangeLog
===================================================================
--- trunk/Build/source/texk/kpathsea/ChangeLog 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/kpathsea/ChangeLog 2018-06-10 06:12:41 UTC (rev 47973)
@@ -1,3 +1,9 @@
+2018-06-10 TANAKA Takuji <ttk at t-lab.opal.ne.jp>
+
+ * progname.c, types.h, knj.h: Add a variable W32_codepage.
+ * kpsewhich.c: Allow Unicode file name for pdftex in kpsewhich.
+ (Windows only)
+
2018-05-29 Akira Kakuto <kakuto at fuk.kindai.ac.jp>
* kpsewhich.c: Revert. Since "command_line_encoding=utf8" is
Modified: trunk/Build/source/texk/kpathsea/Makefile.am
===================================================================
--- trunk/Build/source/texk/kpathsea/Makefile.am 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/kpathsea/Makefile.am 2018-06-10 06:12:41 UTC (rev 47973)
@@ -283,7 +283,7 @@
if !WIN32
@for f in $(dist_noinst_SCRIPTS); do \
if grep "original $$f --" "$(DESTDIR)$(bindir)/$$f" >/dev/null 2>&1; then \
- echo " rm\xA0-f '$(DESTDIR)$(bindir)/$$f'"; \
+ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
rm -f "$(DESTDIR)$(bindir)/$$f"; \
else :; fi; \
done
@@ -290,7 +290,7 @@
endif !WIN32
@for f in $(dist_noinst_DATA); do \
if grep "original $$f --" "$(DESTDIR)$(web2cdir)/$$f" >/dev/null 2>&1; then \
- echo " rm\xA0-f '$(DESTDIR)$(web2cdir)/$$f'"; \
+ echo " rm -f '$(DESTDIR)$(web2cdir)/$$f'"; \
rm -f "$(DESTDIR)$(web2cdir)/$$f"; \
else :; fi; \
done
Modified: trunk/Build/source/texk/kpathsea/Makefile.in
===================================================================
--- trunk/Build/source/texk/kpathsea/Makefile.in 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/kpathsea/Makefile.in 2018-06-10 06:12:41 UTC (rev 47973)
@@ -2497,13 +2497,13 @@
uninstall-local:
@WIN32_FALSE@ @for f in $(dist_noinst_SCRIPTS); do \
@WIN32_FALSE@ if grep "original $$f --" "$(DESTDIR)$(bindir)/$$f" >/dev/null 2>&1; then \
- at WIN32_FALSE@ echo " rm\xA0-f '$(DESTDIR)$(bindir)/$$f'"; \
+ at WIN32_FALSE@ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
@WIN32_FALSE@ rm -f "$(DESTDIR)$(bindir)/$$f"; \
@WIN32_FALSE@ else :; fi; \
@WIN32_FALSE@ done
@for f in $(dist_noinst_DATA); do \
if grep "original $$f --" "$(DESTDIR)$(web2cdir)/$$f" >/dev/null 2>&1; then \
- echo " rm\xA0-f '$(DESTDIR)$(web2cdir)/$$f'"; \
+ echo " rm -f '$(DESTDIR)$(web2cdir)/$$f'"; \
rm -f "$(DESTDIR)$(web2cdir)/$$f"; \
else :; fi; \
done
Modified: trunk/Build/source/texk/kpathsea/knj.h
===================================================================
--- trunk/Build/source/texk/kpathsea/knj.h 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/kpathsea/knj.h 2018-06-10 06:12:41 UTC (rev 47973)
@@ -46,6 +46,7 @@
#if defined (KPSE_COMPAT_API)
#define is_cp932_system kpse_def->Is_cp932_system
#define file_system_codepage kpse_def->File_system_codepage
+#define win32_codepage kpse_def->Win32_codepage
extern KPSEDLL int isknj(int c);
extern KPSEDLL int isknj2(int c);
Modified: trunk/Build/source/texk/kpathsea/kpsewhich.c
===================================================================
--- trunk/Build/source/texk/kpathsea/kpsewhich.c 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/kpathsea/kpsewhich.c 2018-06-10 06:12:41 UTC (rev 47973)
@@ -773,6 +773,7 @@
#ifdef WIN32
if(strstr(kpse->program_name,"xetex") || strstr(kpse->program_name,"xelatex")
|| strstr(kpse->program_name,"uptex") || strstr(kpse->program_name,"uplatex")
+ || strstr(kpse->program_name,"pdftex") || strstr(kpse->program_name,"pdflatex")
|| strstr(kpse->program_name,"dvipdfm") || strstr(kpse->program_name,"extractbb")
|| strstr(kpse->program_name,"xbb") || strstr(kpse->program_name,"ebb")
|| strstr(kpse->program_name,"dvips") || strstr(kpse->program_name,"upmendex"))
Modified: trunk/Build/source/texk/kpathsea/progname.c
===================================================================
--- trunk/Build/source/texk/kpathsea/progname.c 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/kpathsea/progname.c 2018-06-10 06:12:41 UTC (rev 47973)
@@ -496,7 +496,7 @@
#if defined(WIN32)
if (!kpse->File_system_codepage)
kpse->File_system_codepage = AreFileApisANSI() ? GetACP() : GetOEMCP();
- cp = kpse->File_system_codepage;
+ cp = kpse->Win32_codepage = kpse->File_system_codepage;
if (cp == 932 || cp == 936 || cp == 950) {
kpse->Is_cp932_system = cp;
}
Modified: trunk/Build/source/texk/kpathsea/types.h
===================================================================
--- trunk/Build/source/texk/kpathsea/types.h 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/kpathsea/types.h 2018-06-10 06:12:41 UTC (rev 47973)
@@ -294,7 +294,7 @@
#endif /* WIN32 && !__MINGW32__ */
#if defined(WIN32)
int Is_cp932_system;
- int File_system_codepage;
+ int File_system_codepage, Win32_codepage;
int getc_len;
int getc_buff[4];
wchar_t wcbuf;
Modified: trunk/Build/source/texk/web2c/lib/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/lib/ChangeLog 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/web2c/lib/ChangeLog 2018-06-10 06:12:41 UTC (rev 47973)
@@ -1,3 +1,8 @@
+2018-06-10 TANAKA Takuji <ttk at t-lab.opal.ne.jp>
+
+ * texmfmp.c: Allow non-ascii file names for pdfTeX
+ with UTF-8 source files (w32 only).
+
2018-06-09 TANAKA Takuji <ttk at t-lab.opal.ne.jp>
* texmfmp.c, openclose.c: Support UTF-8 file names
Modified: trunk/Build/source/texk/web2c/lib/texmfmp.c
===================================================================
--- trunk/Build/source/texk/web2c/lib/texmfmp.c 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/web2c/lib/texmfmp.c 2018-06-10 06:12:41 UTC (rev 47973)
@@ -674,7 +674,7 @@
maininit (int ac, string *av)
{
string main_input_file;
-#if (IS_upTeX || defined(XeTeX)) && defined(WIN32)
+#if (IS_upTeX || defined(XeTeX) || defined(pdfTeX)) && defined(WIN32)
string enc;
#endif
/* Save to pass along to topenin. */
@@ -703,10 +703,10 @@
kpse_set_program_name (argv[0], NULL);
initkanji ();
#endif
-#if defined(XeTeX) && defined(WIN32)
+#if (defined(XeTeX) || defined(pdfTeX)) && defined(WIN32)
kpse_set_program_name (argv[0], NULL);
#endif
-#if (IS_upTeX || defined(XeTeX)) && defined(WIN32)
+#if (IS_upTeX || defined(XeTeX) || defined(pdfTeX)) && defined(WIN32)
enc = kpse_var_value("command_line_encoding");
get_command_line_args_utf8(enc, &argc, &argv);
#endif
@@ -717,7 +717,7 @@
/* If the user says --help or --version, we need to notice early. And
since we want the --ini option, have to do it before getting into
the web (which would read the base file, etc.). */
-#if ((IS_upTeX || defined(XeTeX)) && defined(WIN32)) || (IS_pTeX && !IS_upTeX && !defined(WIN32))
+#if ((IS_upTeX || defined(XeTeX) || defined(pdfTeX)) && defined(WIN32)) || (IS_pTeX && !IS_upTeX && !defined(WIN32))
parse_options (argc, argv);
#else
parse_options (ac, av);
@@ -741,7 +741,7 @@
/* Do this early so we can inspect kpse_invocation_name and
kpse_program_name below, and because we have to do this before
any path searching. */
-#if IS_pTeX || (defined(XeTeX) && defined(WIN32))
+#if IS_pTeX || ((defined(XeTeX) || defined(pdfTeX)) && defined(WIN32))
if (user_progname)
kpse_reset_program_name (user_progname);
#else
Modified: trunk/Build/source/texk/web2c/pdftexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/pdftexdir/ChangeLog 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/web2c/pdftexdir/ChangeLog 2018-06-10 06:12:41 UTC (rev 47973)
@@ -1,3 +1,10 @@
+2018-06-10 TANAKA Takuji <ttk at t-lab.opal.ne.jp>
+
+ * ptexlib.h, pdftoepdf.cc, pdftoepdf-newpoppler.cc:
+ Allow non-ascii file names for pdfTeX with UTF-8 source files
+ (w32 only). The function is enabled by setting
+ 'command_line_encoding=utf-8' in texmf.cnf.
+
2018-05-29 Akira Kakuto <kakuto at fuk.kindai.ac.jp>
* ptexlib.h: Discard the changes on 2018-05-11, since
Modified: trunk/Build/source/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc
===================================================================
--- trunk/Build/source/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/web2c/pdftexdir/pdftoepdf-newpoppler.cc 2018-06-10 06:12:41 UTC (rev 47973)
@@ -147,6 +147,15 @@
static PdfDocument *find_add_document(char *file_name)
{
PdfDocument *p = pdfDocuments;
+#ifdef _WIN32
+ wchar_t *fnamew;
+ if (file_system_codepage == CP_UTF8 && win32_codepage != CP_UTF8) {
+ fnamew = get_wstring_from_mbstring(CP_UTF8, file_name, fnamew=NULL);
+ xfree(file_name);
+ file_name = get_mbstring_from_wstring(win32_codepage, fnamew, file_name=NULL);
+ xfree(fnamew);
+ }
+#endif
while (p && strcmp(p->file_name, file_name) != 0)
p = p->next;
if (p) {
Modified: trunk/Build/source/texk/web2c/pdftexdir/pdftoepdf.cc
===================================================================
--- trunk/Build/source/texk/web2c/pdftexdir/pdftoepdf.cc 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/web2c/pdftexdir/pdftoepdf.cc 2018-06-10 06:12:41 UTC (rev 47973)
@@ -166,6 +166,15 @@
static PdfDocument *find_add_document(char *file_name)
{
PdfDocument *p = pdfDocuments;
+#ifdef _WIN32
+ wchar_t *fnamew;
+ if (file_system_codepage == CP_UTF8 && win32_codepage != CP_UTF8) {
+ fnamew = get_wstring_from_mbstring(CP_UTF8, file_name, fnamew=NULL);
+ xfree(file_name);
+ file_name = get_mbstring_from_wstring(win32_codepage, fnamew, file_name=NULL);
+ xfree(fnamew);
+ }
+#endif
while (p && strcmp(p->file_name, file_name) != 0)
p = p->next;
if (p) {
Modified: trunk/Build/source/texk/web2c/pdftexdir/ptexlib.h
===================================================================
--- trunk/Build/source/texk/web2c/pdftexdir/ptexlib.h 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/web2c/pdftexdir/ptexlib.h 2018-06-10 06:12:41 UTC (rev 47973)
@@ -20,6 +20,13 @@
#ifndef PDFTEXLIB
# define PDFTEXLIB
+#ifdef _WIN32
+#undef fopen
+#undef xfopen
+#define fopen fsyscp_fopen
+#define xfopen fsyscp_xfopen
+#endif
+
/* WEB2C macros and prototypes */
# if !defined(PDFTEXCOERCE) && !defined(PDFETEXCOERCE)
# ifdef pdfTeX
Modified: trunk/Build/source/texk/web2c/synctexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/synctexdir/ChangeLog 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/web2c/synctexdir/ChangeLog 2018-06-10 06:12:41 UTC (rev 47973)
@@ -1,3 +1,8 @@
+2018-06-10 TANAKA Takuji <ttk at t-lab.opal.ne.jp>
+
+ * synctex.c: Allow non-ascii file names for pdfTeX
+ with UTF-8 source files (w32 only).
+
2018-05-29 Akira Kakuto <kakuto at fuk.kindai.ac.jp>
* synctex.c: Discard the changes on 2018-05-11, since
Modified: trunk/Build/source/texk/web2c/synctexdir/synctex.c
===================================================================
--- trunk/Build/source/texk/web2c/synctexdir/synctex.c 2018-06-10 02:08:37 UTC (rev 47972)
+++ trunk/Build/source/texk/web2c/synctexdir/synctex.c 2018-06-10 06:12:41 UTC (rev 47973)
@@ -292,7 +292,7 @@
# define SYNCTEX_OFFSET_IS_PDF 0
# endif
-#if defined(_WIN32) && (defined(upTeX) || defined(eupTeX) || defined(XeTeX))
+#if defined(_WIN32) && (defined(pdfTeX) || defined(upTeX) || defined(eupTeX) || defined(XeTeX))
#define W32UPTEXSYNCTEX 1
#include <wchar.h>
static char *chgto_oem(char *src);
More information about the tex-live-commits
mailing list