#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
use libc::*;
pub type FcChar8 = c_uchar;
pub type FcChar16 = c_ushort;
pub type FcChar32 = c_uint;
pub type FcBool = c_int;
pub type enum__FcType = c_uint;
pub const FcTypeVoid: u32 = 0_u32;
pub const FcTypeInteger: u32 = 1_u32;
pub const FcTypeDouble: u32 = 2_u32;
pub const FcTypeString: u32 = 3_u32;
pub const FcTypeBool: u32 = 4_u32;
pub const FcTypeMatrix: u32 = 5_u32;
pub const FcTypeCharSet: u32 = 6_u32;
pub const FcTypeFTFace: u32 = 7_u32;
pub const FcTypeLangSet: u32 = 8_u32;
pub type FcType = enum__FcType;
pub const FC_WEIGHT_THIN: c_int = 0;
pub const FC_WEIGHT_EXTRALIGHT: c_int = 40;
pub const FC_WEIGHT_ULTRALIGHT: c_int = FC_WEIGHT_EXTRALIGHT;
pub const FC_WEIGHT_LIGHT: c_int = 50;
pub const FC_WEIGHT_BOOK: c_int = 75;
pub const FC_WEIGHT_REGULAR: c_int = 80;
pub const FC_WEIGHT_NORMAL: c_int = FC_WEIGHT_REGULAR;
pub const FC_WEIGHT_MEDIUM: c_int = 100;
pub const FC_WEIGHT_DEMIBOLD: c_int = 180;
pub const FC_WEIGHT_SEMIBOLD: c_int = FC_WEIGHT_DEMIBOLD;
pub const FC_WEIGHT_BOLD: c_int = 200;
pub const FC_WEIGHT_EXTRABOLD: c_int = 205;
pub const FC_WEIGHT_ULTRABOLD: c_int = FC_WEIGHT_EXTRABOLD;
pub const FC_WEIGHT_BLACK: c_int = 210;
pub const FC_WEIGHT_HEAVY: c_int = FC_WEIGHT_BLACK;
pub const FC_WEIGHT_EXTRABLACK: c_int = 215;
pub const FC_WEIGHT_ULTRABLACK: c_int = FC_WEIGHT_EXTRABLACK;
pub const FC_SLANT_ROMAN: c_int = 0;
pub const FC_SLANT_ITALIC: c_int = 100;
pub const FC_SLANT_OBLIQUE: c_int = 110;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct struct__FcMatrix {
pub xx: c_double,
pub xy: c_double,
pub yx: c_double,
pub yy: c_double,
}
pub type FcMatrix = struct__FcMatrix;
pub type struct__FcCharSet = c_void;
pub type FcCharSet = struct__FcCharSet;
#[repr(C)]
#[allow(missing_copy_implementations)]
pub struct struct__FcObjectType {
pub object: *mut c_char,
pub _type: FcType,
}
pub type FcObjectType = struct__FcObjectType;
#[repr(C)]
#[allow(missing_copy_implementations)]
pub struct struct__FcConstant {
pub name: *mut FcChar8,
pub object: *mut c_char,
pub value: c_int,
}
pub type FcConstant = struct__FcConstant;
pub type enum__FcResult = c_uint;
pub const FcResultMatch: u32 = 0_u32;
pub const FcResultNoMatch: u32 = 1_u32;
pub const FcResultTypeMismatch: u32 = 2_u32;
pub const FcResultNoId: u32 = 3_u32;
pub const FcResultOutOfMemory: u32 = 4_u32;
pub type FcResult = enum__FcResult;
pub type struct__FcPattern = c_void;
pub type FcPattern = struct__FcPattern;
pub type struct__FcLangSet = c_void;
pub type FcLangSet = struct__FcLangSet;
#[repr(C)]
#[allow(missing_copy_implementations)]
pub struct struct__FcValue {
pub _type: FcType,
pub u: union_unnamed1,
}
pub type FcValue = struct__FcValue;
#[repr(C)]
#[allow(missing_copy_implementations)]
pub struct struct__FcFontSet {
pub nfont: c_int,
pub sfont: c_int,
pub fonts: *mut *mut FcPattern,
}
pub type FcFontSet = struct__FcFontSet;
#[repr(C)]
#[allow(missing_copy_implementations)]
pub struct struct__FcObjectSet {
pub nobject: c_int,
pub sobject: c_int,
pub objects: *mut *mut c_char,
}
pub type FcObjectSet = struct__FcObjectSet;
pub type enum__FcMatchKind = c_uint;
pub const FcMatchPattern: u32 = 0_u32;
pub const FcMatchFont: u32 = 1_u32;
pub const FcMatchScan: u32 = 2_u32;
pub type FcMatchKind = enum__FcMatchKind;
pub type enum__FcLangResult = c_uint;
pub const FcLangEqual: u32 = 0_u32;
pub const FcLangDifferentCountry: u32 = 1_u32;
pub const FcLangDifferentTerritory: u32 = 1_u32;
pub const FcLangDifferentLang: u32 = 2_u32;
pub type FcLangResult = enum__FcLangResult;
pub type enum__FcSetName = c_uint;
pub const FcSetSystem: u32 = 0_u32;
pub const FcSetApplication: u32 = 1_u32;
pub type FcSetName = enum__FcSetName;
pub type struct__FcAtomic = c_void;
pub type FcAtomic = struct__FcAtomic;
pub type FcEndian = c_uint;
pub const FcEndianBig: u32 = 0_u32;
pub const FcEndianLittle: u32 = 1_u32;
pub type struct__FcConfig = c_void;
pub type FcConfig = struct__FcConfig;
pub type struct__FcGlobalCache = c_void;
pub type FcFileCache = struct__FcGlobalCache;
pub type struct__FcBlanks = c_void;
pub type FcBlanks = struct__FcBlanks;
pub type struct__FcStrList = c_void;
pub type FcStrList = struct__FcStrList;
pub type struct__FcStrSet = c_void;
pub type FcStrSet = struct__FcStrSet;
pub type struct__FcCache = c_void;
pub type FcCache = struct__FcCache;
pub type union_unnamed1 = c_void ;
extern {
pub fn FcBlanksCreate() -> *mut FcBlanks;
pub fn FcBlanksDestroy(b: *mut FcBlanks);
pub fn FcBlanksAdd(b: *mut FcBlanks, ucs4: FcChar32) -> FcBool;
pub fn FcBlanksIsMember(b: *mut FcBlanks, ucs4: FcChar32) -> FcBool;
pub fn FcCacheDir(c: *mut FcCache) -> *const FcChar8;
pub fn FcCacheCopySet(c: *const FcCache) -> *mut FcFontSet;
pub fn FcCacheSubdir(c: *const FcCache, i: c_int) -> *const FcChar8;
pub fn FcCacheNumSubdir(c: *const FcCache) -> c_int;
pub fn FcCacheNumFont(c: *const FcCache) -> c_int;
pub fn FcDirCacheUnlink(dir: *const FcChar8, config: *mut FcConfig) -> FcBool;
pub fn FcDirCacheValid(cache_file: *const FcChar8) -> FcBool;
pub fn FcConfigHome() -> *mut FcChar8;
pub fn FcConfigEnableHome(enable: FcBool) -> FcBool;
pub fn FcConfigFilename(url: *const FcChar8) -> *mut FcChar8;
pub fn FcConfigCreate() -> *mut FcConfig;
pub fn FcConfigReference(config: *mut FcConfig) -> *mut FcConfig;
pub fn FcConfigDestroy(config: *mut FcConfig);
pub fn FcConfigSetCurrent(config: *mut FcConfig) -> FcBool;
pub fn FcConfigGetCurrent() -> *mut FcConfig;
pub fn FcConfigUptoDate(config: *mut FcConfig) -> FcBool;
pub fn FcConfigBuildFonts(config: *mut FcConfig) -> FcBool;
pub fn FcConfigGetFontDirs(config: *mut FcConfig) -> *mut FcStrList;
pub fn FcConfigGetConfigDirs(config: *mut FcConfig) -> *mut FcStrList;
pub fn FcConfigGetConfigFiles(config: *mut FcConfig) -> *mut FcStrList;
pub fn FcConfigGetCache(config: *mut FcConfig) -> *mut FcChar8;
pub fn FcConfigGetBlanks(config: *mut FcConfig) -> *mut FcBlanks;
pub fn FcConfigGetCacheDirs(config: *const FcConfig) -> *mut FcStrList;
pub fn FcConfigGetRescanInterval(config: *mut FcConfig) -> c_int;
pub fn FcConfigSetRescanInterval(config: *mut FcConfig, rescanInterval: c_int) -> FcBool;
pub fn FcConfigGetFonts(config: *mut FcConfig, set: FcSetName) -> *mut FcFontSet;
pub fn FcConfigAppFontAddFile(config: *mut FcConfig, file: *const FcChar8) -> FcBool;
pub fn FcConfigAppFontAddDir(config: *mut FcConfig, dir: *const FcChar8) -> FcBool;
pub fn FcConfigAppFontClear(config: *mut FcConfig);
pub fn FcConfigSubstituteWithPat(config: *mut FcConfig, p: *mut FcPattern, p_pat: *mut FcPattern, kind: FcMatchKind) -> FcBool;
pub fn FcConfigSubstitute(config: *mut FcConfig, p: *mut FcPattern, kind: FcMatchKind) -> FcBool;
pub fn FcCharSetCreate() -> *mut FcCharSet;
pub fn FcCharSetNew() -> *mut FcCharSet;
pub fn FcCharSetDestroy(fcs: *mut FcCharSet);
pub fn FcCharSetAddChar(fcs: *mut FcCharSet, ucs4: FcChar32) -> FcBool;
pub fn FcCharSetCopy(src: *mut FcCharSet) -> *mut FcCharSet;
pub fn FcCharSetEqual(a: *const FcCharSet, b: *const FcCharSet) -> FcBool;
pub fn FcCharSetIntersect(a: *const FcCharSet, b: *const FcCharSet) -> *mut FcCharSet;
pub fn FcCharSetUnion(a: *const FcCharSet, b: *const FcCharSet) -> *mut FcCharSet;
pub fn FcCharSetSubtract(a: *const FcCharSet, b: *const FcCharSet) -> *mut FcCharSet;
pub fn FcCharSetMerge(a: *mut FcCharSet, b: *const FcCharSet, changed: *mut FcBool) -> FcBool;
pub fn FcCharSetHasChar(fcs: *const FcCharSet, ucs4: FcChar32) -> FcBool;
pub fn FcCharSetCount(a: *const FcCharSet) -> FcChar32;
pub fn FcCharSetIntersectCount(a: *const FcCharSet, b: *const FcCharSet) -> FcChar32;
pub fn FcCharSetSubtractCount(a: *const FcCharSet, b: *const FcCharSet) -> FcChar32;
pub fn FcCharSetIsSubset(a: *const FcCharSet, bi: *const FcCharSet) -> FcBool;
pub fn FcCharSetFirstPage(a: *const FcCharSet, map: *mut FcChar32, next: *mut FcChar32) -> FcChar32;
pub fn FcCharSetNextPage(a: *const FcCharSet, map: *mut FcChar32, next: *mut FcChar32) -> FcChar32;
pub fn FcCharSetCoverage(a: *const FcCharSet, page: FcChar32, result: *mut FcChar32) -> FcChar32;
pub fn FcValuePrint(v: FcValue);
pub fn FcPatternPrint(p: *const FcPattern);
pub fn FcFontSetPrint(s: *mut FcFontSet);
pub fn FcDefaultSubstitute(pattern: *mut FcPattern);
pub fn FcFileIsDir(file: *const FcChar8) -> FcBool;
pub fn FcFileScan(set: *mut FcFontSet, dirs: *mut FcStrSet, cache: *mut FcFileCache, blanks: *mut FcBlanks, file: *const FcChar8, force: FcBool) -> FcBool;
pub fn FcDirScan(set: *mut FcFontSet, dirs: *mut FcStrSet, cache: *mut FcFileCache, blanks: *mut FcBlanks, dir: *const FcChar8, force: FcBool) -> FcBool;
pub fn FcDirSave(set: *mut FcFontSet, dirs: *const FcStrSet, dir: *mut FcChar8) -> FcBool;
pub fn FcDirCacheLoad(dir: *const FcChar8, config: *mut FcConfig, cache_file: *mut *mut FcChar8) -> *mut FcCache;
pub fn FcDirCacheRead(dir: *const FcChar8, force: FcBool, config: *mut FcConfig) -> *mut FcCache;
pub fn FcDirCacheUnload(cache: *mut FcCache);
pub fn FcFreeTypeQuery(file: *const FcChar8, id: c_int, blanks: *mut FcBlanks, count: *mut c_int) -> *mut FcPattern;
pub fn FcFontSetCreate() -> *mut FcFontSet;
pub fn FcFontSetDestroy(s: *mut FcFontSet);
pub fn FcFontSetAdd(s: *mut FcFontSet, font: *mut FcPattern) -> FcBool;
pub fn FcInitLoadConfig() -> *mut FcConfig;
pub fn FcInitLoadConfigAndFonts() -> *mut FcConfig;
pub fn FcInit() -> FcBool;
pub fn FcFini();
pub fn FcGetVersion() -> c_int;
pub fn FcInitReinitialize() -> FcBool;
pub fn FcInitBringUptoDate() -> FcBool;
pub fn FcGetLangs() -> *mut FcStrSet;
pub fn FcLangGetCharSet(lang: *const FcChar8) -> *mut FcCharSet;
pub fn FcLangSetCreate() -> *mut FcLangSet;
pub fn FcLangSetDestroy(ls: *mut FcLangSet);
pub fn FcLangSetCopy(ls: *const FcLangSet) -> *mut FcLangSet;
pub fn FcLangSetAdd(ls: *mut FcLangSet, lang: *const FcChar8) -> FcBool;
pub fn FcLangSetHasLang(ls: *const FcLangSet, lang: *const FcChar8) -> FcLangResult;
pub fn FcLangSetCompare(lsa: *const FcLangSet, lsb: *const FcLangSet) -> FcLangResult;
pub fn FcLangSetContains(lsa: *const FcLangSet, lsb: *const FcLangSet) -> FcBool;
pub fn FcLangSetEqual(lsa: *const FcLangSet, lsb: *const FcLangSet) -> FcBool;
pub fn FcLangSetHash(ls: *const FcLangSet) -> FcChar32;
pub fn FcLangSetGetLangs(ls: *const FcLangSet) -> *mut FcStrSet;
pub fn FcObjectSetCreate() -> *mut FcObjectSet;
pub fn FcObjectSetAdd(os: *mut FcObjectSet, object: *const c_char) -> FcBool;
pub fn FcObjectSetDestroy(os: *mut FcObjectSet);
pub fn FcObjectSetBuild(first: *mut c_char, ...) -> *mut FcObjectSet;
pub fn FcFontSetList(config: *mut FcConfig, sets: *mut *mut FcFontSet, nsets: c_int, p: *mut FcPattern, os: *mut FcObjectSet) -> *mut FcFontSet;
pub fn FcFontList(config: *mut FcConfig, p: *mut FcPattern, os: *mut FcObjectSet) -> *mut FcFontSet;
pub fn FcAtomicCreate(file: *const FcChar8) -> *mut FcAtomic;
pub fn FcAtomicLock(atomic: *mut FcAtomic) -> FcBool;
pub fn FcAtomicNewFile(atomic: *mut FcAtomic) -> *mut FcChar8;
pub fn FcAtomicOrigFile(atomic: *mut FcAtomic) -> *mut FcChar8;
pub fn FcAtomicReplaceOrig(atomic: *mut FcAtomic) -> FcBool;
pub fn FcAtomicDeleteNew(atomic: *mut FcAtomic);
pub fn FcAtomicUnlock(atomic: *mut FcAtomic);
pub fn FcAtomicDestroy(atomic: *mut FcAtomic);
pub fn FcFontSetMatch(config: *mut FcConfig, sets: *mut *mut FcFontSet, nsets: c_int, p: *mut FcPattern, result: *mut FcResult) -> *mut FcPattern;
pub fn FcFontMatch(config: *mut FcConfig, p: *mut FcPattern, result: *mut FcResult) -> *mut FcPattern;
pub fn FcFontRenderPrepare(config: *mut FcConfig, pat: *mut FcPattern, font: *mut FcPattern) -> *mut FcPattern;
pub fn FcFontSetSort(config: *mut FcConfig, sets: *mut *mut FcFontSet, nsets: c_int, p: *mut FcPattern, trim: FcBool, csp: *mut *mut FcCharSet, result: *mut FcResult) -> *mut FcFontSet;
pub fn FcFontSort(config: *mut FcConfig, p: *mut FcPattern, trim: FcBool, csp: *mut *mut FcCharSet, result: *mut FcResult) -> *mut FcFontSet;
pub fn FcFontSetSortDestroy(fs: *mut FcFontSet);
pub fn FcMatrixCopy(mat: *const FcMatrix) -> *mut FcMatrix;
pub fn FcMatrixEqual(mat1: *const FcMatrix, mat2: *const FcMatrix) -> FcBool;
pub fn FcMatrixMultiply(result: *mut FcMatrix, a: *const FcMatrix, b: *const FcMatrix);
pub fn FcMatrixRotate(m: *mut FcMatrix, c: c_double, s: c_double);
pub fn FcMatrixScale(m: *mut FcMatrix, sx: c_double, sy: c_double);
pub fn FcMatrixShear(m: *mut FcMatrix, sh: c_double, sv: c_double);
pub fn FcNameRegisterObjectTypes(types: *const FcObjectType, ntype: c_int) -> FcBool;
pub fn FcNameUnregisterObjectTypes(types: *const FcObjectType, ntype: c_int) -> FcBool;
pub fn FcNameGetObjectType(object: *const c_char) -> *const FcObjectType;
pub fn FcNameRegisterConstants(consts: *const FcConstant, nconsts: c_int) -> FcBool;
pub fn FcNameUnregisterConstants(consts: *const FcConstant, nconsts: c_int) -> FcBool;
pub fn FcNameGetConstant(string: *mut FcChar8) -> *const FcConstant;
pub fn FcNameConstant(string: *mut FcChar8, result: *mut c_int) -> FcBool;
pub fn FcNameParse(name: *const FcChar8) -> *mut FcPattern;
pub fn FcNameUnparse(pat: *mut FcPattern) -> *mut FcChar8;
pub fn FcPatternCreate() -> *mut FcPattern;
pub fn FcPatternDuplicate(p: *const FcPattern) -> *mut FcPattern;
pub fn FcPatternReference(p: *mut FcPattern);
pub fn FcPatternFilter(p: *mut FcPattern, os: *const FcObjectSet) -> *mut FcPattern;
pub fn FcValueDestroy(v: FcValue);
pub fn FcValueEqual(va: FcValue, vb: FcValue) -> FcBool;
pub fn FcValueSave(v: FcValue) -> FcValue;
pub fn FcPatternDestroy(p: *mut FcPattern);
pub fn FcPatternEqual(pa: *const FcPattern, pb: *const FcPattern) -> FcBool;
pub fn FcPatternEqualSubset(pa: *const FcPattern, pb: *const FcPattern, os: *const FcObjectSet) -> FcBool;
pub fn FcPatternHash(p: *const FcPattern) -> FcChar32;
pub fn FcPatternAdd(p: *mut FcPattern, object: *const c_char, value: FcValue, append: FcBool) -> FcBool;
pub fn FcPatternAddWeak(p: *mut FcPattern, object: *const c_char, value: FcValue, append: FcBool) -> FcBool;
pub fn FcPatternGet(p: *mut FcPattern, object: *const c_char, id: c_int, v: *mut FcValue) -> FcResult;
pub fn FcPatternDel(p: *mut FcPattern, object: *const c_char) -> FcBool;
pub fn FcPatternRemove(p: *mut FcPattern, object: *const c_char, id: c_int) -> FcBool;
pub fn FcPatternAddInteger(p: *mut FcPattern, object: *const c_char, i: c_int) -> FcBool;
pub fn FcPatternAddDouble(p: *mut FcPattern, object: *const c_char, d: c_double) -> FcBool;
pub fn FcPatternAddString(p: *mut FcPattern, object: *const c_char, s: *const FcChar8) -> FcBool;
pub fn FcPatternAddMatrix(p: *mut FcPattern, object: *const c_char, s: *const FcMatrix) -> FcBool;
pub fn FcPatternAddCharSet(p: *mut FcPattern, object: *const c_char, c: *const FcCharSet) -> FcBool;
pub fn FcPatternAddBool(p: *mut FcPattern, object: *const c_char, b: FcBool) -> FcBool;
pub fn FcPatternAddLangSet(p: *mut FcPattern, object: *const c_char, ls: *const FcLangSet) -> FcBool;
pub fn FcPatternGetInteger(p: *mut FcPattern, object: *const c_char, n: c_int, i: *mut c_int) -> FcResult;
pub fn FcPatternGetDouble(p: *mut FcPattern, object: *const c_char, n: c_int, d: *mut c_double) -> FcResult;
pub fn FcPatternGetString(p: *mut FcPattern, object: *const c_char, n: c_int, s: *mut *mut FcChar8) -> FcResult;
pub fn FcPatternGetMatrix(p: *mut FcPattern, object: *const c_char, n: c_int, s: *mut *mut FcMatrix) -> FcResult;
pub fn FcPatternGetCharSet(p: *mut FcPattern, object: *const c_char, n: c_int, c: *mut *mut FcCharSet) -> FcResult;
pub fn FcPatternGetBool(p: *mut FcPattern, object: *const c_char, n: c_int, b: *mut FcBool) -> FcResult;
pub fn FcPatternGetLangSet(p: *mut FcPattern, object: *const c_char, n: c_int, ls: *mut *mut FcLangSet) -> FcResult;
pub fn FcPatternBuild(p: *mut FcPattern, ...) -> *mut FcPattern;
pub fn FcPatternFormat(pat: *mut FcPattern, format: *const FcChar8) -> *mut FcChar8;
pub fn FcStrCopy(s: *const FcChar8) -> *mut FcChar8;
pub fn FcStrCopyFilename(s: *const FcChar8) -> *mut FcChar8;
pub fn FcStrPlus(s1: *const FcChar8, s2: *const FcChar8) -> *mut FcChar8;
pub fn FcStrFree(s: *mut FcChar8);
pub fn FcStrDowncase(s: *const FcChar8) -> *mut FcChar8;
pub fn FcStrCmpIgnoreCase(s1: *const FcChar8, s2: *const FcChar8) -> c_int;
pub fn FcStrCmp(s1: *const FcChar8, s2: *const FcChar8) -> c_int;
pub fn FcStrStrIgnoreCase(s1: *const FcChar8, s2: *const FcChar8) -> *mut FcChar8;
pub fn FcStrStr(s1: *const FcChar8, s2: *const FcChar8) -> *mut FcChar8;
pub fn FcUtf8ToUcs4(src_orig: *mut FcChar8, dst: *mut FcChar32, len: c_int) -> c_int;
pub fn FcUtf8Len(string: *mut FcChar8, len: c_int, nchar: *mut c_int, wchar: *mut c_int) -> FcBool;
pub fn FcUcs4ToUtf8(ucs4: FcChar32, dest: *mut FcChar8) -> c_int;
pub fn FcUtf16ToUcs4(src_orig: *mut FcChar8, endian: FcEndian, dst: *mut FcChar32, len: c_int) -> c_int;
pub fn FcUtf16Len(string: *mut FcChar8, endian: FcEndian, len: c_int, nchar: *mut c_int, wchar: *mut c_int) -> FcBool;
pub fn FcStrDirname(file: *const FcChar8) -> *mut FcChar8;
pub fn FcStrBasename(file: *const FcChar8) -> *mut FcChar8;
pub fn FcStrSetCreate() -> *mut FcStrSet;
pub fn FcStrSetMember(set: *mut FcStrSet, s: *const FcChar8) -> FcBool;
pub fn FcStrSetEqual(sa: *mut FcStrSet, sb: *mut FcStrSet) -> FcBool;
pub fn FcStrSetAdd(set: *mut FcStrSet, s: *const FcChar8) -> FcBool;
pub fn FcStrSetAddFilename(set: *mut FcStrSet, s: *const FcChar8) -> FcBool;
pub fn FcStrSetDel(set: *mut FcStrSet, s: *const FcChar8) -> FcBool;
pub fn FcStrSetDestroy(set: *mut FcStrSet);
pub fn FcStrListCreate(set: *mut FcStrSet) -> *mut FcStrList;
pub fn FcStrListNext(list: *mut FcStrList) -> *mut FcChar8;
pub fn FcStrListDone(list: *mut FcStrList);
pub fn FcConfigParseAndLoad(config: *mut FcConfig, file: *const FcChar8, complain: FcBool) -> FcBool;
}