---
name: "XmString"
section: "3"
platform: "linux"
package: "openmotif"
version: "2.3.8-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/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)](/XmParseMapping/3.md), [**XmParseMappingCreate**(3)](/XmParseMappingCreate/3.md), [**XmParseMappingFree**(3)](/XmParseMappingFree/3.md), [**XmParseMappingGetValues**(3)](/XmParseMappingGetValues/3.md), [**XmParseMappingSetValues**(3)](/XmParseMappingSetValues/3.md), [**XmParseTable**(3)](/XmParseTable/3.md), [**XmParseTableFree**(3)](/XmParseTableFree/3.md), [**XmStringBaseline**(3)](/XmStringBaseline/3.md), [**XmStringByteCompare**(3)](/XmStringByteCompare/3.md), [**XmStringByteStreamLength**(3)](/XmStringByteStreamLength/3.md), [**XmStringCompare**(3)](/XmStringCompare/3.md), [**XmStringComponentCreate**(3)](/XmStringComponentCreate/3.md), [**XmStringComponentType**(3)](/XmStringComponentType/3.md), [**XmStringConcat**(3)](/XmStringConcat/3.md), [**XmStringConcatAndFree**(3)](/XmStringConcatAndFree/3.md), [**XmStringCopy**(3)](/XmStringCopy/3.md), [**XmStringCreate**(3)](/XmStringCreate/3.md), [**XmStringCreateLocalized**(3)](/XmStringCreateLocalized/3.md), [**XmStringCreateLtoR**(3)](/XmStringCreateLtoR/3.md), [**XmStringCreateSimple**(3)](/XmStringCreateSimple/3.md), [**XmStringDirection**(3)](/XmStringDirection/3.md), [**XmStringDirectionCreate**(3)](/XmStringDirectionCreate/3.md), [**XmStringDirectionToDirection**(3)](/XmStringDirectionToDirection/3.md), [**XmStringDraw**(3)](/XmStringDraw/3.md), [**XmStringDrawImage**(3)](/XmStringDrawImage/3.md), [**XmStringDrawUnderline**(3)](/XmStringDrawUnderline/3.md), [**XmStringEmpty**(3)](/XmStringEmpty/3.md), [**XmStringExtent**(3)](/XmStringExtent/3.md), [**XmStringFree**(3)](/XmStringFree/3.md), [**XmStringFreeContext**(3)](/XmStringFreeContext/3.md), [**XmStringGenerate**(3)](/XmStringGenerate/3.md), [**XmStringGetLtoR**(3)](/XmStringGetLtoR/3.md), [**XmStringGetNextComponent**(3)](/XmStringGetNextComponent/3.md), [**XmStringGetNextSegment**(3)](/XmStringGetNextSegment/3.md), [**XmStringGetNextTriple**(3)](/XmStringGetNextTriple/3.md), [**XmStringHasSubstring**(3)](/XmStringHasSubstring/3.md), [**XmStringHeight**(3)](/XmStringHeight/3.md), [**XmStringInitContext**(3)](/XmStringInitContext/3.md), [**XmStringIsVoid**(3)](/XmStringIsVoid/3.md), [**XmStringLength**(3)](/XmStringLength/3.md), [**XmStringLineCount**(3)](/XmStringLineCount/3.md), [**XmStringNConcat**(3)](/XmStringNConcat/3.md), [**XmStringNCopy**(3)](/XmStringNCopy/3.md), [**XmStringParseText**(3)](/XmStringParseText/3.md), [**XmStringPeekNextComponent**(3)](/XmStringPeekNextComponent/3.md), [**XmStringPeekNextTriple**(3)](/XmStringPeekNextTriple/3.md), [**XmStringPutRendition**(3)](/XmStringPutRendition/3.md), [**XmStringSegmentCreate**(3)](/XmStringSegmentCreate/3.md), [**XmStringSeparatorCreate**(3)](/XmStringSeparatorCreate/3.md), [**XmStringTable**(3)](/XmStringTable/3.md), [**XmStringTableParseStringArray**(3)](/XmStringTableParseStringArray/3.md), [**XmStringTableProposeTablist**(3)](/XmStringTableProposeTablist/3.md), [**XmStringTableToXmString**(3)](/XmStringTableToXmString/3.md), [**XmStringTableUnparse**(3)](/XmStringTableUnparse/3.md), [**XmStringToXmStringTable**(3)](/XmStringToXmStringTable/3.md), [**XmStringUnparse**(3)](/XmStringUnparse/3.md), [**XmStringWidth**(3)](/XmStringWidth/3.md), [**XmCvtXmStringToByteStream**(3)](/XmCvtXmStringToByteStream/3.md), [**XmCvtXmStringToCT**(3)](/XmCvtXmStringToCT/3.md), [**XmCvtCTToXmString**(3)](/XmCvtCTToXmString/3.md), and [**XmCvtByteStreamToXmString**(3)](/XmCvtByteStreamToXmString/3.md).
