diff -ur xpdf-4.03/goo/gfile.cc xpdf-src/goo/gfile.cc
--- xpdf-4.03/goo/gfile.cc	Thu Jan 28 07:23:51 2021
+++ xpdf-src/goo/gfile.cc	Mon Feb 01 13:13:50 2021
@@ -7,6 +7,9 @@
 // Copyright 1996-2003 Glyph & Cog, LLC
 //
 //========================================================================
+//  Modified for TeX Live by Peter Breitenlohner <tex-live@tug.org>
+//  See top-level ChangeLog for a list of all modifications
+//========================================================================
 
 #include <aconf.h>
 
@@ -56,7 +59,11 @@
   char *s;
   GString *ret;
 
+#ifdef _WIN32
+  if ((s = getenv("USERPROFILE")))
+#else
   if ((s = getenv("HOME")))
+#endif
     ret = new GString(s);
   else
     ret = new GString(".");
@@ -405,6 +412,7 @@
 #endif
 }
 
+#ifndef PDF_PARSER_ONLY
 GBool openTempFile(GString **name, FILE **f,
 		   const char *mode, const char *ext) {
 #if defined(_WIN32)
@@ -519,10 +527,11 @@
   return gTrue;
 #endif
 }
+#endif /* !PDF_PARSER_ONLY */
 
 GBool createDir(char *path, int mode) {
 #ifdef _WIN32
-  return !mkdir(path);
+  return !_mkdir(path);
 #else
   return !mkdir(path, mode);
 #endif
@@ -602,6 +611,8 @@
 
 FILE *openFile(const char *path, const char *mode) {
 #if defined(_WIN32)
+  return fopen(path, mode);
+#if 0
   wchar_t wPath[_MAX_PATH + 1];
   wchar_t wMode[8];
   int i;
@@ -613,6 +624,7 @@
   wMode[i] = (wchar_t)0;
   readWindowsShortcut(wPath, _MAX_PATH + 1);
   return _wfopen(wPath, wMode);
+#endif /* 0 */
 #elif defined(VMS)
   return fopen(path, mode, "ctx=stm");
 #else
@@ -620,6 +632,7 @@
 #endif
 }
 
+#if 0
 #ifdef _WIN32
 void readWindowsShortcut(wchar_t *wPath, size_t wPathSize) {
   size_t n = wcslen(wPath);
@@ -665,11 +678,11 @@
   wcscpy(wPath, target);
 }
 #endif
+#endif /* 0 */
 
 int makeDir(const char *path, int mode) {
 #ifdef _WIN32
-  wchar_t wPath[_MAX_PATH + 1];
-  return _wmkdir(fileNameToUCS2(path, wPath, sizeof(wPath) / sizeof(wchar_t)));
+  return _mkdir(path);
 #else
   return mkdir(path, (mode_t)mode);
 #endif
@@ -728,6 +741,7 @@
 #endif
 }
 
+#ifndef PDF_PARSER_ONLY
 void fixCommandLine(int *argc, char **argv[]) {
 #ifdef _WIN32
   int argcw;
@@ -753,3 +767,4 @@
   LocalFree(argvw);
 #endif
 }
+#endif /* !PDF_PARSER_ONLY */
diff -ur xpdf-4.03/goo/gfile.h xpdf-src/goo/gfile.h
--- xpdf-4.03/goo/gfile.h	Thu Jan 28 07:23:51 2021
+++ xpdf-src/goo/gfile.h	Mon Feb 01 13:14:50 2021
@@ -91,12 +91,6 @@
 // UCS-2 and calls _wfopen().  On other OSes, this simply calls fopen().
 extern FILE *openFile(const char *path, const char *mode);
 
-#ifdef _WIN32
-// If [wPath] is a Windows shortcut (.lnk file), read the target path
-// and store it back into [wPath].
-extern void readWindowsShortcut(wchar_t *wPath, size_t wPathSize);
-#endif
-
 // Create a directory.  On Windows, this converts the path from UTF-8
 // to UCS-2 and calls _wmkdir(), ignoring the mode argument.  On other
 // OSes, this simply calls mkdir().
@@ -130,6 +124,8 @@
 
 // On Windows, this gets the Unicode command line and converts it to
 // UTF-8.  On other systems, this is a nop.
+#ifndef PDF_PARSER_ONLY
 extern void fixCommandLine(int *argc, char **argv[]);
+#endif /* !PDF_PARSER_ONLY */
 
 #endif
diff -ur xpdf-4.03/xpdf/GlobalParams.cc xpdf-src/xpdf/GlobalParams.cc
--- xpdf-4.03/xpdf/GlobalParams.cc	Thu Jan 28 07:23:51 2021
+++ xpdf-src/xpdf/GlobalParams.cc	Mon Feb 01 12:20:24 2021
@@ -5,6 +5,9 @@
 // Copyright 2001-2003 Glyph & Cog, LLC
 //
 //========================================================================
+//  Modified for TeX Live by Peter Breitenlohner <tex-live@tug.org>
+//  See top-level ChangeLog for a list of all modifications
+//========================================================================
 
 #include <aconf.h>
 
@@ -44,8 +47,12 @@
 #include "GlobalParams.h"
 
 #ifdef _WIN32
-#  define strcasecmp stricmp
-#  define strncasecmp strnicmp
+#  undef strcasecmp
+#  undef strncasecmp
+#  define strcasecmp _stricmp
+#  define strncasecmp _strnicmp
+#else
+#  include <strings.h>
 #endif
 
 #if MULTITHREADED
@@ -787,6 +794,7 @@
   f = NULL;
   fileName = NULL;
   if (cfgFileName && cfgFileName[0]) {
+#ifndef PDF_PARSER_ONLY
     fileName = new GString(cfgFileName);
     if (!(f = fopen(fileName->getCString(), "r"))) {
       delete fileName;
@@ -819,6 +827,7 @@
     parseFile(fileName, f);
     delete fileName;
     fclose(f);
+#endif /* !PDF_PARSER_ONLY */
   }
 }
 
@@ -2358,8 +2367,11 @@
 				   base14->fontNum,
 				   displayFontTab[i].obliqueFactor));
       } else {
+// Do not display unnecessary looking message on W32
+#ifndef _WIN32
 	error(errConfig, -1, "No display font for '{0:s}'",
 	      displayFontTab[i].name);
+#endif
       }
     }
   }
