Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:sschapiro:openstack:upstream
emacs
emacs-23.1-jis2004.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File emacs-23.1-jis2004.patch of Package emacs
--- emacs-23.1/src/ftfont.c.spacing 2009-06-26 16:24:06.000000000 +0200 +++ emacs-23.1/src/ftfont.c 2011-01-26 17:47:16.927918168 +0100 @@ -861,6 +862,21 @@ ftfont_spec_pattern (spec, otlayout, ots return pattern; } +static int cmp_jis2004(const void *a, const void *b) +{ + FcPattern *a_pat = *(FcPattern**)a; + FcPattern *b_pat = *(FcPattern**)b; + FcChar8 *a_family = NULL, *b_family = NULL; + int result = 0; + if (FcPatternGetString (a_pat, FC_FAMILY, 0, &a_family) == FcResultMatch && + strncmp(a_family, "IPA", 3)) + result--; + if (FcPatternGetString (b_pat, FC_FAMILY, 0, &b_family) == FcResultMatch && + strncmp(b_family, "IPA", 3)) + result++; + return result; +} + static Lisp_Object ftfont_list (frame, spec) Lisp_Object frame, spec; @@ -934,6 +950,15 @@ ftfont_list (frame, spec) fontset = FcFontList (NULL, pattern, objset); if (! fontset || fontset->nfont == 0) goto finish; + + /* Move JIS2004 fonts to the end of the list. */ + Lisp_Object registry = AREF (spec, FONT_REGISTRY_INDEX); + if (!NILP (registry)) + { + if (0 == strcmp((char *) SDATA (SYMBOL_NAME (registry)), "jisx0208*-*")) + qsort(fontset->fonts, fontset->nfont, sizeof(FcPattern*), cmp_jis2004); + } + #if 0 /* Need fix because this finds any fonts. */ if (fontset->nfont == 0 && ! NILP (family))
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor