---
name: "ggiParseMode"
section: "3"
platform: "linux"
package: "libggi2-dev"
version: "1:2.2.2-5"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/ggiParseMode"
---

# ggiParseMode(3)

Parse and print formatted strings specifying modes

## NAME

**ggiParseMode**, **ggiPrintMode**, **ggiSPrintMode**, **ggiFPrintMode** - Parse and print formatted strings specifying modes

## SYNOPSIS

```
#include <ggi/ggi.h>
int ggiParseMode(const char *s, ggi_mode *m);
#define ggiPrintMode(m) ggiFPrintMode(stdout,(m))
int ggiSPrintMode(char *s, const ggi_mode *m);
int ggiFPrintMode(FILE *s, const ggi_mode *m);
```

## DESCRIPTION

**ggiParseMode** parses a string into a **[ggi\_mode(3)](/ggi_mode/3.md)**.

The **ggi\*PrintMode** functions print all the members of **[ggi\_mode(3)](/ggi_mode/3.md)** in a human-readable form.  **ggiSPrintMode** outputs to a preallocated string buffer, **ggiFPrintMode** outputs to a stdio **FILE**, and **ggiPrintMode** outputs to standard output.  These functions correspond to `sprintf(3)`, `fprintf(3)` and `printf(3)` respectively.

The format of the string used by these functions is exactly the same as the one used in the **GGI\_DEFMODE** environment variable described in `libggi(7)`.

The string returned by both **ggiSPrintMode** and **ggiFPrintMode** does *not* contain a trailing newline.

## RETURN VALUE

**ggiParseMode** returns:

- **0**

  on success, i.e. the string was correct. However, errors involving **GT\_\***, position information, or mismatched brackets do not make it fail; these errors are simply ignored.

- **\<0**

  if there is text that can not be parsed. This text is printed to stderr. All parameters parsed so far are written into *m*.

So *m* contains all parameters that have been successfully parsed. For most applications there will be no need for testing **ggiParseMode** for failure.

## SEE ALSO

`libggi(7)`, `ggi-error(3)`