diff -ur xpdf-4.03/xpdf/GlobalParams.h xpdf-src/xpdf/GlobalParams.h
--- xpdf-4.03/xpdf/GlobalParams.h	Thu Jan 28 07:23:51 2021
+++ xpdf-src/xpdf/GlobalParams.h	Mon Feb 01 12:23:07 2021
@@ -5,6 +5,9 @@
 // Copyright 2001-2003 Glyph & Cog, LLC
 //
 //========================================================================
+//  Modified for TeX Live by Peter Breitenlohner <tex-live@tug.org>
+//  See top-level ChangeLog for a list of all modifications
+//========================================================================
 
 #ifndef GLOBALPARAMS_H
 #define GLOBALPARAMS_H
@@ -237,7 +240,7 @@
 
   // Initialize the global parameters by attempting to read a config
   // file.
-  GlobalParams(const char *cfgFileName);
+  GlobalParams(const char *cfgFileName = NULL);
 
   ~GlobalParams();
 
diff -ur xpdf-4.03/xpdf/PDFDoc.cc xpdf-src/xpdf/PDFDoc.cc
--- xpdf-4.03/xpdf/PDFDoc.cc	Thu Jan 28 07:23:51 2021
+++ xpdf-src/xpdf/PDFDoc.cc	Mon Feb 01 13:01:20 2021
@@ -114,6 +114,7 @@
   ok = setup(ownerPassword, userPassword);
 }
 
+#if 0
 #ifdef _WIN32
 PDFDoc::PDFDoc(wchar_t *fileNameA, int fileNameLen, GString *ownerPassword,
 	       GString *userPassword, PDFCore *coreA) {
@@ -161,23 +162,29 @@
   ok = setup(ownerPassword, userPassword);
 }
 #endif
+#endif /* 0 */
 
 PDFDoc::PDFDoc(char *fileNameA, GString *ownerPassword,
 	       GString *userPassword, PDFCore *coreA) {
+/*
 #ifdef _WIN32
   OSVERSIONINFO version;
 #endif
+*/
   Object obj;
+/*
 #ifdef _WIN32
   Unicode u;
   int i, j;
 #endif
+*/
 
   init(coreA);
 
   fileName = new GString(fileNameA);
 
 #if defined(_WIN32)
+#if 0
   wchar_t wPath[MAX_PATH + 1];
   i = 0;
   j = 0;
@@ -197,8 +204,11 @@
   if (version.dwPlatformId == VER_PLATFORM_WIN32_NT) {
     file = _wfopen(fileNameU, wfopenReadMode);
   } else {
+#endif /* 0 */
     file = fopen(fileName->getCString(), fopenReadMode);
+#if 0
   }
+#endif /* 0 */
 #elif defined(VMS)
   file = fopen(fileName->getCString(), fopenReadMode, "ctx=stm");
 #else
@@ -603,6 +613,7 @@
   GBool ret;
 
   // NB: _wfopen is only available in NT
+/*
   version.dwOSVersionInfoSize = sizeof(version);
   GetVersionEx(&version);
   if (version.dwPlatformId == VER_PLATFORM_WIN32_NT) {
@@ -612,12 +623,15 @@
     path2w[i] = 0;
     f = _wfopen(path2w, L"wb");
   } else {
+*/
     for (i = 0; i < pathLen && i < _MAX_PATH; ++i) {
       path2c[i] = (char)path[i];
     }
     path2c[i] = 0;
     f = fopen(path2c, "wb");
+/*
   }
+*/
   if (!f) {
     return gFalse;
   }
diff -ur xpdf-4.03/xpdf/Page.cc xpdf-src/xpdf/Page.cc
--- xpdf-4.03/xpdf/Page.cc	Thu Jan 28 07:23:51 2021
+++ xpdf-src/xpdf/Page.cc	Mon Feb 01 12:31:27 2021
@@ -485,9 +485,9 @@
   delete links;
 }
 
-#ifndef PDF_PARSER_ONLY
 void Page::getDefaultCTM(double *ctm, double hDPI, double vDPI,
 			 int rotate, GBool useMediaBox, GBool upsideDown) {
+#ifndef PDF_PARSER_ONLY
   GfxState *state;
   int i;
 
@@ -504,5 +504,5 @@
     ctm[i] = state->getCTM()[i];
   }
   delete state;
-}
 #endif
+}
diff -ur xpdf-4.03/xpdf/config.h xpdf-src/xpdf/config.h
--- xpdf-4.03/xpdf/config.h	Thu Jan 28 07:23:52 2021
+++ xpdf-src/xpdf/config.h	Mon Feb 01 12:34:28 2021
@@ -80,11 +80,6 @@
 // popen
 //------------------------------------------------------------------------
 
-#if defined(_MSC_VER) || defined(__BORLANDC__)
-#define popen _popen
-#define pclose _pclose
-#endif
-
 #if defined(VMS) || defined(VMCMS) || defined(DOS) || defined(OS2) || defined(__EMX__) || defined(_WIN32) || defined(__DJGPP__)
 #define POPEN_READ_MODE "rb"
 #else
