From 00bb4936e0a1b87e21a6fc4587f456eb6253c8c6 Mon Sep 17 00:00:00 2001 From: Akira Kakuto Date: Tue, 28 Apr 2020 10:11:20 +0000 Subject: improve long path support (windows only) git-svn-id: svn://tug.org/texlive/trunk@54923 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/kpathsea/ChangeLog | 2 +- Build/source/texk/kpathsea/knj.c | 4 ++-- Build/source/texk/kpathsea/readable.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'Build') diff --git a/Build/source/texk/kpathsea/ChangeLog b/Build/source/texk/kpathsea/ChangeLog index 1a0bc71088a..933079c1680 100644 --- a/Build/source/texk/kpathsea/ChangeLog +++ b/Build/source/texk/kpathsea/ChangeLog @@ -1,4 +1,4 @@ -2020-04-26 Akira Kakuto +2020-04-28 Akira Kakuto * readable.c, knj.c: Support very long input path name, longer than _MAX_PATH for Windows, if it really exists and diff --git a/Build/source/texk/kpathsea/knj.c b/Build/source/texk/kpathsea/knj.c index b4595207aab..835773ae6d5 100644 --- a/Build/source/texk/kpathsea/knj.c +++ b/Build/source/texk/kpathsea/knj.c @@ -126,7 +126,7 @@ kpathsea_fsyscp_xfopen (kpathsea kpse, const char *filename, const char *mode) */ fnn = xmalloc(strlen(filename) + 10); if ((filename[0] == '/' && filename[1] == '/') || - (filename[0] == '\\' && filename[1] == '\\')) { + (filename[0] == '\\' && filename[1] == '\\' filename[2] != '?')) { filename += 2; strcpy (fnn, "\\\\?\\UNC\\"); strcat (fnn, filename); @@ -182,7 +182,7 @@ kpathsea_fsyscp_fopen (kpathsea kpse, const char *filename, const char *mode) */ fnn = xmalloc(strlen(filename) + 10); if ((filename[0] == '/' && filename[1] == '/') || - (filename[0] == '\\' && filename[1] == '\\')) { + (filename[0] == '\\' && filename[1] == '\\' && filename[2] != '?')) { filename += 2; strcpy (fnn, "\\\\?\\UNC\\"); strcat (fnn, filename); diff --git a/Build/source/texk/kpathsea/readable.c b/Build/source/texk/kpathsea/readable.c index 2d060d08cb4..a6dc1233f1a 100644 --- a/Build/source/texk/kpathsea/readable.c +++ b/Build/source/texk/kpathsea/readable.c @@ -51,7 +51,7 @@ READABLE(kpathsea kpse, const_string fn, unsigned int st) full-absolute path in a command line. */ if ((fn[0] == '/' && fn[1] == '/') || - (fn[0] == '\\' && fn[1] == '\\')) { + (fn[0] == '\\' && fn[1] == '\\' && fn[2] != '?')) { fn += 2; strcpy (fnn, "\\\\?\\UNC\\"); strcat (fnn, fn); -- cgit v1.2.3