---
name: "XSetICValues"
section: "3"
platform: "linux"
package: "libx11"
version: "1.8.14-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XSetICValues"
---

# XSetICValues(3)

set and obtain XIC values

## NAME

XSetICValues, XGetICValues - set and obtain XIC values

## SYNTAX

char \* XSetICValues(XIC *ic*, ...);

char \* XGetICValues(XIC *ic*, ...);

## ARGUMENTS

- *ic*

  Specifies the input context.

- ...

  Specifies the variable length argument list to set or get XIC values.

## DESCRIPTION

The **XSetICValues** function returns NULL if no error occurred; otherwise, it returns the name of the first argument that could not be set. An argument might not be set for any of the following reasons:

- •

  The argument is read-only (for example, **XNFilterEvents**).

- •

  The argument name is not recognized.

- •

  An implementation-dependent error occurs.

Each value to be set must be an appropriate datum, matching the data type imposed by the semantics of the argument.

The **XSetICValues** can generate **BadAtom**, **BadColor**, **BadCursor**, **BadPixmap**, and **BadWindow** errors.

The **XGetICValues** function returns NULL if no error occurred; otherwise, it returns the name of the first argument that could not be obtained. An argument could not be obtained for any of the following reasons:

- •

  The argument name is not recognized.

- •

  The input method encountered an implementation-dependent error.

Each IC attribute value argument (following a name) must point to a location where the IC value is to be stored. That is, if the IC value is of type T, the argument must be of type T\*. If T itself is a pointer type, then **XGetICValues** allocates memory to store the actual data, and the client is responsible for freeing this data by calling **XFree** with the returned pointer. The exception to this rule is for an IC value of type **XNVaNestedList** (for preedit and status attributes). In this case,  the argument must also be of type **XVaNestedList**. Then, the rule of changing type T to T\* and freeing the allocated data applies to each element of the nested list.

## DIAGNOSTICS

- **BadAtom**

  A value for an Atom argument does not name a defined Atom.

- **BadColor**

  A value for a Colormap argument does not name a defined Colormap.

- **BadCursor**

  A value for a Cursor argument does not name a defined Cursor.

- **BadPixmap**

  A value for a Pixmap argument does not name a defined Pixmap.

- **BadWindow**

  A value for a Window argument does not name a defined Window.

## SEE ALSO

[**XCreateIC**(3)](/XCreateIC/3.md), [**XOpenIM**(3)](/XOpenIM/3.md), [**XSetICFocus**(3)](/XSetICFocus/3.md), [**XmbResetIC**(3)](/XmbResetIC/3.md)\
 *Xlib - C Language X Interface*
