### Function

# Pango.itemize

#### Declaration [src]

    GList*
    pango_itemize (
      PangoContext* context,
      const char* text,
      int start_index,
      int length,
      PangoAttrList* attrs,
      PangoAttrIterator* cached_iter
    )

#### Description [src]

Breaks a piece of text into segments with consistent directional level and font.

Each byte of `text` will be contained in exactly one of the items in the returned list; the generated list of items will be in logical order (the start offsets of the items are ascending).

`cached_iter` should be an iterator over `attrs` currently positioned at a range before or containing `start_index`; `cached_iter` will be advanced to the range covering the position just after `start_index` + `length`. (i.e. if itemizing in a loop, just keep passing in the same `cached_iter`).

#### Parameters

`context` | `PangoContext`
| a structure holding information that affects the itemization process.
| Ownership is not transferred to the callee
`text` | `const char*`
| the text to itemize. Must be valid UTF-8
| Ownership is not transferred to the callee
| The string is a NUL terminated UTF-8 string
`start_index` | `int`
| first byte in `text` to process
`length` | `int`
| the number of bytes (not characters) to process after `start_index`. This must be >= 0.
`attrs` | `PangoAttrList`
| the set of attributes that apply to `text`.
| Ownership is not transferred to the callee
`cached_iter` | `PangoAttrIterator`
| Cached attribute iterator, or `NULL`
| Can be `NULL`
| Ownership is not transferred to the callee

#### Return value

Returns: A list of `PangoItem`
a `GList` of `PangoItem` structures. The items should be freed using `pango_item_free()` probably in combination with `g_list_free_full()`.
Ownership of the data is transferred to the caller