FcCharSetCreate

3 Fontconfig &version;

FcCharSetCreate

Create an empty character set

    #include <fontconfig/fontconfig.h>

    	    FcCharSet * FcCharSetCreate
    		void

## Description

`FcCharSetCreate` allocates and initializes a new empty character set object.

FcCharSetDestroy

3 Fontconfig &version;

FcCharSetDestroy

Destroy a character set

    #include <fontconfig/fontconfig.h>

    	    void FcCharSetDestroy
    		FcCharSet *fcs

## Description

`FcCharSetDestroy` decrements the reference count `fcs`. If the reference count becomes zero, all memory referenced is freed.

FcCharSetAddChar

3 Fontconfig &version;

FcCharSetAddChar

Add a character to a charset

    #include <fontconfig/fontconfig.h>

    	    FcBool FcCharSetAddChar
    		FcCharSet *fcs
    		FcChar32 ucs4

## Description

`FcCharSetAddChar` adds a single Unicode char to the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory.

FcCharSetDelChar

3 Fontconfig &version;

FcCharSetDelChar

Add a character to a charset

    #include <fontconfig/fontconfig.h>

    	    FcBool FcCharSetDelChar
    		FcCharSet *fcs
    		FcChar32 ucs4

## Description

`FcCharSetDelChar` deletes a single Unicode char from the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory.

## Since

version 2.9.0

FcCharSetCopy

3 Fontconfig &version;

FcCharSetCopy

Copy a charset

    #include <fontconfig/fontconfig.h>

    	    FcCharSet * FcCharSetCopy
    		FcCharSet *src

## Description

Makes a copy of `src`; note that this may not actually do anything more than increment the reference count on `src`.

FcCharSetEqual

3 Fontconfig &version;

FcCharSetEqual

Compare two charsets

    #include <fontconfig/fontconfig.h>

    	    FcBool FcCharSetEqual
    		const FcCharSet *a
    		const FcCharSet *b

## Description

Returns whether `a` and `b` contain the same set of Unicode chars.

FcCharSetIntersect

3 Fontconfig &version;

FcCharSetIntersect

Intersect charsets

    #include <fontconfig/fontconfig.h>

    	    FcCharSet * FcCharSetIntersect
    		const FcCharSet *a
    		const FcCharSet *b

## Description

Returns a set including only those chars found in both `a` and `b`.

FcCharSetUnion

3 Fontconfig &version;

FcCharSetUnion

Add charsets

    #include <fontconfig/fontconfig.h>

    	    FcCharSet * FcCharSetUnion
    		const FcCharSet *a
    		const FcCharSet *b

## Description

Returns a set including only those chars found in either `a` or `b`.

FcCharSetSubtract

3 Fontconfig &version;

FcCharSetSubtract

Subtract charsets

    #include <fontconfig/fontconfig.h>

    	    FcCharSet * FcCharSetSubtract
    		const FcCharSet *a
    		const FcCharSet *b

## Description

Returns a set including only those chars found in `a` but not `b`.

FcCharSetMerge

3 Fontconfig &version;

FcCharSetMerge

Merge charsets

    #include <fontconfig/fontconfig.h>

    	    FcBool FcCharSetMerge
    		FcCharSet *a
    		const FcCharSet *b
    		FcBool *changed

## Description

Adds all chars in `b` to `a`. In other words, this is an in-place version of FcCharSetUnion. If `changed` is not NULL, then it returns whether any new chars from `b` were added to `a`. Returns FcFalse on failure, either when `a` is a constant set or from running out of memory.

FcCharSetHasChar

3 Fontconfig &version;

FcCharSetHasChar

Check a charset for a char

    #include <fontconfig/fontconfig.h>

    	    FcBool FcCharSetHasChar
    		const FcCharSet *fcs
    		FcChar32 ucs4

## Description

Returns whether `fcs` contains the char `ucs4`.

FcCharSetCount

3 Fontconfig &version;

