summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/lib/openclose.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/lib/openclose.c')
-rw-r--r--Build/source/texk/web2c/lib/openclose.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/lib/openclose.c b/Build/source/texk/web2c/lib/openclose.c
index a753cceb8de..a0d5f0bb35a 100644
--- a/Build/source/texk/web2c/lib/openclose.c
+++ b/Build/source/texk/web2c/lib/openclose.c
@@ -8,6 +8,9 @@
#include <kpathsea/tex-file.h>
#include <kpathsea/variable.h>
#include <kpathsea/absolute.h>
+#ifdef PTEX
+#include <ptexenc/ptexenc.h>
+#endif
/* The globals we use to communicate. */
extern string nameoffile;
@@ -188,6 +191,12 @@ open_input (FILE **f_ptr, int filefmt, const_string fopen_mode)
free (fname);
/* This fopen is not allowed to fail. */
+#ifdef PTEX
+ if (filefmt == kpse_tex_format ||
+ filefmt == kpse_bib_format) {
+ *f_ptr = nkf_open (nameoffile + 1, fopen_mode);
+ } else
+#endif
*f_ptr = xfopen (nameoffile + 1, fopen_mode);
}
}
@@ -274,7 +283,11 @@ close_file (FILE *f)
if (!f)
return;
+#ifdef PTEX
+ if (nkf_close (f) == EOF) {
+#else
if (fclose (f) == EOF) {
+#endif
/* It's not always nameoffile, we might have opened something else
in the meantime. And it's not easy to extract the filenames out
of the pool array. So just punt on the filename. Sigh. This