diff options
Diffstat (limited to 'system/ttmkfdir/patches')
10 files changed, 503 insertions, 0 deletions
diff --git a/system/ttmkfdir/patches/ttmkfdir-3.0.9-bug434301.patch b/system/ttmkfdir/patches/ttmkfdir-3.0.9-bug434301.patch new file mode 100644 index 0000000000..0a77dbbbc5 --- /dev/null +++ b/system/ttmkfdir/patches/ttmkfdir-3.0.9-bug434301.patch @@ -0,0 +1,11 @@ +--- ttmkfdir-3.0.9/directory.cpp.bak 2008-02-27 10:18:52.000000000 +0800 ++++ ttmkfdir-3.0.9/directory.cpp 2008-02-27 10:20:24.000000000 +0800 +@@ -3,6 +3,8 @@ + #include <stdio.h> + #include <sys/stat.h> + #include <unistd.h> ++#include <string.h> ++#include <stdlib.h> + + #include "directory.h" + diff --git a/system/ttmkfdir/patches/ttmkfdir-3.0.9-cpp.patch b/system/ttmkfdir/patches/ttmkfdir-3.0.9-cpp.patch new file mode 100644 index 0000000000..58839eda96 --- /dev/null +++ b/system/ttmkfdir/patches/ttmkfdir-3.0.9-cpp.patch @@ -0,0 +1,11 @@ +--- ttmkfdir-3.0.9/ttf.cpp.sopwith Thu Aug 7 12:49:08 2003 ++++ ttmkfdir-3.0.9/ttf.cpp Thu Aug 7 12:50:01 2003 +@@ -239,7 +239,7 @@ + for (i = 0; i < n; i++) { + if ((fterror = FT_Get_Sfnt_Name (face, i, &NamePtr)) != FT_Err_Ok) { + std::cout << "Warning: Can't SFNT name : " << FileName << "(" << fterror << ")" << std::endl; +- return; ++ return NULL; + }; + platform = NamePtr.platform_id; + encoding = NamePtr.encoding_id; diff --git a/system/ttmkfdir/patches/ttmkfdir-3.0.9-encoding-dir.patch b/system/ttmkfdir/patches/ttmkfdir-3.0.9-encoding-dir.patch new file mode 100644 index 0000000000..b07329620a --- /dev/null +++ b/system/ttmkfdir/patches/ttmkfdir-3.0.9-encoding-dir.patch @@ -0,0 +1,20 @@ +--- ttmkfdir-3.0.9/ttmkfdir.cpp.Origin 2006-06-15 17:58:43.000000000 +0800 ++++ ttmkfdir-3.0.9/ttmkfdir.cpp 2006-06-15 17:59:07.000000000 +0800 +@@ -16,7 +16,7 @@ + + cerr << "This Program is (C) Joerg Pommnitz, 2000" << endl; + cerr << "Usage: " << program << " [OPTION]" << endl; +- cerr << "-e, --encoding\t\tname of the encoding directory file, default is \"/usr/X11R6/lib/X11/fonts/encodings/encodings.dir\"" << endl; ++ cerr << "-e, --encoding\t\tname of the encoding directory file, default is \"/usr/share/X11/fonts/encodings/encodings.dir\"" << endl; + cerr << "-o, --output\t\tname of the destination file, default is \"fonts.scale\"" << endl; + cerr << "-d, --font-dir\t\tname of the TrueType font directory, default is \".\"" << endl; + cerr << "-f, --default-foundry\tname of the default font foundry, default is \"misc\"" << endl; +@@ -32,7 +32,7 @@ + void + ParseCommandline (int argc, char *argv[]) + { +- cmdline::instance()->AddOption (new Commandline::Option ("encoding", 'e', "/usr/X11R6/lib/X11/fonts/encodings/encodings.dir")); ++ cmdline::instance()->AddOption (new Commandline::Option ("encoding", 'e', "/usr/share/X11/fonts/encodings/encodings.dir")); + cmdline::instance()->AddOption (new Commandline::Option ("output", 'o', "fonts.scale")); + cmdline::instance()->AddOption (new Commandline::Option ("font-dir", 'd', ".")); + cmdline::instance()->AddOption (new Commandline::Option ("default-foundry", 'f', "misc")); diff --git a/system/ttmkfdir/patches/ttmkfdir-3.0.9-fix-crash.patch b/system/ttmkfdir/patches/ttmkfdir-3.0.9-fix-crash.patch new file mode 100644 index 0000000000..4a17ccfdc7 --- /dev/null +++ b/system/ttmkfdir/patches/ttmkfdir-3.0.9-fix-crash.patch @@ -0,0 +1,79 @@ +--- ttmkfdir-3.0.9.orig/encoding.l 2003-01-08 14:25:25.000000000 +0900 ++++ ttmkfdir-3.0.9/encoding.l 2005-08-03 19:24:22.000000000 +0900 +@@ -21,6 +21,19 @@ + + static Encoding *cur_enc; + static NumericMapping *cur_map; ++static int is_created_map = 0; ++ ++static void ++create_mapping(void) ++{ ++ cur_map = new NumericMapping (cur_enc->size, ++ TT_PLATFORM_MICROSOFT, ++ TT_MS_ID_UNICODE_CS); ++ ++ cur_enc->enc_size = 0; ++ cur_enc->start_code = 0xffff; ++ is_created_map = 1; ++} + + %} + +@@ -67,12 +80,6 @@ + } + + <INSIDE_ENC_BLOCK>STARTMAPPING{WHITESPACES}unicode { +- cur_map = new NumericMapping (cur_enc->size, +- TT_PLATFORM_MICROSOFT, +- TT_MS_ID_UNICODE_CS); +- +- cur_enc->enc_size = 0; +- cur_enc->start_code = 0xffff; + BEGIN(INSIDE_MAP_BLOCK); + } + +@@ -107,6 +114,12 @@ + i2 = i1; + } + ++ /* avoid a crash issue */ ++ if (cur_enc->size < i2) ++ cur_enc->size = i2; ++ if (!is_created_map) ++ create_mapping(); ++ + /* now mark all the unassigned codes */ + for (long i = i1; i <= i2; i++) { + (*cur_map)[i] = -1; +@@ -114,10 +127,14 @@ + } + + <INSIDE_MAP_BLOCK>{NUMBER}({WHITESPACES}{NUMBER}){0,2} { +- int numbers[3], i = 0, start_range, end_range, target, res; ++ unsigned int start_range; ++ int numbers[3], i = 0, end_range, target, res; + char *startptr; + char *endptr = yytext; + ++ if (!is_created_map) ++ create_mapping(); ++ + for (i = 0;;i++) { + startptr = endptr; + res = std::strtol (startptr, &endptr, 0); +@@ -150,9 +167,14 @@ + + + <INSIDE_MAP_BLOCK>ENDMAPPING { ++ /* it may not happens but to be safe */ ++ if (!is_created_map) ++ create_mapping(); ++ + cur_enc->AddMapping (cur_map); + dest.insert (std::make_pair(cur_map->cmapkey(), cur_enc));; + BEGIN(INSIDE_ENC_BLOCK); ++ is_created_map = 0; + } + + <INSIDE_UNKNOWN_MAP>ENDMAPPING { diff --git a/system/ttmkfdir/patches/ttmkfdir-3.0.9-fix-freetype217.patch b/system/ttmkfdir/patches/ttmkfdir-3.0.9-fix-freetype217.patch new file mode 100644 index 0000000000..a5ded9fbe4 --- /dev/null +++ b/system/ttmkfdir/patches/ttmkfdir-3.0.9-fix-freetype217.patch @@ -0,0 +1,44 @@ +--- ttmkfdir-3.0.9/encoding.cpp.orig 2002-12-09 17:52:48.000000000 +0900 ++++ ttmkfdir-3.0.9/encoding.cpp 2004-01-31 18:16:46.617118976 +0900 +@@ -4,7 +4,6 @@ + #include <cstring> + #include <unistd.h> + #include <zlib.h> +-#include "freetype/freetype.h" + + #include "ttmkfdir.h" + #include "encoding.h" +--- ttmkfdir-3.0.9/encoding.h.orig 2002-12-09 17:52:48.000000000 +0900 ++++ ttmkfdir-3.0.9/encoding.h 2004-01-31 18:19:18.600014064 +0900 +@@ -6,7 +6,8 @@ + #include <map> + #include <string> + +-#include "freetype/freetype.h" ++#include <ft2build.h> ++#include FT_FREETYPE_H + + #include "util.h" + +--- ttmkfdir-3.0.9/ttf.h.orig 2003-01-08 14:25:25.000000000 +0900 ++++ ttmkfdir-3.0.9/ttf.h 2004-01-31 18:32:53.333155800 +0900 +@@ -3,12 +3,13 @@ + #define TTF_H__ + + #include <string> +-#include "freetype/freetype.h" +-#include "freetype/tttables.h" +-#include "freetype/ftsnames.h" +-#include "freetype/ttnameid.h" +-#include "freetype/fterrors.h" +-#include "freetype/ftmodule.h" ++#include <ft2build.h> ++#include FT_FREETYPE_H ++#include FT_SFNT_NAMES_H ++#include FT_TRUETYPE_TABLES_H ++#include FT_TRUETYPE_IDS_H ++#include FT_ERRORS_H ++#include FT_MODULE_H + + #include "util.h" + #include "encoding.h" diff --git a/system/ttmkfdir/patches/ttmkfdir-3.0.9-font-scale.patch b/system/ttmkfdir/patches/ttmkfdir-3.0.9-font-scale.patch new file mode 100644 index 0000000000..e44e5dcbd3 --- /dev/null +++ b/system/ttmkfdir/patches/ttmkfdir-3.0.9-font-scale.patch @@ -0,0 +1,107 @@ +diff -ruN -x '*o' -x '*~' -x ttmkfdir -x parser.cpp ttmkfdir-3.0.9.orig/ttf.cpp ttmkfdir-3.0.9/ttf.cpp +--- ttmkfdir-3.0.9.orig/ttf.cpp 2006-11-29 15:46:55.000000000 +0900 ++++ ttmkfdir-3.0.9/ttf.cpp 2006-11-29 17:21:40.000000000 +0900 +@@ -70,7 +70,6 @@ + Face::Face (const std::string &filename) + { + FT_Error fterror; +- string header_enc("-"); + int face_id, face_count; + + string::size_type pos = filename.rfind("/"); +@@ -98,29 +97,13 @@ + if ((post = (TT_Postscript *) FT_Get_Sfnt_Table(face, ft_sfnt_post)) == 0){ + std::cout << "Warning: Can't get POST table : " << FileName << "(" << FT_Err_Post_Table_Missing << ")" << std::endl; + return; +- } ++ } + + if ((os2 = (TT_OS2 *) FT_Get_Sfnt_Table(face, ft_sfnt_os2)) == 0) { + std::cout << "Warning: Can't get OS2 table : " << FileName << "(" << FT_Err_Table_Missing << ")" << std::endl; + return; + } + +- for (int j = 0; j < 32; j++) { +- switch (os2->ulCodePageRange1 & (1 << j)) { +- case TT_CODEPAGE_RANGE_932: /* Japanese */ +- header_enc = "ji"; +- break; +- case TT_CODEPAGE_RANGE_936: /* Simplified Chinese */ +- header_enc = "gb"; +- break; +- case TT_CODEPAGE_RANGE_949: /* Korean Wansung */ +- header_enc = "ks"; +- break; +- case TT_CODEPAGE_RANGE_950: /* Traditional Chinese */ +- header_enc = "big"; +- break; +- } +- } + /* + * Iterate over all cmap entries. + */ +@@ -148,25 +131,50 @@ + */ + typedef Encodings_t::const_iterator MI; + std::pair<MI, MI> bounds = Encodings::instance()->equal_range (key); ++ bool need_non_cjk_encoding = true; + + /* + * then look whether each of these encodings is present in this cmap. + */ +- for (Encodings_t::const_iterator i = bounds.first; i != bounds.second; i++) { +- if (MappingPresent (cmapidx, +- i->second->mappings[key], +- i->second->enc_size, +- i->second->start_code, +- (header_enc.compare("-")?((i->second->names[0].find(header_enc) != string::npos)?1:0):1) +- )) { +- /* +- * if the mapping is present, add all xlfd names for this mapping to the +- * list of available font names. +- */ +- for (unsigned int k = 0; k < i->second->names.size (); k++) { +- add_entries (i->second->names[k],face_id); ++ for (int j = 0; j < 32; j++) { ++ string header_enc("-"); ++ ++ switch (os2->ulCodePageRange1 & (1 << j)) { ++ case TT_CODEPAGE_RANGE_932: /* Japanese */ ++ header_enc = "ji"; ++ break; ++ case TT_CODEPAGE_RANGE_936: /* Simplified Chinese */ ++ header_enc = "gb"; ++ break; ++ case TT_CODEPAGE_RANGE_949: /* Korean Wansung */ ++ header_enc = "ks"; ++ break; ++ case TT_CODEPAGE_RANGE_950: /* Traditional Chinese */ ++ header_enc = "big"; ++ break; ++ default: ++ if (need_non_cjk_encoding) ++ need_non_cjk_encoding = false; ++ else ++ continue; ++ break; ++ } ++ for (Encodings_t::const_iterator i = bounds.first; i != bounds.second; i++) { ++ if (MappingPresent (cmapidx, ++ i->second->mappings[key], ++ i->second->enc_size, ++ i->second->start_code, ++ (header_enc.compare("-")?((i->second->names[0].find(header_enc) != string::npos)?1:0):1) ++ )) { ++ /* ++ * if the mapping is present, add all xlfd names for this mapping to the ++ * list of available font names. ++ */ ++ for (unsigned int k = 0; k < i->second->names.size (); k++) { ++ add_entries (i->second->names[k],face_id); ++ } + } +- } ++ } + } + } + diff --git a/system/ttmkfdir/patches/ttmkfdir-3.0.9-namespace.patch b/system/ttmkfdir/patches/ttmkfdir-3.0.9-namespace.patch new file mode 100644 index 0000000000..34220c20e8 --- /dev/null +++ b/system/ttmkfdir/patches/ttmkfdir-3.0.9-namespace.patch @@ -0,0 +1,56 @@ +*** ttmkfdir-3.0.9/ttf.h.ORIG 2004-03-10 13:40:47.149814008 -0700 +--- ttmkfdir-3.0.9/ttf.h 2004-03-10 13:40:50.571293864 -0700 +*************** namespace ttf { +*** 50,56 **** + TT_Postscript *post; + std::string FileName; + }; +! }; + + #endif /* TTF_H__ */ + +--- 50,56 ---- + TT_Postscript *post; + std::string FileName; + }; +! } + + #endif /* TTF_H__ */ + +*** ttmkfdir-3.0.9/util.h.ORIG 2004-03-10 13:40:19.872960720 -0700 +--- ttmkfdir-3.0.9/util.h 2004-03-10 13:40:34.059803992 -0700 +*************** namespace util { +*** 17,22 **** + Singleton (void) {}; + ~Singleton (void) {}; + }; +! }; + + #endif // TTMKFDIRUTIL_H__ +--- 17,22 ---- + Singleton (void) {}; + ~Singleton (void) {}; + }; +! } + + #endif // TTMKFDIRUTIL_H__ +*** ttmkfdir-3.0.9/builtin.cpp.ORIG 2004-03-10 13:41:47.089701760 -0700 +--- ttmkfdir-3.0.9/builtin.cpp 2004-03-10 13:41:51.327057584 -0700 +*************** namespace { +*** 600,606 **** + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff + }; + +! }; + + Encoding::BuiltinEncoding_t Encoding::builtin_encodings[] = { + {256,191,32,{TT_PLATFORM_MICROSOFT,TT_MS_ID_UNICODE_CS,iso8859_1},{"iso8859-1",}}, +--- 600,606 ---- + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff + }; + +! } + + Encoding::BuiltinEncoding_t Encoding::builtin_encodings[] = { + {256,191,32,{TT_PLATFORM_MICROSOFT,TT_MS_ID_UNICODE_CS,iso8859_1},{"iso8859-1",}}, + diff --git a/system/ttmkfdir/patches/ttmkfdir-3.0.9-segfaults.patch b/system/ttmkfdir/patches/ttmkfdir-3.0.9-segfaults.patch new file mode 100644 index 0000000000..17a8dec550 --- /dev/null +++ b/system/ttmkfdir/patches/ttmkfdir-3.0.9-segfaults.patch @@ -0,0 +1,20 @@ +--- ttmkfdir-3.0.9/directory.cpp.back 2005-10-08 14:25:37.839328408 +0800 ++++ ttmkfdir-3.0.9/directory.cpp 2005-10-08 14:26:00.021956136 +0800 +@@ -1,5 +1,6 @@ + #include <cctype> + #include <dirent.h> ++#include <stdio.h> + #include <sys/stat.h> + #include <unistd.h> + +@@ -13,6 +14,10 @@ + directory::scan (const std::string &dir) + { + DIR *ttfdir = opendir(dir.c_str ()); ++ if (!ttfdir) { ++ printf("%s is not exist!\n", dir.c_str ()); ++ exit(-1); ++ } + + this->clear (); + dirpath = dir; diff --git a/system/ttmkfdir/patches/ttmkfdir-3.0.9-warnings.patch b/system/ttmkfdir/patches/ttmkfdir-3.0.9-warnings.patch new file mode 100644 index 0000000000..26334bb432 --- /dev/null +++ b/system/ttmkfdir/patches/ttmkfdir-3.0.9-warnings.patch @@ -0,0 +1,75 @@ +--- ttmkfdir-3.0.9/encoding.l~ 2005-08-03 19:33:07.000000000 +0900 ++++ ttmkfdir-3.0.9/encoding.l 2005-08-03 21:52:15.000000000 +0900 +@@ -115,7 +115,7 @@ + } + + /* avoid a crash issue */ +- if (cur_enc->size < i2) ++ if ((int) (cur_enc->size) < i2) + cur_enc->size = i2; + if (!is_created_map) + create_mapping(); +@@ -127,8 +127,8 @@ + } + + <INSIDE_MAP_BLOCK>{NUMBER}({WHITESPACES}{NUMBER}){0,2} { +- unsigned int start_range; +- int numbers[3], i = 0, end_range, target, res; ++ unsigned int start_range = 0, i = 0, end_range = 0; ++ int numbers[3], target = 0, res; + char *startptr; + char *endptr = yytext; + +--- ttmkfdir-3.0.9/commandline.cpp~ 2002-12-09 17:29:11.000000000 +0900 ++++ ttmkfdir-3.0.9/commandline.cpp 2005-08-03 21:12:40.000000000 +0900 +@@ -1,6 +1,8 @@ + #include <cstdlib> + ++#ifndef _GNU_SOURCE + #define _GNU_SOURCE ++#endif + #include <getopt.h> + + #include "commandline.h" +--- ttmkfdir-3.0.9/ttmkfdir.cpp~ 2003-01-20 08:33:11.000000000 +0900 ++++ ttmkfdir-3.0.9/ttmkfdir.cpp 2005-08-03 21:08:43.000000000 +0900 +@@ -76,7 +76,7 @@ + return 1; + } + +- fprintf (output, "%d\n", fontdir.size ()); ++ fprintf (output, "%d\n", (int)(fontdir.size ())); + + for (vector<string>::const_iterator i = fontdir.begin (); i != fontdir.end (); i++) { + fprintf (output, "%s\n", i->c_str ()); +--- ttmkfdir-3.0.9/ttf.cpp~ 2005-08-03 19:33:07.000000000 +0900 ++++ ttmkfdir-3.0.9/ttf.cpp 2005-08-03 21:31:48.000000000 +0900 +@@ -533,7 +533,7 @@ + const char * + Face::Weight (void) const + { +- const char *result; ++ const char *result = NULL; + + if (cmdline::instance()->option ("panose") && ((result = PanoseWeight ()) != 0)) { + return result; +@@ -614,7 +614,7 @@ + const char * + Face::Width (void) const + { +- const char *result; ++ const char *result = NULL; + + if (cmdline::instance()->option ("panose") && ((result = PanoseWidth ()) != 0)) { + return result; +--- ttmkfdir-3.0.9/encoding.cpp~ 2005-08-03 19:33:07.000000000 +0900 ++++ ttmkfdir-3.0.9/encoding.cpp 2005-08-03 21:31:44.000000000 +0900 +@@ -121,7 +121,7 @@ + + NumericMapping *m = new NumericMapping (size, b->mapdata.platform, b->mapdata.encoding); + +- for (int i = 0; i < size; i++) ++ for (unsigned int i = 0; i < size; i++) + (*m)[i] = b->mapdata.mappingtable[i]; + + AddMapping (m); 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 |