summaryrefslogtreecommitdiff
path: root/x11-fonts/ttmkfdir/files/patch-ttf.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'x11-fonts/ttmkfdir/files/patch-ttf.cpp')
-rw-r--r--x11-fonts/ttmkfdir/files/patch-ttf.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/x11-fonts/ttmkfdir/files/patch-ttf.cpp b/x11-fonts/ttmkfdir/files/patch-ttf.cpp
new file mode 100644
index 000000000000..8b3fd50c64cc
--- /dev/null
+++ b/x11-fonts/ttmkfdir/files/patch-ttf.cpp
@@ -0,0 +1,46 @@
+--- ttf.cpp.orig Wed Jul 19 11:13:20 2006
++++ ttf.cpp Wed Jul 19 11:22:41 2006
+@@ -51,20 +51,27 @@
+ bool
+ Face::MappingPresent (int cmapidx, NumericMapping *m, int enc_size, int start_code, bool enc_comp)
+ {
+- int idx, missing = 0;
++ int idx;
++ unsigned int missing = 0, bail_at, msize;
++
+ FT_Set_Charmap (face, face->charmaps[cmapidx]);
+
+- for (unsigned int i = start_code; i < m->size (); i++) {
++ msize = m->size();
++ if (enc_size <= 256) {
++ bail_at = int (cmdline::instance()->option ("max-missing"));
++ } else {
++ bail_at = ((int (cmdline::instance()->option ("max-missing-percentage"))
++& enc_comp)*enc_size)/100;
++ }
++
++ for (unsigned int i = start_code; i < msize && missing < bail_at; i++) {
+ if ((*m)[i] < 0)
+ continue;
+ if ((idx = FT_Get_Char_Index (face, (*m)[i])) == 0)
+ missing++;
+ }
+- if (enc_size <= 256) {
+- return (missing <= int (cmdline::instance()->option ("max-missing")));
+- } else {
+- return ((100 * missing/enc_size) <= int (cmdline::instance()->option ("max-missing-percentage")) & enc_comp);
+- }
++
++ return missing < bail_at;
+ }
+
+ Face::Face (const std::string &filename)
+@@ -239,7 +246,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;