---
name: "Keylist"
section: "3"
platform: "macos"
package: "tcl"
version: "152"
release: "macOS 26.5"
platforms: ["macos"]
url: "https://new.carta.tech/Keylist"
---

# Keylist(3)

Keyed list management routines.

## NAME

TclX\_NewKeyedListObj, TclX\_KeyedListGet, TclX\_KeyedListSet, TclX\_KeyedListDelete, TclX\_KeyedListGetKeys - Keyed list management routines.

## SYNOPSIS

```
#include <tclExtend.h>
Tcl_Obj *
TclX_NewKeyedListObj (void);
int
TclX_KeyedListGet (Tcl_Interp *interp,
                   Tcl_Obj    *keylPtr,
                   char       *key,
                   Tcl_Obj   **valuePtrPtr);
int
TclX_KeyedListSet (Tcl_Interp *interp,
                   Tcl_Obj    *keylPtr,
                   char       *key,
                   Tcl_Obj    *valuePtr);
int
TclX_KeyedListDelete (Tcl_Interp *interp,
                      Tcl_Obj    *keylPtr,
                      char       *key);
int
TclX_KeyedListGetKeys (Tcl_Interp *interp,
                       Tcl_Obj    *keylPtr,
                       char       *key,
                       Tcl_Obj   **listObjPtrPtr);
```

## DESCRIPTION

These routines perform operations on keyed lists.  See the *Extended Tcl*  man page for a description of keyed lists.

### TclX\_NewKeyedListObj

Create and initialize a new keyed list object.

Returns:

A pointer to the object.

### TclX\_KeyedListGet

  Retrieve a key value from a keyed list.

Parameters:

**o** *interp* - Error message will be return in result if there is an error.\
 **o** *keylPtr* - Keyed list object to get key from.\
 **o** *key* - The name of the key to extract.  Will recusively process sub-keys seperated by \`.'.\
 **o** *valueObjPtrPtr* - If the key is found, a pointer to the key object\
     is returned here.  NULL is returned if the key is not present.\

Returns:

**o TCL\_OK** - If the key value was returned.\
 **o TCL\_BREAK** - If the key was not found.\
 **o TCL\_ERROR** - If an error occured.\

### TclX\_KeyedListSet

  Set a key value in keyed list object.

Parameters:

**o** *interp* - Error message will be return in result object.\
 **o** *keylPtr* - Keyed list object to update.\
 **o** *key* - The name of the key to extract.  Will recusively process sub-key seperated by \`.'.\
 **o** *valueObjPtr* - The value to set for the key.\

Returns:

  TCL\_OK or TCL\_ERROR.

### TclX\_KeyedListDelete

  Delete a key value from keyed list.

Parameters:

**o** *interp* - Error message will be return in result if there is an error.\
 **o** *keylPtr* - Keyed list object to update.\
 **o** *key* - The name of the key to extract.  Will recusively process sub-key seperated by \`.'.\

Returns:

**o TCL\_OK** - If the key was deleted.\
 **o TCL\_BREAK** - If the key was not found.\
 **o TCL\_ERROR** - If an error occured.\

### TclX\_KeyedListGetKeys

  Retrieve a list of keyed list keys.

Parameters:

**o** *interp* - Error message will be return in result if there is an error.\
 **o** *keylPtr* - Keyed list object to get key from.\
 **o** *key* - The name of the key to get the sub keys for.  NULL or empty to retrieve all top level keys.\
 **o** *listObjPtrPtr* - List object is returned here with key as values.

Returns:

**o TCL\_OK** - If the zero or more key where returned.\
 **o TCL\_BREAK** - If the key was not found.\
 **o TCL\_ERROR** - If an error occured.\
