---
name: "XSetICValues"
section: "3x"
platform: "linux"
package: "libx11-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/XSetICValues/3x"
---

# XSetICValues(3x)

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(3X11), XOpenIM(3X11), XSetICFocus(3X11), XmbResetIC(3X11)\
 *Xlib - C Language X Interface*
