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

# XmRenderTableAddRenditions(3)

Creates a new render table

## NAME

**XmRenderTableAddRenditions** — Creates a new render table

## SYNOPSIS

```
#include <Xm/Xm.h>
XmRenderTable XmRenderTableAddRenditions(
XmRenderTable oldtable,
XmRendition *renditions,
Cardinal rendition_count,
XmMergeMode merge_mode);
```

## DESCRIPTION

**XmRenderTableAddRenditions** is a function to create a new render table that includes the renditions listed in *oldtable*, if there is one. This function also copies specified renditions (*renditions*) to the new render table. The first *rendition\_count* renditions of the *renditions* array are added to the new table. If a rendition is tagged with a tag that matches a tag already in *oldtable*, then the existing rendition using that tag is either modified or freed and replaced with the new rendition, depending on the value of *merge\_mode*. If *oldtable* is NULL, **XmRenderTableAddRenditions** creates a new render table containing only the specified renditions.

This function deallocates the original render table after extracting the required information. It is the responsibility of the caller to free the renditions of the *renditions* array by calling the **XmRenditionFree** function.

- *oldtable*

  Specifies the render table to be added to.

- *renditions*

  Specifies an array of renditions to be added.

- *rendition\_count*

  Specifies the number of renditions from *renditions* to be added.

- *merge\_mode*

  Specifies what to do if the **XmNtag** of a rendition matches that of one that already exists in *oldtable*. The possible values are as follows:

  - **XmMERGE\_REPLACE**

    Completely replaces the old rendition with the new one.

  - **XmMERGE\_OLD**

    Replaces any unspecified values of the old rendition with the corresponding values from the new rendition.

  - **XmMERGE\_NEW**

    Replaces the old rendition with the new rendition, replacing any unspecified values of the new rendition with the corresponding values from the old rendition.

  - **XmSKIP**

    Skips over the new rendition, leaving the old rendition intact.

## RETURN

If *renditions* is NULL or *rendition\_count* is 0 (zero), this function returns *oldtable*. Otherwise, the function returns a new **XmRenderTable**. The function allocates space to hold this new render table. The application is responsible for managing this allocated space. The application can recover the allocated space by calling **XmRenderTableFree**.

## RELATED

[**XmRendition**(3)](/XmRendition/3.md) and [**XmRenderTableFree**(3)](/XmRenderTableFree/3.md).
