---
name: "XmString"
section: "3"
platform: "linux"
package: "openmotif"
version: "2.3.8-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://carta.tech/man/XmString"
---

# XmString(3)

Data type for a compound string

## NAME

**XmString** — Data type for a compound string

## SYNOPSIS

```
#include <Xm/Xm.h>
```

## DESCRIPTION

**XmString** is the data type for a compound string. Compound strings consist of a sequence of components, including, but not limited to, the following:

- •

  **XmSTRING\_COMPONENT\_SEPARATOR**

- •

  **XmSTRING\_COMPONENT\_TAB**

- •

  **XmSTRING\_COMPONENT\_LAYOUT\_POP**

- •

  **XmSTRING\_COMPONENT\_DIRECTION**

- •

  **XmSTRING\_COMPONENT\_LAYOUT\_PUSH**

- •

  **XmSTRING\_COMPONENT\_CHARSET**

- •

  **XmSTRING\_COMPONENT\_FONTLIST\_ELEMENT\_TAG**

- •

  **XmSTRING\_COMPONENT\_LOCALE**

- •

  **XmSTRING\_COMPONENT\_LOCALE\_TEXT**

- •

  **XmSTRING\_COMPONENT\_TAG**

- •

  **XmSTRING\_COMPONENT\_TEXT**

- •

  **XmSTRING\_COMPONENT\_END**

- •

  **XmSTRING\_COMPONENT\_RENDITION\_BEGIN**

- •

  **XmSTRING\_COMPONENT\_RENDITION\_END**

- •

  **XmSTRING\_COMPONENT\_UNKNOWN**

- •

  **XmSTRING\_COMPONENT\_WIDECHAR\_TEXT**

and also a rendition tags table, text, and text component. When a compound string is displayed, the rendition tags and the direction are used to determine how to display the text.

Calling **XtGetValues** for a resource whose type is **XmString** yields a copy of the compound string resource value. The application is responsible for using **XmStringFree** to free the memory allocated for the copy.

Please see the **XmStringComponentType** reference page for more detail about compound string components, and for a description of the order in which the components should appear in a compound string. Refer to the **XmRenderTable** reference page for a description of the algorithm that associates the rendition tags used for displaying a compound string text component with a rendition in a render table.

## RELATED

[**XmParseMapping**(3)](/man/XmParseMapping/3.md), [**XmParseMappingCreate**(3)](/man/XmParseMappingCreate/3.md), [**XmParseMappingFree**(3)](/man/XmParseMappingFree/3.md), [**XmParseMappingGetValues**(3)](/man/XmParseMappingGetValues/3.md), [**XmParseMappingSetValues**(3)](/man/XmParseMappingSetValues/3.md), [**XmParseTable**(3)](/man/XmParseTable/3.md), [**XmParseTableFree**(3)](/man/XmParseTableFree/3.md), [**XmStringBaseline**(3)](/man/XmStringBaseline/3.md), [**XmStringByteCompare**(3)](/man/XmStringByteCompare/3.md), [**XmStringByteStreamLength**(3)](/man/XmStringByteStreamLength/3.md), [**XmStringCompare**(3)](/man/XmStringCompare/3.md), [**XmStringComponentCreate**(3)](/man/XmStringComponentCreate/3.md), [**XmStringComponentType**(3)](/man/XmStringComponentType/3.md), [**XmStringConcat**(3)](/man/XmStringConcat/3.md), [**XmStringConcatAndFree**(3)](/man/XmStringConcatAndFree/3.md), [**XmStringCopy**(3)](/man/XmStringCopy/3.md), [**XmStringCreate**(3)](/man/XmStringCreate/3.md), [**XmStringCreateLocalized**(3)](/man/XmStringCreateLocalized/3.md), [**XmStringCreateLtoR**(3)](/man/XmStringCreateLtoR/3.md), [**XmStringCreateSimple**(3)](/man/XmStringCreateSimple/3.md), [**XmStringDirection**(3)](/man/XmStringDirection/3.md), [**XmStringDirectionCreate**(3)](/man/XmStringDirectionCreate/3.md), [**XmStringDirectionToDirection**(3)](/man/XmStringDirectionToDirection/3.md), [**XmStringDraw**(3)](/man/XmStringDraw/3.md), [**XmStringDrawImage**(3)](/man/XmStringDrawImage/3.md), [**XmStringDrawUnderline**(3)](/man/XmStringDrawUnderline/3.md), [**XmStringEmpty**(3)](/man/XmStringEmpty/3.md), [**XmStringExtent**(3)](/man/XmStringExtent/3.md), [**XmStringFree**(3)](/man/XmStringFree/3.md), [**XmStringFreeContext**(3)](/man/XmStringFreeContext/3.md), [**XmStringGenerate**(3)](/man/XmStringGenerate/3.md), [**XmStringGetLtoR**(3)](/man/XmStringGetLtoR/3.md), [**XmStringGetNextComponent**(3)](/man/XmStringGetNextComponent/3.md), [**XmStringGetNextSegment**(3)](/man/XmStringGetNextSegment/3.md), [**XmStringGetNextTriple**(3)](/man/XmStringGetNextTriple/3.md), [**XmStringHasSubstring**(3)](/man/XmStringHasSubstring/3.md), [**XmStringHeight**(3)](/man/XmStringHeight/3.md), [**XmStringInitContext**(3)](/man/XmStringInitContext/3.md), [**XmStringIsVoid**(3)](/man/XmStringIsVoid/3.md), [**XmStringLength**(3)](/man/XmStringLength/3.md), [**XmStringLineCount**(3)](/man/XmStringLineCount/3.md), [**XmStringNConcat**(3)](/man/XmStringNConcat/3.md), [**XmStringNCopy**(3)](/man/XmStringNCopy/3.md), [**XmStringParseText**(3)](/man/XmStringParseText/3.md), [**XmStringPeekNextComponent**(3)](/man/XmStringPeekNextComponent/3.md), [**XmStringPeekNextTriple**(3)](/man/XmStringPeekNextTriple/3.md), [**XmStringPutRendition**(3)](/man/XmStringPutRendition/3.md), [**XmStringSegmentCreate**(3)](/man/XmStringSegmentCreate/3.md), [**XmStringSeparatorCreate**(3)](/man/XmStringSeparatorCreate/3.md), [**XmStringTable**(3)](/man/XmStringTable/3.md), [**XmStringTableParseStringArray**(3)](/man/XmStringTableParseStringArray/3.md), [**XmStringTableProposeTablist**(3)](/man/XmStringTableProposeTablist/3.md), [**XmStringTableToXmString**(3)](/man/XmStringTableToXmString/3.md), [**XmStringTableUnparse**(3)](/man/XmStringTableUnparse/3.md), [**XmStringToXmStringTable**(3)](/man/XmStringToXmStringTable/3.md), [**XmStringUnparse**(3)](/man/XmStringUnparse/3.md), [**XmStringWidth**(3)](/man/XmStringWidth/3.md), [**XmCvtXmStringToByteStream**(3)](/man/XmCvtXmStringToByteStream/3.md), [**XmCvtXmStringToCT**(3)](/man/XmCvtXmStringToCT/3.md), [**XmCvtCTToXmString**(3)](/man/XmCvtCTToXmString/3.md), and [**XmCvtByteStreamToXmString**(3)](/man/XmCvtByteStreamToXmString/3.md).
