summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2008-08-29 07:56:10 +0000
committerKenichi Handa <handa@m17n.org>2008-08-29 07:56:10 +0000
commit89a95b7cf73592fb79175cc0d29dcba54ef4c453 (patch)
treebad195b8d0acc5357d5743efc5fc3dd196bf56f6
parent9d9f3e1504a6238ac01da00e57a08ac6361ff878 (diff)
downloademacs-89a95b7cf73592fb79175cc0d29dcba54ef4c453.tar.gz
Include composite.h.
(ftfont_resolve_generic_family): Add langset "en" to pattern. (ftfont_shape_by_flt): Use LGSTRING_GLYPH_LEN, not LGSTRING_LENGTH.
-rw-r--r--src/ftfont.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/ftfont.c b/src/ftfont.c
index 73d7ae48f5e..0b4b733dbf9 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -32,6 +32,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include "character.h"
#include "charset.h"
#include "coding.h"
+#include "composite.h"
#include "fontset.h"
#include "font.h"
#include "ftfont.h"
@@ -207,6 +208,7 @@ ftfont_resolve_generic_family (family, pattern)
Lisp_Object slot;
FcPattern *match;
FcResult result;
+ FcLangSet *langset;
family = Fintern (Fdowncase (SYMBOL_NAME (family)), Qnil);
if (EQ (family, Qmono))
@@ -224,6 +226,14 @@ ftfont_resolve_generic_family (family, pattern)
FcPatternDel (pattern, FC_FOUNDRY);
FcPatternDel (pattern, FC_FAMILY);
FcPatternAddString (pattern, FC_FAMILY, SYMBOL_FcChar8 (family));
+ if (FcPatternGetLangSet (pattern, FC_LANG, 0, &langset) != FcResultMatch)
+ {
+ /* This is to avoid the effect of locale. */
+ langset = FcLangSetCreate ();
+ FcLangSetAdd (langset, "en");
+ FcPatternAddLangSet (pattern, FC_LANG, langset);
+ FcLangSetDestroy (langset);
+ }
FcConfigSubstitute (NULL, pattern, FcMatchPattern);
FcDefaultSubstitute (pattern);
match = FcFontMatch (NULL, pattern, &result);
@@ -1769,7 +1779,7 @@ ftfont_shape_by_flt (lgstring, font, ft_face, otf)
FT_Face ft_face;
OTF *otf;
{
- EMACS_UINT len = LGSTRING_LENGTH (lgstring);
+ EMACS_UINT len = LGSTRING_GLYPH_LEN (lgstring);
EMACS_UINT i;
struct MFLTFontFT flt_font_ft;
@@ -1829,7 +1839,7 @@ ftfont_shape_by_flt (lgstring, font, ft_face, otf)
gstring.glyphs = realloc (gstring.glyphs,
sizeof (MFLTGlyph) * gstring.allocated);
}
- if (gstring.used > LGSTRING_LENGTH (lgstring))
+ if (gstring.used > LGSTRING_GLYPH_LEN (lgstring))
return Qnil;
for (i = 0; i < gstring.used; i++)
{