FcCharSetCount

Count entries in a charset

    #include <fontconfig/fontconfig.h>

    	    FcChar32 FcCharSetCount
    		const FcCharSet *a

## Description

Returns the total number of Unicode chars in `a`.

FcCharSetIntersectCount

3 Fontconfig &version;

FcCharSetIntersectCount

Intersect and count charsets

    #include <fontconfig/fontconfig.h>

    	    FcChar32 FcCharSetIntersectCount
    		const FcCharSet *a
    		const FcCharSet *b

## Description

Returns the number of chars that are in both `a` and `b`.

FcCharSetSubtractCount

3 Fontconfig &version;

FcCharSetSubtractCount

Subtract and count charsets

    #include <fontconfig/fontconfig.h>

    	    FcChar32 FcCharSetSubtractCount
    		const FcCharSet *a
    		const FcCharSet *b

## Description

Returns the number of chars that are in `a` but not in `b`.

FcCharSetIsSubset

3 Fontconfig &version;

FcCharSetIsSubset

Test for charset inclusion

    #include <fontconfig/fontconfig.h>

    	    FcBool FcCharSetIsSubset
    		const FcCharSet *a
    		const FcCharSet *b

## Description

Returns whether `a` is a subset of `b`.

FcCharSetFirstPage

3 Fontconfig &version;

FcCharSetFirstPage

Start enumerating charset contents

    #include <fontconfig/fontconfig.h>

    	    FcChar32 FcCharSetFirstPage
    		const FcCharSet *a
    		FcChar32[FC_CHARSET_MAP_SIZE] map
    		FcChar32 *next

## Description

Builds an array of bits in `map` marking the first page of Unicode coverage of `a`. `*next` is set to contains the base code point for the next page in `a`. Returns the base code point for the page, or `FC_CHARSET_DONE` if `a` contains no pages. As an example, if `FcCharSetFirstPage` returns `0x300` and fills `map` with

    0xffffffff 0xffffffff 0x01000008 0x44300002 0xffffd7f0 0xfffffffb 0xffff7fff 0xffff0003

Then the page contains code points `0x300` through `0x33f` (the first 64 code points on the page) because `map[0]` and `map[1]` both have all their bits set. It also contains code points `0x343` (`0x300 + 32*2 + (4-1)`) and `0x35e` (`0x300 + 32*2 + (31-1)`) because `map[2]` has the 4th and 31st bits set. The code points represented by `map[3]` and later are left as an excercise for the reader ;).

FcCharSetNextPage

3 Fontconfig &version;

FcCharSetNextPage

Continue enumerating charset contents

    #include <fontconfig/fontconfig.h>

    	    FcChar32 FcCharSetNextPage
    		const FcCharSet *a
    		FcChar32[FC_CHARSET_MAP_SIZE] map
    		FcChar32 *next

## Description

Builds an array of bits in `map` marking the Unicode coverage of `a` for page containing `*next` (see the `FcCharSetFirstPage` description for details). `*next` is set to contains the base code point for the next page in `a`. Returns the base of code point for the page, or `FC_CHARSET_DONE` if `a` does not contain `*next`.

FcCharSetCoverage

3 Fontconfig &version;

FcCharSetCoverage

DEPRECATED return coverage for a Unicode page

    #include <fontconfig/fontconfig.h>

    	    FcChar32 FcCharSetCoverage
    		const FcCharSet *a
    		FcChar32page
    		FcChar32[8]result

## Description

DEPRECATED This function returns a bitmask in `result` which indicates which code points in `page` are included in `a`. `FcCharSetCoverage` returns the next page in the charset which has any coverage.

FcCharSetNew

3 Fontconfig &version;

FcCharSetNew

DEPRECATED alias for FcCharSetCreate

    #include <fontconfig/fontconfig.h>

    	    FcCharSet * FcCharSetNew
    		void

## Description

`FcCharSetNew` is a DEPRECATED alias for FcCharSetCreate.