---
name: "termkey_interpret_modereport"
section: "3"
platform: "linux"
package: "libtermkey-dev"
version: "0.22-2+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/termkey_interpret_modereport"
---

# termkey\_interpret\_modereport(3)

interpret opaque mode report data

## NAME

termkey\_interpret\_modereport - interpret opaque mode report data

## SYNOPSIS

```
#include <termkey.h>

TermKeyResult termkey_interpret_modereport(TermKey *tk, const TermKeyKey *key,
    int *initial, int *mode, int *value);
```

Link with *-ltermkey*.

## DESCRIPTION

**termkey\_interpret\_modereport**() fills in variables in the passed pointers according to the mode report event found in *key*. It should be called if [**termkey\_getkey**(3)](/termkey_getkey/3.md) or similar have returned a key event with the type of **TERMKEY\_TYPE\_MODEREPORT**.

Any pointer may instead be given as **NULL** to not return that value.

The *initial* variable will be filled with 0 for an ANSI mode report, or `'?'` for a DEC mode report. The *mode* variable will be filled with the number of the mode, and *value* will be filled with the value from the report.

## RETURN VALUE

If passed a *key* event of the type **TERMKEY\_TYPE\_MODEREPORT**, this function will return **TERMKEY\_RES\_KEY** and will affect the variables whose pointers were passed in, as described above.

For other event types it will return **TERMKEY\_RES\_NONE**, and its effects on any variables whose pointers were passed in, are undefined.

## SEE ALSO

[**termkey\_waitkey**(3)](/termkey_waitkey/3.md), [**termkey\_getkey**(3)](/termkey_getkey/3.md), [**termkey**(7)](/termkey/7.md)
