diff options
Diffstat (limited to 'x11-fonts/ttmkfdir/files/patch-ttf.cpp')
-rw-r--r-- | x11-fonts/ttmkfdir/files/patch-ttf.cpp | 46 |
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; |