summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/source/utils/README2
-rw-r--r--Build/source/utils/t1utils/ChangeLog5
-rw-r--r--Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-05-getopt11
-rw-r--r--Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-06-unsigned161
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39-PATCHES/ChangeLog (renamed from Build/source/utils/t1utils/t1utils-1.38-PATCHES/ChangeLog)7
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39-PATCHES/TL-Changes (renamed from Build/source/utils/t1utils/t1utils-1.38-PATCHES/TL-Changes)2
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-03-warnings (renamed from Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-03-warnings)16
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-04-TL-binary (renamed from Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-04-TL-binary)24
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-05-getopt11
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/INSTALL (renamed from Build/source/utils/t1utils/t1utils-1.38/INSTALL)0
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/Makefile.am (renamed from Build/source/utils/t1utils/t1utils-1.38/Makefile.am)4
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/NEWS (renamed from Build/source/utils/t1utils/t1utils-1.38/NEWS)6
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/README (renamed from Build/source/utils/t1utils/t1utils-1.38/README)0
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/clp.c (renamed from Build/source/utils/t1utils/t1utils-1.38/clp.c)0
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/config.h.in (renamed from Build/source/utils/t1utils/t1utils-1.38/config.h.in)0
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/configure.ac (renamed from Build/source/utils/t1utils/t1utils-1.38/configure.ac)2
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/include/lcdf/clp.h (renamed from Build/source/utils/t1utils/t1utils-1.38/include/lcdf/clp.h)0
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/include/lcdf/inttypes.h (renamed from Build/source/utils/t1utils/t1utils-1.38/include/lcdf/inttypes.h)0
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1ascii.1 (renamed from Build/source/utils/t1utils/t1utils-1.38/t1ascii.1)2
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1ascii.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1ascii.c)2
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1asm.1 (renamed from Build/source/utils/t1utils/t1utils-1.38/t1asm.1)2
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1asm.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1asm.c)42
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1asmhelp.h48
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1binary.1 (renamed from Build/source/utils/t1utils/t1utils-1.38/t1binary.1)2
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1binary.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1binary.c)2
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1disasm.1 (renamed from Build/source/utils/t1utils/t1utils-1.38/t1disasm.1)2
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1disasm.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1disasm.c)43
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1lib.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1lib.c)34
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1lib.h (renamed from Build/source/utils/t1utils/t1utils-1.38/t1lib.h)0
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1mac.1 (renamed from Build/source/utils/t1utils/t1utils-1.38/t1mac.1)2
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1mac.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1mac.c)11
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1unmac.1 (renamed from Build/source/utils/t1utils/t1utils-1.38/t1unmac.1)2
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1unmac.c (renamed from Build/source/utils/t1utils/t1utils-1.38/t1unmac.c)2
-rw-r--r--Build/source/utils/t1utils/t1utils-1.39/t1utils.spec (renamed from Build/source/utils/t1utils/t1utils-1.38/t1utils.spec)4
-rw-r--r--Build/source/utils/t1utils/version.ac2
35 files changed, 160 insertions, 293 deletions
diff --git a/Build/source/utils/README b/Build/source/utils/README
index 56d44737c5d..c4f84c61cba 100644
--- a/Build/source/utils/README
+++ b/Build/source/utils/README
@@ -23,7 +23,7 @@ pmx 2.7.0 - checked 25nov14
ps2eps 1.68 - checked 10may12
http://tm.uka.de/~bless/ps2eps
-t1utils 1.38 - checked 3oct13
+t1utils 1.39 - checked 1mar15
http://www.lcdf.org/type/
texdoctk - reluctantly maintained here in TL
diff --git a/Build/source/utils/t1utils/ChangeLog b/Build/source/utils/t1utils/ChangeLog
index 85a6ac202c7..5de976370c5 100644
--- a/Build/source/utils/t1utils/ChangeLog
+++ b/Build/source/utils/t1utils/ChangeLog
@@ -1,3 +1,8 @@
+2015-03-01 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Import t1utils-1.39.
+ * version.ac: Adjust.
+
2015-02-16 Peter Breitenlohner <peb@mppmu.mpg.de>
* Makefile.am: Use the fragment ../../am/dist_hook.am.
diff --git a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-05-getopt b/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-05-getopt
deleted file mode 100644
index 58d6bd3010a..00000000000
--- a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-05-getopt
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur t1utils-1.38.orig/t1unmac.c t1utils-1.38/t1unmac.c
---- t1utils-1.38.orig/t1unmac.c 2013-10-03 14:01:08.000000000 +0200
-+++ t1utils-1.38/t1unmac.c 2013-11-22 09:50:47.000000000 +0100
-@@ -41,7 +41,6 @@
- #endif
- #if defined(_MSDOS) || defined(_WIN32)
- # include <fcntl.h>
--# include <getopt.h>
- # include <io.h>
- #endif
- #include <stdio.h>
diff --git a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-06-unsigned b/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-06-unsigned
deleted file mode 100644
index c355deb6c60..00000000000
--- a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-06-unsigned
+++ /dev/null
@@ -1,161 +0,0 @@
- Avoid undefined behaviour when char is signed.
-
-diff -ur t1utils-1.38.orig/t1asm.c t1utils-1.38/t1asm.c
---- t1utils-1.38.orig/t1asm.c 2013-09-29 15:23:22.000000000 +0200
-+++ t1utils-1.38/t1asm.c 2014-06-19 13:08:40.000000000 +0200
-@@ -273,7 +273,7 @@
- static int check_line_charstring(void)
- {
- char *p = line;
-- while (isspace(*p))
-+ while (isspace((unsigned char)*p))
- p++;
- return (*p == '/' || (p[0] == 'd' && p[1] == 'u' && p[2] == 'p'));
- }
-@@ -359,8 +359,8 @@
-
- static int is_integer(char *string)
- {
-- if (isdigit(string[0]) || string[0] == '-' || string[0] == '+') {
-- while (*++string && isdigit(*string))
-+ if (isdigit((unsigned char)string[0]) || string[0] == '-' || string[0] == '+') {
-+ while (*++string && isdigit((unsigned char)*string))
- ; /* deliberately empty */
- if (!*string)
- return 1;
-@@ -738,11 +738,11 @@
- t1utils_getline();
-
- if (!ever_active) {
-- if (strncmp(line, "currentfile eexec", 17) == 0 && isspace(line[17])) {
-+ if (strncmp(line, "currentfile eexec", 17) == 0 && isspace((unsigned char)line[17])) {
- /* Allow arbitrary whitespace after "currentfile eexec".
- Thanks to Tom Kacvinsky <tjk@ams.org> for reporting this.
- Note: strlen("currentfile eexec") == 17. */
-- for (p = line + 18; isspace(*p); p++)
-+ for (p = line + 18; isspace((unsigned char)*p); p++)
- ;
- eexec_start(p);
- continue;
-@@ -756,7 +756,7 @@
- if (q) {
- r = cs_start;
- ++q;
-- while (!isspace(*q) && *q != '{')
-+ while (!isspace((unsigned char)*q) && *q != '{')
- *r++ = *q++;
- *r = '\0';
- }
-@@ -765,9 +765,9 @@
- }
-
- if (!active) {
-- if ((p = strstr(line, "/Subrs")) && isdigit(p[7]))
-+ if ((p = strstr(line, "/Subrs")) && isdigit((unsigned char)p[7]))
- ever_active = active = 1;
-- else if ((p = strstr(line, "/CharStrings")) && isdigit(p[13]))
-+ else if ((p = strstr(line, "/CharStrings")) && isdigit((unsigned char)p[13]))
- ever_active = active = 1;
- }
- if ((p = strstr(line, "currentfile closefile"))) {
-@@ -776,7 +776,7 @@
- /* 1/3/2002 -- happy new year! -- Luc Devroye reports a failure with
- some printers when `currentfile closefile' is followed by space */
- p += sizeof("currentfile closefile") - 1;
-- for (q = p; isspace(*q) && *q != '\n'; q++)
-+ for (q = p; isspace((unsigned char)*q) && *q != '\n'; q++)
- /* nada */;
- if (q == p && !*q)
- error("warning: `currentfile closefile' line too long");
-diff -ur t1utils-1.38.orig/t1disasm.c t1utils-1.38/t1disasm.c
---- t1utils-1.38.orig/t1disasm.c 2013-10-03 14:02:25.000000000 +0200
-+++ t1utils-1.38/t1disasm.c 2014-06-19 13:08:40.000000000 +0200
-@@ -100,7 +100,7 @@
- char *p = strstr(line, "/lenIV ");
-
- /* Allow lenIV to be negative. Thanks to Tom Kacvinsky <tjk@ams.org> */
-- if (p && (isdigit(p[7]) || p[7] == '+' || p[7] == '-')) {
-+ if (p && (isdigit((unsigned char)p[7]) || p[7] == '+' || p[7] == '-')) {
- lenIV = atoi(p + 7);
- }
- }
-@@ -120,7 +120,7 @@
- if (q) {
- r = cs_start;
- ++q;
-- while (!isspace(*q) && *q != '{')
-+ while (!isspace((unsigned char)*q) && *q != '{')
- *r++ = *q++;
- *r = '\0';
- }
-diff -ur t1utils-1.38.orig/t1lib.c t1utils-1.38/t1lib.c
---- t1utils-1.38.orig/t1lib.c 2013-09-29 15:23:22.000000000 +0200
-+++ t1utils-1.38/t1lib.c 2014-06-19 13:08:40.000000000 +0200
-@@ -59,7 +59,7 @@
- char *start = s;
- char *t = s;
- for (; *s; s++) {
-- if (isspace(*s))
-+ if (isspace((unsigned char)*s))
- continue;
- if (c1) {
- *t++ = (hexval(c1) << 4) + hexval(*s);
-@@ -136,10 +136,10 @@
-
- /* now that we have the line, handle it */
- if (blocktyp == PFA_ASCII) {
-- if (strncmp(line, "currentfile eexec", 17) == 0 && isspace(line[17])) {
-+ if (strncmp(line, "currentfile eexec", 17) == 0 && isspace((unsigned char)line[17])) {
- char saved_p;
- /* assert(line == buffer); */
-- for (line += 18; isspace(*line); line++)
-+ for (line += 18; isspace((unsigned char)*line); line++)
- /* nada */;
- saved_p = *line;
- *line = 0;
-@@ -158,12 +158,12 @@
- if (blocktyp == PFA_EEXEC_TEST) {
- /* 8.Feb.2004: fix bug if first character in a binary eexec block
- is 0, reported by Werner Lemberg */
-- for (; line < last && isspace(*line); line++)
-+ for (; line < last && isspace((unsigned char)*line); line++)
- /* nada */;
- if (line == last)
- continue;
-- else if (last >= line + 4 && isxdigit(line[0]) && isxdigit(line[1])
-- && isxdigit(line[2]) && isxdigit(line[3]))
-+ else if (last >= line + 4 && isxdigit((unsigned char)line[0]) && isxdigit((unsigned char)line[1])
-+ && isxdigit((unsigned char)line[2]) && isxdigit((unsigned char)line[3]))
- blocktyp = PFA_HEX;
- else
- blocktyp = PFA_BINARY;
-diff -ur t1utils-1.38.orig/t1mac.c t1utils-1.38/t1mac.c
---- t1utils-1.38.orig/t1mac.c 2013-09-29 15:23:22.000000000 +0200
-+++ t1utils-1.38/t1mac.c 2014-06-19 13:08:40.000000000 +0200
-@@ -370,10 +370,10 @@
- s[len-1] = '\r';
- t1mac_output_data((byte *)s, len);
- if (strncmp(s, "/FontName", 9) == 0) {
-- for (s += 9; isspace(*s); s++) ;
-+ for (s += 9; isspace((unsigned char)*s); s++) ;
- if (*s == '/') {
- const char *t = ++s;
-- while (*t && !isspace(*t)) t++;
-+ while (*t && !isspace((unsigned char)*t)) t++;
- free(font_name);
- font_name = (char *)malloc(t - s + 1);
- memcpy(font_name, s, t - s);
-@@ -992,11 +992,11 @@
- int part = 0, len = 0;
- char *x, *s;
- for (x = s = font_name; *s; s++)
-- if (isupper(*s) || isdigit(*s)) {
-+ if (isupper((unsigned char)*s) || isdigit((unsigned char)*s)) {
- *x++ = *s;
- part++;
- len = 1;
-- } else if (islower(*s)) {
-+ } else if (islower((unsigned char)*s)) {
- if (len < (part <= 1 ? 5 : 3))
- *x++ = *s;
- len++;
diff --git a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/ChangeLog b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/ChangeLog
index 5c3a503064b..74cefd25514 100644
--- a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/ChangeLog
+++ b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/ChangeLog
@@ -1,3 +1,10 @@
+2015-03-01 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Import t1utils-1.39.
+ * patch-03-warnings, patch-04-TL-binary, patch-05-getopt:
+ Adapted.
+ * patch-06-unsigned (removed): Now handled in original sources.
+
2014-06-19 Peter Breitenlohner <peb@mppmu.mpg.de>
* patch-06-unsigned (new): Avoid undefined behaviour.
diff --git a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/TL-Changes b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/TL-Changes
index 88dea3a98b4..0ee328bb84f 100644
--- a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/TL-Changes
+++ b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/TL-Changes
@@ -1,4 +1,4 @@
-Changes applied to the t1utils-1.38 tree as obtained from:
+Changes applied to the t1utils-1.39 tree as obtained from:
http://www.lcdf.org/type/
Removed:
diff --git a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-03-warnings b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-03-warnings
index 715505bdf42..f945094761a 100644
--- a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-03-warnings
+++ b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-03-warnings
@@ -1,8 +1,8 @@
Avoid compiler warnings (gcc's -Wcast-qual).
-diff -ur t1utils-1.38.orig/clp.c t1utils-1.38/clp.c
---- t1utils-1.38.orig/clp.c 2013-09-29 15:23:22.000000000 +0200
-+++ t1utils-1.38/clp.c 2013-10-03 13:53:56.000000000 +0200
+diff -ur t1utils-1.39.orig/clp.c t1utils-1.39/clp.c
+--- t1utils-1.39.orig/clp.c 2014-12-11 18:20:22.000000000 +0100
++++ t1utils-1.39/clp.c 2015-03-02 08:50:06.829885555 +0100
@@ -1075,21 +1075,27 @@
parse_int(Clp_Parser *clp, const char *arg, int complain, void *user_data)
{
@@ -53,10 +53,10 @@ diff -ur t1utils-1.38.orig/clp.c t1utils-1.38/clp.c
if (*arg != 0 && *val == 0)
return 1;
else if (complain)
-diff -ur t1utils-1.38.orig/t1disasm.c t1utils-1.38/t1disasm.c
---- t1utils-1.38.orig/t1disasm.c 2013-09-29 15:33:53.000000000 +0200
-+++ t1utils-1.38/t1disasm.c 2013-10-03 13:53:56.000000000 +0200
-@@ -341,11 +341,11 @@
+diff -ur t1utils-1.39.orig/t1disasm.c t1utils-1.39/t1disasm.c
+--- t1utils-1.39.orig/t1disasm.c 2015-02-26 21:25:22.000000000 +0100
++++ t1utils-1.39/t1disasm.c 2015-03-02 08:50:06.000000000 +0100
+@@ -302,11 +302,11 @@
/* 23.Feb.2004 - use 'memstr', not strstr, because the strings input to
eexec_line aren't null terminated! Reported by Werner Lemberg. */
@@ -72,7 +72,7 @@ diff -ur t1utils-1.38.orig/t1disasm.c t1utils-1.38/t1disasm.c
while (line < last
&& (try = memchr(line, (unsigned char)*pattern, last - line))) {
if (memcmp(try, pattern, pattern_len) == 0)
-@@ -440,7 +440,7 @@
+@@ -401,7 +401,7 @@
badly: a charstring definition follows "/Charstrings ... begin", ON THE
SAME LINE. */
{
diff --git a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-04-TL-binary b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-04-TL-binary
index 9cd7584db41..2f85b052be0 100644
--- a/Build/source/utils/t1utils/t1utils-1.38-PATCHES/patch-04-TL-binary
+++ b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-04-TL-binary
@@ -1,9 +1,9 @@
In TeX Live we treat all output files as binary.
-diff -ur t1utils-1.38.orig/t1ascii.c t1utils-1.38/t1ascii.c
---- t1utils-1.38.orig/t1ascii.c 2013-09-29 15:23:22.000000000 +0200
-+++ t1utils-1.38/t1ascii.c 2013-10-03 14:01:47.000000000 +0200
-@@ -284,6 +284,7 @@
+diff -ur t1utils-1.39.orig/t1ascii.c t1utils-1.39/t1ascii.c
+--- t1utils-1.39.orig/t1ascii.c 2014-12-12 19:58:33.000000000 +0100
++++ t1utils-1.39/t1ascii.c 2015-03-02 08:52:29.000000000 +0100
+@@ -286,6 +286,7 @@
/* As we are processing a PFB (binary) input */
/* file, we must set its file mode to binary. */
_setmode(_fileno(ifp), _O_BINARY);
@@ -11,10 +11,10 @@ diff -ur t1utils-1.38.orig/t1ascii.c t1utils-1.38/t1ascii.c
#endif
/* prepare font reader */
-diff -ur t1utils-1.38.orig/t1disasm.c t1utils-1.38/t1disasm.c
---- t1utils-1.38.orig/t1disasm.c 2013-10-03 13:53:56.000000000 +0200
-+++ t1utils-1.38/t1disasm.c 2013-10-03 14:02:25.000000000 +0200
-@@ -754,6 +754,7 @@
+diff -ur t1utils-1.39.orig/t1disasm.c t1utils-1.39/t1disasm.c
+--- t1utils-1.39.orig/t1disasm.c 2015-03-02 08:50:06.000000000 +0100
++++ t1utils-1.39/t1disasm.c 2015-03-02 08:52:29.000000000 +0100
+@@ -717,6 +717,7 @@
/* As we might be processing a PFB (binary) input file, we must set its file
mode to binary. */
_setmode(_fileno(ifp), _O_BINARY);
@@ -22,10 +22,10 @@ diff -ur t1utils-1.38.orig/t1disasm.c t1utils-1.38/t1disasm.c
#endif
/* prepare font reader */
-diff -ur t1utils-1.38.orig/t1unmac.c t1utils-1.38/t1unmac.c
---- t1utils-1.38.orig/t1unmac.c 2013-09-29 15:23:22.000000000 +0200
-+++ t1utils-1.38/t1unmac.c 2013-10-03 14:01:08.000000000 +0200
-@@ -654,8 +654,7 @@
+diff -ur t1utils-1.39.orig/t1unmac.c t1utils-1.39/t1unmac.c
+--- t1utils-1.39.orig/t1unmac.c 2014-12-12 19:58:33.000000000 +0100
++++ t1utils-1.39/t1unmac.c 2015-03-02 08:52:29.000000000 +0100
+@@ -656,8 +656,7 @@
_setmode(_fileno(ifp), _O_BINARY);
/* If we are processing a PFB (binary) output */
/* file, we must set its file mode to binary. */
diff --git a/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-05-getopt b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-05-getopt
new file mode 100644
index 00000000000..3a78ff17b1d
--- /dev/null
+++ b/Build/source/utils/t1utils/t1utils-1.39-PATCHES/patch-05-getopt
@@ -0,0 +1,11 @@
+diff -ur t1utils-1.39.orig/t1unmac.c t1utils-1.39/t1unmac.c
+--- t1utils-1.39.orig/t1unmac.c 2015-03-02 08:52:29.000000000 +0100
++++ t1utils-1.39/t1unmac.c 2015-03-02 08:57:05.000000000 +0100
+@@ -41,7 +41,6 @@
+ #endif
+ #if defined(_MSDOS) || defined(_WIN32)
+ # include <fcntl.h>
+-# include <getopt.h>
+ # include <io.h>
+ #endif
+ #include <stdio.h>
diff --git a/Build/source/utils/t1utils/t1utils-1.38/INSTALL b/Build/source/utils/t1utils/t1utils-1.39/INSTALL
index 95d84c820fb..95d84c820fb 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/INSTALL
+++ b/Build/source/utils/t1utils/t1utils-1.39/INSTALL
diff --git a/Build/source/utils/t1utils/t1utils-1.38/Makefile.am b/Build/source/utils/t1utils/t1utils-1.39/Makefile.am
index b294bea08ed..bf0d339b582 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/Makefile.am
+++ b/Build/source/utils/t1utils/t1utils-1.39/Makefile.am
@@ -9,9 +9,9 @@ t1ascii_SOURCES = include/lcdf/clp.h include/lcdf/inttypes.h \
t1binary_SOURCES = include/lcdf/clp.h include/lcdf/inttypes.h \
clp.c t1lib.h t1lib.c t1binary.c
t1asm_SOURCES = include/lcdf/clp.h include/lcdf/inttypes.h \
- clp.c t1lib.h t1lib.c t1asm.c
+ clp.c t1lib.h t1asmhelp.h t1lib.c t1asm.c
t1disasm_SOURCES = include/lcdf/clp.h include/lcdf/inttypes.h \
- clp.c t1lib.h t1lib.c t1disasm.c
+ clp.c t1lib.h t1asmhelp.h t1lib.c t1disasm.c
t1unmac_SOURCES = include/lcdf/clp.h include/lcdf/inttypes.h \
clp.c t1lib.h t1lib.c t1unmac.c
t1mac_SOURCES = include/lcdf/clp.h include/lcdf/inttypes.h \
diff --git a/Build/source/utils/t1utils/t1utils-1.38/NEWS b/Build/source/utils/t1utils/t1utils-1.39/NEWS
index 4853e0585a1..f3ffbe0bbaf 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/NEWS
+++ b/Build/source/utils/t1utils/t1utils-1.39/NEWS
@@ -1,5 +1,11 @@
T1utils NEWS
+Version 1.39 26.Feb.2015
+
+* t1disasm: Security fixes for buffer overrun reported by Jakub Wilk
+ and Niels Thykier.
+
+
Version 1.38 29.Sep.2013
* t1disasm: Fix an infinite loop on some fonts reported by Niels
diff --git a/Build/source/utils/t1utils/t1utils-1.38/README b/Build/source/utils/t1utils/t1utils-1.39/README
index 803b1ac7ee7..803b1ac7ee7 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/README
+++ b/Build/source/utils/t1utils/t1utils-1.39/README
diff --git a/Build/source/utils/t1utils/t1utils-1.38/clp.c b/Build/source/utils/t1utils/t1utils-1.39/clp.c
index 3dff115733b..3dff115733b 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/clp.c
+++ b/Build/source/utils/t1utils/t1utils-1.39/clp.c
diff --git a/Build/source/utils/t1utils/t1utils-1.38/config.h.in b/Build/source/utils/t1utils/t1utils-1.39/config.h.in
index 76389dfbfe6..76389dfbfe6 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/config.h.in
+++ b/Build/source/utils/t1utils/t1utils-1.39/config.h.in
diff --git a/Build/source/utils/t1utils/t1utils-1.38/configure.ac b/Build/source/utils/t1utils/t1utils-1.39/configure.ac
index 3b3582b598e..96b13a35206 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/configure.ac
+++ b/Build/source/utils/t1utils/t1utils-1.39/configure.ac
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT([t1utils], [1.38])
+AC_INIT([t1utils], [1.39])
AC_CONFIG_SRCDIR([t1ascii.c])
AM_INIT_AUTOMAKE
AC_CONFIG_HEADERS([config.h])
diff --git a/Build/source/utils/t1utils/t1utils-1.38/include/lcdf/clp.h b/Build/source/utils/t1utils/t1utils-1.39/include/lcdf/clp.h
index 1b658a17190..1b658a17190 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/include/lcdf/clp.h
+++ b/Build/source/utils/t1utils/t1utils-1.39/include/lcdf/clp.h
diff --git a/Build/source/utils/t1utils/t1utils-1.38/include/lcdf/inttypes.h b/Build/source/utils/t1utils/t1utils-1.39/include/lcdf/inttypes.h
index b88e9e9faf0..b88e9e9faf0 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/include/lcdf/inttypes.h
+++ b/Build/source/utils/t1utils/t1utils-1.39/include/lcdf/inttypes.h
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1ascii.1 b/Build/source/utils/t1utils/t1utils-1.39/t1ascii.1
index 0ee3b6e5db8..5d883f99129 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1ascii.1
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1ascii.1
@@ -1,4 +1,4 @@
-.ds V 1.37
+.ds V 1.39
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1ascii.c b/Build/source/utils/t1utils/t1utils-1.39/t1ascii.c
index 046f3047af7..757ae2225a8 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1ascii.c
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1ascii.c
@@ -90,6 +90,7 @@ fatal_error(const char *message, ...)
fprintf(stderr, "%s: ", program_name);
vfprintf(stderr, message, val);
putc('\n', stderr);
+ va_end(val);
exit(1);
}
@@ -101,6 +102,7 @@ error(const char *message, ...)
fprintf(stderr, "%s: ", program_name);
vfprintf(stderr, message, val);
putc('\n', stderr);
+ va_end(val);
}
static void
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1asm.1 b/Build/source/utils/t1utils/t1utils-1.39/t1asm.1
index 12e79a3729c..0621a0e2585 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1asm.1
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1asm.1
@@ -1,4 +1,4 @@
-.ds V 1.37
+.ds V 1.39
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1asm.c b/Build/source/utils/t1utils/t1utils-1.39/t1asm.c
index 27f45f27b23..0021bf016e9 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1asm.c
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1asm.c
@@ -66,6 +66,7 @@
#include <errno.h>
#include <lcdf/clp.h>
#include "t1lib.h"
+#include "t1asmhelp.h"
#define LINESIZE 512
@@ -90,10 +91,6 @@ static int in_eexec = 0;
/* need to add 1 as space for \0 */
static char line[LINESIZE + 1];
-/* lenIV and charstring start command */
-static int lenIV = 4;
-static char cs_start[10];
-
/* for charstring buffering */
static byte *charstring_buf, *charstring_bp;
static int charstring_bufsiz;
@@ -273,7 +270,7 @@ static void eexec_start(char *string)
static int check_line_charstring(void)
{
char *p = line;
- while (isspace((unsigned char)*p))
+ while (isspace((unsigned char) *p))
p++;
return (*p == '/' || (p[0] == 'd' && p[1] == 'u' && p[2] == 'p'));
}
@@ -359,8 +356,8 @@ static int CDECL command_compare(const void *key, const void *item)
static int is_integer(char *string)
{
- if (isdigit((unsigned char)string[0]) || string[0] == '-' || string[0] == '+') {
- while (*++string && isdigit((unsigned char)*string))
+ if (isdigit((unsigned char) string[0]) || string[0] == '-' || string[0] == '+') {
+ while (*++string && isdigit((unsigned char) *string))
; /* deliberately empty */
if (!*string)
return 1;
@@ -573,6 +570,7 @@ fatal_error(const char *message, ...)
fprintf(stderr, "%s: ", program_name);
vfprintf(stderr, message, val);
putc('\n', stderr);
+ va_end(val);
exit(1);
}
@@ -584,6 +582,7 @@ error(const char *message, ...)
fprintf(stderr, "%s: ", program_name);
vfprintf(stderr, message, val);
putc('\n', stderr);
+ va_end(val);
}
static void
@@ -624,7 +623,7 @@ Report bugs to <ekohler@gmail.com>.\n", program_name);
int main(int argc, char *argv[])
{
- char *p, *q, *r;
+ char *p, *q;
Clp_Parser *clp =
Clp_NewParser(argc, (const char * const *)argv, sizeof(options) / sizeof(options[0]), options);
@@ -738,36 +737,25 @@ particular purpose.\n");
t1utils_getline();
if (!ever_active) {
- if (strncmp(line, "currentfile eexec", 17) == 0 && isspace((unsigned char)line[17])) {
+ if (strncmp(line, "currentfile eexec", 17) == 0 && isspace((unsigned char) line[17])) {
/* Allow arbitrary whitespace after "currentfile eexec".
Thanks to Tom Kacvinsky <tjk@ams.org> for reporting this.
Note: strlen("currentfile eexec") == 17. */
- for (p = line + 18; isspace((unsigned char)*p); p++)
+ for (p = line + 18; isspace((unsigned char) *p); p++)
;
eexec_start(p);
continue;
} else if (strncmp(line, "/lenIV", 6) == 0) {
- lenIV = atoi(line + 6);
- } else if ((p = strstr(line, "string currentfile"))
- && strstr(line, "readstring")) { /* enforce `readstring' */
- /* locate the name of the charstring start command */
- *p = '\0'; /* damage line[] */
- q = strrchr(line, '/');
- if (q) {
- r = cs_start;
- ++q;
- while (!isspace((unsigned char)*q) && *q != '{')
- *r++ = *q++;
- *r = '\0';
- }
- *p = 's'; /* repair line[] */
+ set_lenIV(line);
+ } else if ((p = strstr(line, "string currentfile"))) {
+ set_cs_start(line);
}
}
if (!active) {
- if ((p = strstr(line, "/Subrs")) && isdigit((unsigned char)p[7]))
+ if ((p = strstr(line, "/Subrs")) && isdigit((unsigned char) p[7]))
ever_active = active = 1;
- else if ((p = strstr(line, "/CharStrings")) && isdigit((unsigned char)p[13]))
+ else if ((p = strstr(line, "/CharStrings")) && isdigit((unsigned char) p[13]))
ever_active = active = 1;
}
if ((p = strstr(line, "currentfile closefile"))) {
@@ -776,7 +764,7 @@ particular purpose.\n");
/* 1/3/2002 -- happy new year! -- Luc Devroye reports a failure with
some printers when `currentfile closefile' is followed by space */
p += sizeof("currentfile closefile") - 1;
- for (q = p; isspace((unsigned char)*q) && *q != '\n'; q++)
+ for (q = p; isspace((unsigned char) *q) && *q != '\n'; q++)
/* nada */;
if (q == p && !*q)
error("warning: `currentfile closefile' line too long");
diff --git a/Build/source/utils/t1utils/t1utils-1.39/t1asmhelp.h b/Build/source/utils/t1utils/t1utils-1.39/t1asmhelp.h
new file mode 100644
index 00000000000..c974fc7999f
--- /dev/null
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1asmhelp.h
@@ -0,0 +1,48 @@
+#ifndef T1ASMHELP_H
+#define T1ASMHELP_H
+
+static int lenIV = 4;
+
+/* If the line contains an entry of the form `/lenIV <num>' then set the global
+ lenIV to <num>. This indicates the number of random bytes at the beginning
+ of each charstring. */
+
+static void
+set_lenIV(const char* line)
+{
+ char *p = strstr(line, "/lenIV ");
+
+ /* Allow lenIV to be negative. Thanks to Tom Kacvinsky <tjk@ams.org> */
+ if (p && (isdigit((unsigned char) p[7]) || p[7] == '+' || p[7] == '-')) {
+ lenIV = atoi(p + 7);
+ }
+}
+
+
+static const char* cs_start = "";
+
+static void
+set_cs_start(const char* line)
+{
+ static int cs_start_set = 0;
+ char *p, *q, *r;
+
+ if ((p = strstr(line, "string currentfile"))
+ && strstr(line, "readstring")) {
+ /* locate the name of the charstring start command */
+ for (q = p; q != line && q[-1] != '/'; --q)
+ /* nada */;
+ if (q != line) {
+ for (r = q; r != p && !isspace((unsigned char) *r) && *r != '{'; ++r)
+ /* nada */;
+ if (cs_start_set)
+ free((char*) cs_start);
+ cs_start = p = malloc(r - q + 1);
+ memcpy(p, q, r - q);
+ p[r - q] = 0;
+ cs_start_set = 1;
+ }
+ }
+}
+
+#endif
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1binary.1 b/Build/source/utils/t1utils/t1utils-1.39/t1binary.1
index 8f55e93c48d..19d04b5b161 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1binary.1
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1binary.1
@@ -1,4 +1,4 @@
-.ds V 1.37
+.ds V 1.39
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1binary.c b/Build/source/utils/t1utils/t1utils-1.39/t1binary.c
index e69b9ba8637..a8ca6f74fc6 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1binary.c
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1binary.c
@@ -121,6 +121,7 @@ fatal_error(const char *message, ...)
fprintf(stderr, "%s: ", program_name);
vfprintf(stderr, message, val);
putc('\n', stderr);
+ va_end(val);
exit(1);
}
@@ -132,6 +133,7 @@ error(const char *message, ...)
fprintf(stderr, "%s: ", program_name);
vfprintf(stderr, message, val);
putc('\n', stderr);
+ va_end(val);
}
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1disasm.1 b/Build/source/utils/t1utils/t1utils-1.39/t1disasm.1
index 4458fb46ea1..308241c91bc 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1disasm.1
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1disasm.1
@@ -1,4 +1,4 @@
-.ds V 1.37
+.ds V 1.39
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1disasm.c b/Build/source/utils/t1utils/t1utils-1.39/t1disasm.c
index 40161a7fae5..92901719e28 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1disasm.c
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1disasm.c
@@ -70,6 +70,7 @@
#include <assert.h>
#include <lcdf/clp.h>
#include "t1lib.h"
+#include "t1asmhelp.h"
#ifdef __cplusplus
extern "C" {
@@ -78,8 +79,6 @@ extern "C" {
typedef unsigned char byte;
static FILE *ofp;
-static int lenIV = 4;
-static char cs_start[10];
static int unknown = 0;
/* decryption stuff */
@@ -90,44 +89,6 @@ static uint16_t er_default = 55665;
static int error_count = 0;
-/* If the line contains an entry of the form `/lenIV <num>' then set the global
- lenIV to <num>. This indicates the number of random bytes at the beginning
- of each charstring. */
-
-static void
-set_lenIV(char *line)
-{
- char *p = strstr(line, "/lenIV ");
-
- /* Allow lenIV to be negative. Thanks to Tom Kacvinsky <tjk@ams.org> */
- if (p && (isdigit((unsigned char)p[7]) || p[7] == '+' || p[7] == '-')) {
- lenIV = atoi(p + 7);
- }
-}
-
-static void
-set_cs_start(char *line)
-{
- char *p, *q, *r;
-
- if ((p = strstr(line, "string currentfile"))) {
- /* enforce presence of `readstring' -- 5/29/99 */
- if (!strstr(line, "readstring"))
- return;
- /* locate the name of the charstring start command */
- *p = '\0'; /* damage line[] */
- q = strrchr(line, '/');
- if (q) {
- r = cs_start;
- ++q;
- while (!isspace((unsigned char)*q) && *q != '{')
- *r++ = *q++;
- *r = '\0';
- }
- *p = 's'; /* repair line[] */
- }
-}
-
/* Subroutine to output strings. */
static void
@@ -633,6 +594,7 @@ fatal_error(const char *message, ...)
fprintf(stderr, "%s: ", program_name);
vfprintf(stderr, message, val);
fputc('\n', stderr);
+ va_end(val);
exit(1);
}
@@ -645,6 +607,7 @@ error(const char *message, ...)
vfprintf(stderr, message, val);
fputc('\n', stderr);
error_count++;
+ va_end(val);
}
static void
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1lib.c b/Build/source/utils/t1utils/t1utils-1.39/t1lib.c
index f3e5fa7e245..28df311b0ab 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1lib.c
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1lib.c
@@ -59,7 +59,7 @@ translate_hex_string(char *s, char *saved_orphan)
char *start = s;
char *t = s;
for (; *s; s++) {
- if (isspace((unsigned char)*s))
+ if (isspace((unsigned char) *s))
continue;
if (c1) {
*t++ = (hexval(c1) << 4) + hexval(*s);
@@ -136,10 +136,10 @@ process_pfa(FILE *ifp, const char *ifp_filename, struct font_reader *fr)
/* now that we have the line, handle it */
if (blocktyp == PFA_ASCII) {
- if (strncmp(line, "currentfile eexec", 17) == 0 && isspace((unsigned char)line[17])) {
+ if (strncmp(line, "currentfile eexec", 17) == 0 && isspace((unsigned char) line[17])) {
char saved_p;
/* assert(line == buffer); */
- for (line += 18; isspace((unsigned char)*line); line++)
+ for (line += 18; isspace((unsigned char) *line); line++)
/* nada */;
saved_p = *line;
*line = 0;
@@ -158,12 +158,14 @@ process_pfa(FILE *ifp, const char *ifp_filename, struct font_reader *fr)
if (blocktyp == PFA_EEXEC_TEST) {
/* 8.Feb.2004: fix bug if first character in a binary eexec block
is 0, reported by Werner Lemberg */
- for (; line < last && isspace((unsigned char)*line); line++)
+ for (; line < last && isspace((unsigned char) *line); line++)
/* nada */;
if (line == last)
continue;
- else if (last >= line + 4 && isxdigit((unsigned char)line[0]) && isxdigit((unsigned char)line[1])
- && isxdigit((unsigned char)line[2]) && isxdigit((unsigned char)line[3]))
+ else if (last >= line + 4 && isxdigit((unsigned char) line[0])
+ && isxdigit((unsigned char) line[1])
+ && isxdigit((unsigned char) line[2])
+ && isxdigit((unsigned char) line[3]))
blocktyp = PFA_HEX;
else
blocktyp = PFA_BINARY;
@@ -244,9 +246,9 @@ void
process_pfb(FILE *ifp, const char *ifp_filename, struct font_reader *fr)
{
int blocktyp = 0;
- int block_len = 0;
+ unsigned block_len = 0;
int c = 0;
- int filepos = 0;
+ unsigned filepos = 0;
int linepos = 0;
char line[LINESIZE];
@@ -260,7 +262,7 @@ process_pfb(FILE *ifp, const char *ifp_filename, struct font_reader *fr)
if (c == EOF || blocktyp == EOF)
error("%s corrupted: no end-of-file marker", ifp_filename);
else
- error("%s corrupted: bad block marker at position %d",
+ error("%s corrupted: bad block marker at position %u",
ifp_filename, filepos);
blocktyp = PFB_DONE;
}
@@ -270,9 +272,9 @@ process_pfb(FILE *ifp, const char *ifp_filename, struct font_reader *fr)
block_len = getc(ifp) & 0xFF;
block_len |= (getc(ifp) & 0xFF) << 8;
block_len |= (getc(ifp) & 0xFF) << 16;
- block_len |= (getc(ifp) & 0xFF) << 24;
+ block_len |= (unsigned) (getc(ifp) & 0xFF) << 24;
if (feof(ifp)) {
- error("%s corrupted: bad block length at position %d",
+ error("%s corrupted: bad block length at position %u",
ifp_filename, filepos);
blocktyp = PFB_DONE;
goto done;
@@ -282,11 +284,11 @@ process_pfb(FILE *ifp, const char *ifp_filename, struct font_reader *fr)
/* read the block in its entirety, in LINESIZE chunks */
while (block_len > 0) {
- int rest = LINESIZE - 1 - linepos; /* leave space for '\0' */
- int n = (block_len > rest ? rest : block_len);
+ unsigned rest = LINESIZE - 1 - linepos; /* leave space for '\0' */
+ unsigned n = (block_len > rest ? rest : block_len);
int actual = fread(line + linepos, 1, n, ifp);
- if (actual != n) {
- error("%s corrupted: block short by %d bytes at position %d",
+ if (actual != (int) n) {
+ error("%s corrupted: block short by %u bytes at position %u",
ifp_filename, block_len - actual, filepos);
block_len = actual;
}
@@ -311,7 +313,7 @@ process_pfb(FILE *ifp, const char *ifp_filename, struct font_reader *fr)
done:
c = getc(ifp);
if (c != EOF)
- error("%s corrupted: data after PFB end marker at position %d",
+ error("%s corrupted: data after PFB end marker at position %u",
ifp_filename, filepos - 2);
fr->output_end();
}
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1lib.h b/Build/source/utils/t1utils/t1utils-1.39/t1lib.h
index 93859fea731..93859fea731 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1lib.h
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1lib.h
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1mac.1 b/Build/source/utils/t1utils/t1utils-1.39/t1mac.1
index 4a759716e51..a65fdc801c5 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1mac.1
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1mac.1
@@ -1,4 +1,4 @@
-.ds V 1.37
+.ds V 1.39
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1mac.c b/Build/source/utils/t1utils/t1utils-1.39/t1mac.c
index 9411a89a70d..617ad0189cb 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1mac.c
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1mac.c
@@ -370,10 +370,11 @@ t1mac_output_ascii(char *s, int len)
s[len-1] = '\r';
t1mac_output_data((byte *)s, len);
if (strncmp(s, "/FontName", 9) == 0) {
- for (s += 9; isspace((unsigned char)*s); s++) ;
+ for (s += 9; isspace((unsigned char) *s); s++)
+ /* skip */;
if (*s == '/') {
const char *t = ++s;
- while (*t && !isspace((unsigned char)*t)) t++;
+ while (*t && !isspace((unsigned char) *t)) t++;
free(font_name);
font_name = (char *)malloc(t - s + 1);
memcpy(font_name, s, t - s);
@@ -770,6 +771,7 @@ fatal_error(const char *message, ...)
fprintf(stderr, "%s: ", program_name);
vfprintf(stderr, message, val);
putc('\n', stderr);
+ va_end(val);
exit(1);
}
@@ -781,6 +783,7 @@ error(const char *message, ...)
fprintf(stderr, "%s: ", program_name);
vfprintf(stderr, message, val);
putc('\n', stderr);
+ va_end(val);
}
@@ -992,11 +995,11 @@ particular purpose.\n");
int part = 0, len = 0;
char *x, *s;
for (x = s = font_name; *s; s++)
- if (isupper((unsigned char)*s) || isdigit((unsigned char)*s)) {
+ if (isupper((unsigned char) *s) || isdigit((unsigned char) *s)) {
*x++ = *s;
part++;
len = 1;
- } else if (islower((unsigned char)*s)) {
+ } else if (islower((unsigned char) *s)) {
if (len < (part <= 1 ? 5 : 3))
*x++ = *s;
len++;
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1unmac.1 b/Build/source/utils/t1utils/t1utils-1.39/t1unmac.1
index 081ec31569f..372bb74ccd8 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1unmac.1
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1unmac.1
@@ -1,4 +1,4 @@
-.ds V 1.37
+.ds V 1.39
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1unmac.c b/Build/source/utils/t1utils/t1utils-1.39/t1unmac.c
index 727e0eeb67b..feadbfac65e 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1unmac.c
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1unmac.c
@@ -248,6 +248,7 @@ fatal_error(const char *message, ...)
fprintf(stderr, "%s: ", program_name);
vfprintf(stderr, message, val);
putc('\n', stderr);
+ va_end(val);
exit(1);
}
@@ -259,6 +260,7 @@ error(const char *message, ...)
fprintf(stderr, "%s: ", program_name);
vfprintf(stderr, message, val);
putc('\n', stderr);
+ va_end(val);
}
static void
diff --git a/Build/source/utils/t1utils/t1utils-1.38/t1utils.spec b/Build/source/utils/t1utils/t1utils-1.39/t1utils.spec
index 579e8c8e7e6..3013d8b4041 100644
--- a/Build/source/utils/t1utils/t1utils-1.38/t1utils.spec
+++ b/Build/source/utils/t1utils/t1utils-1.39/t1utils.spec
@@ -1,9 +1,9 @@
Summary: Programs for manipulating PostScript Type 1 fonts
Name: t1utils
-Version: 1.37
+Version: 1.39
Release: 1
-Source: http://www.lcdf.org/type/t1utils-1.37.tar.gz
+Source: http://www.lcdf.org/type/t1utils-1.39.tar.gz
URL: http://www.lcdf.org/type/
diff --git a/Build/source/utils/t1utils/version.ac b/Build/source/utils/t1utils/version.ac
index 623d371c2f3..cad784836f2 100644
--- a/Build/source/utils/t1utils/version.ac
+++ b/Build/source/utils/t1utils/version.ac
@@ -1,5 +1,5 @@
dnl
-dnl Copyright (C) 2011-2013 Peter Breitenlohner <tex-live@tug.org>
+dnl Copyright (C) 2011-2015 Peter Breitenlohner <tex-live@tug.org>
dnl
dnl This file is free software; the copyright holder
dnl gives unlimited permission to copy and/or distribute it,