summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/source/texk/kpathsea/win32/ChangeLog6
-rw-r--r--Build/source/texk/kpathsea/win32/mktextfm.c24
2 files changed, 25 insertions, 5 deletions
diff --git a/Build/source/texk/kpathsea/win32/ChangeLog b/Build/source/texk/kpathsea/win32/ChangeLog
index 64e6311fc86..5a30293bb9b 100644
--- a/Build/source/texk/kpathsea/win32/ChangeLog
+++ b/Build/source/texk/kpathsea/win32/ChangeLog
@@ -1,3 +1,9 @@
+2020-01-31 Akira Kakuto <kakuto@w32tex.org>
+
+ * mktextfm.c: if envvar MF_MODE_EXTRA_INFO is set, include the
+ codingscheme and other Xerox-world info in the .tfm; works
+ with modes.mf 4.0 and later.
+
2019-02-20 Akira Kakuto <kakuto@w32tex.org>
* mktexpk.c: Remove unused definitions.
diff --git a/Build/source/texk/kpathsea/win32/mktextfm.c b/Build/source/texk/kpathsea/win32/mktextfm.c
index be53c7f8fa1..b743a7b7be2 100644
--- a/Build/source/texk/kpathsea/win32/mktextfm.c
+++ b/Build/source/texk/kpathsea/win32/mktextfm.c
@@ -1,6 +1,6 @@
/* mktextfm.c
- Copyright 2000, 2019 Akira Kakuto.
+ Copyright 2000, 2020 Akira Kakuto.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -39,7 +39,7 @@ usage (void)
static void
version (void)
{
- fprintf (stderr, "%s, (C version 1.5 --ak 2009-2012)\n", progname);
+ fprintf (stderr, "%s, (C version 1.6 --ak 2009-2020)\n", progname);
fprintf (stderr, KPSEVERSION WEB2CVERSION "\n");
return;
}
@@ -91,6 +91,7 @@ main (int ac, char **av)
char texbindir[TBUF];
char fullbin[TBUF];
+ char *extra_info;
kpse_set_program_name (av[0], NULL);
progname = kpse_program_name;
@@ -167,7 +168,7 @@ issetdest = 2 : current directory
return (100);
}
issetdest = 1;
- if (strlen(av[2]) > TBUF - 1 || strlen(av[3]) > TBUF - 1) {
+ if (strlen(av[2]) > TBUF - 1 || strlen(av[3]) > TBUF - 150) {
fprintf (stderr, "Too long a string.\n");
return (100);
}
@@ -180,7 +181,7 @@ issetdest = 2 : current directory
*p = '/';
}
} else {
- if (strlen(av[1]) > TBUF - 1) {
+ if (strlen(av[1]) > TBUF - 150) {
fprintf (stderr, "Too long a string.\n");
return (100);
}
@@ -302,8 +303,21 @@ issetdest = 2 : current directory
_dup2 (fileno (fnul), fileno (stdin));
/* METAFONT command line */
+/*
+The idea here is to provide a programmatic way to get the
+codingscheme and other so-called Xerox-world information into the
+tfm: if the envvar MF_MODE_EXTRA_INFO is set, then modes.mf (as of
+the 3.9 release in January 2020) will arrange for that. We do not
+do this by default because Knuth objected.
+*/
+ extra_info = getenv("MF_MODE_EXTRA_INFO");
strcpy (cmd, "--progname=mf --base=mf ");
- strcat (cmd, "\\mode:=ljfour; \\mag:=1; nonstopmode; input ");
+ strcat (cmd, "\\mode:=ljfour; mag:=1; ");
+ if (extra_info) {
+ strcat(cmd, "if known mode_include_extra_info_available: ");
+ strcat(cmd, "mode_include_extra_info fi; ");
+ }
+ strcat (cmd, "nonstopmode; input ");
strcat (cmd, fontname);
strcat (cmd, ";");