### Function

# GLib unichar_decompose

since: 2.30

#### Declaration

    gboolean
    g_unichar_decompose (
      gunichar ch,
      gunichar* a,
      gunichar* b
    )

#### Description

Performs a single decomposition step of the Unicode canonical decomposition algorithm.

This function does not include compatibility decompositions. It does, however, include algorithmic Hangul Jamo decomposition, as well as ‘singleton’ decompositions which replace a character by a single other character. In the case of singletons *`b` will be set to zero.

If `ch` is not decomposable, `a` is set to `ch` and `b` is set to zero.

Note that the way Unicode decomposition pairs are defined, it is guaranteed that `b` would not decompose further, but `a` may itself decompose. To get the full canonical decomposition for `ch`, one would need to recursively call this function on `a`. Or use g_unichar_fully_decompose().

See UAX#15 for details.

Available since: 2.30

#### Parameters

`ch`

  Type: `gunichar`

  A Unicode character.

`a`

  Type: `gunichar*`

  Return location for the first component of `ch`.

  The argument will be set by the function.

`b`

  Type: `gunichar*`

  Return location for the second component of `ch`.

  The argument will be set by the function.

#### Return value

Type: `gboolean`

`TRUE` if the character could be decomposed.