---
name: "menu_pattern"
section: "3x"
platform: "macos"
package: "ncurses"
version: "79"
release: "macOS 26.5"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/menu_pattern/3x"
---

# menu\_pattern(3x)

get and set a menu's pattern buffer

## NAME

**menu\_pattern** - get and set a menu's pattern buffer

## SYNOPSIS

**#include \<menu.h\>**\
 int set\_menu\_pattern(MENU \*menu, const char \*pattern);\
 char \*menu\_pattern(const MENU \*menu);\

## DESCRIPTION

Every menu has an associated pattern match buffer.  As input events that are printable characters come in, they are appended to this match buffer and tested for a match, as described in **menu\_driver**(3X).

The function **set\_menu\_pattern** sets the pattern buffer for the given menu and tries to find the first matching item.  If it succeeds, that item becomes current; if not, the current item does not change.

The function **menu\_pattern** returns the pattern buffer of the given *menu*.

## RETURN VALUE

The function **menu\_pattern** returns a pointer, which is **NULL** if the *menu* parameter is **NULL**. Otherwise, it is a pointer to a string which is empty if no pattern has been set. It does not set errno.

The function **set\_menu\_pattern** may return the following error codes:

- **E\_OK**

  The routine succeeded.

- **E\_BAD\_ARGUMENT**

  Routine detected an incorrect or out-of-range argument.

- **E\_BAD\_STATE**

  Routine was called from an initialization or termination function.

- **E\_NOT\_CONNECTED**

  No items are connected to menu.

- **E\_NO\_MATCH**

  Character failed to match.

- **E\_SYSTEM\_ERROR**

  System error occurred (see **errno**).

## SEE ALSO

**curses**(3X), **menu**(3X).

## NOTES

The header file **\<menu.h\>** automatically includes the header file **\<curses.h\>**.

## PORTABILITY

These routines emulate the System V menu library.  They were not supported on Version 7 or BSD versions.

## AUTHORS

Juergen Pfeifer.  Manual pages and adaptation for new curses by Eric S. Raymond.
