summaryrefslogtreecommitdiff
path: root/system/ttmkfdir/patches/ttmkfdir-3.0.9-zlib.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/ttmkfdir/patches/ttmkfdir-3.0.9-zlib.patch')
-rw-r--r--system/ttmkfdir/patches/ttmkfdir-3.0.9-zlib.patch80
1 files changed, 80 insertions, 0 deletions
diff --git a/system/ttmkfdir/patches/ttmkfdir-3.0.9-zlib.patch b/system/ttmkfdir/patches/ttmkfdir-3.0.9-zlib.patch
new file mode 100644
index 0000000000..548a49e3c6
--- /dev/null
+++ b/system/ttmkfdir/patches/ttmkfdir-3.0.9-zlib.patch
@@ -0,0 +1,80 @@
+--- ttmkfdir-3.0.9/encoding.cpp 2002-12-09 03:52:48.000000000 -0500
++++ ttmkfdir-3.0.9/encoding.cpp 2003-09-12 12:32:29.000000000 -0400
+@@ -2,6 +2,8 @@
+ #include <cstdio>
+ #include <cstdlib>
+ #include <cstring>
++#include <unistd.h>
++#include <zlib.h>
+ #include "freetype/freetype.h"
+
+ #include "ttmkfdir.h"
+@@ -32,9 +34,16 @@
+ NextFile (FILE *f, char *name)
+ {
+ char file_name [1024];
+- char command[1024];
++ char line_buf [1024];
++ char tmp_file_name[] = "/tmp/ttmkfdir_XXXXXX";
++ char inbuf[300000];
++ FILE *od;
++ gzFile fd;
++ int rvalue, tmpfd;
+
+- if (fscanf (f, "%*s %[^\n]\n", file_name) == 1) {
++ if (fgets (line_buf, sizeof(line_buf), f) != NULL) {
++
++ sscanf (line_buf, "%*s %[^\n]\n", file_name);
+
+ if (file_name[0] == '/') {
+ name[0] = 0;
+@@ -44,9 +53,25 @@
+
+ strcat (name, file_name);
+
+- sprintf (command, "exec %s < %s", (toupper(name[strlen (name) - 1]) == 'Z')
+- ? "gzip -d" : "cat", name);
+- return popen (command, "r");
++ bzero(inbuf, sizeof(inbuf));
++
++ fd = gzopen (name,"rb");
++ rvalue = gzread (fd, inbuf, sizeof(inbuf));
++
++ tmpfd = mkstemp (tmp_file_name);
++ if (tmpfd == -1) {
++ return 0;
++ }
++
++ od = fdopen (tmpfd,"w");
++ fputs (inbuf, od);
++ fflush (od);
++ fclose (od);
++
++ od = fopen (tmp_file_name,"r");
++ unlink (tmp_file_name);
++ return od;
++
+ }
+
+ return 0;
+@@ -75,7 +100,7 @@
+ yyrestart (input);
+ yylex (name, *this);
+
+- pclose (input);
++ fclose (input);
+ }
+
+ fclose (f);
+diff -uNr ttmkfdir-3.0.9.orig/Makefile ttmkfdir-3.0.9/Makefile
+--- ttmkfdir-3.0.9.orig/Makefile 2003-08-21 17:43:13.000000000 +1000
++++ ttmkfdir-3.0.9/Makefile 2003-08-21 17:40:16.000000000 +1000
+@@ -28,7 +28,7 @@
+ DEBUG=-ggdb
+ CXX=g++
+ CXXFLAGS=-Wall -pedantic $(FREETYPE_INCL) $(DEBUG) $(OPTFLAGS)
+-LDFLAGS=$(FREETYPE_LIB) $(DEBUG)
++LDFLAGS=$(FREETYPE_LIB) $(DEBUG) -lz
+
+ DESTDIR=
+ PREFIX=/usr