menu_pattern(3X)                                            menu_pattern(3X)

NAME         top

       set_menu_pattern, menu_pattern - set and get a menu's pattern buffer

SYNOPSIS         top

       #include <menu.h>
       int set_menu_pattern(MENU *menu, const char *pattern);
       char *menu_pattern(const MENU *menu);

DESCRIPTION         top

       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

RETURN VALUE         top

       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.

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

            Routine was called from an initialization or termination

            No items are connected to menu.

            Character failed to match.

            System error occurred (see errno(3)).

SEE ALSO         top

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

NOTES         top

       The header file <menu.h> automatically includes the header file

PORTABILITY         top

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

AUTHORS         top

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

COLOPHON         top

       This page is part of the ncurses (new curses) project.  Information
       about the project can be found at 
       ⟨⟩.  If you have a
       bug report for this manual page, send it to  This page was obtained from the
       project's upstream Git mirror of the CVS repository
       ⟨git://⟩ on 2020-05-27.  (At that
       time, the date of the most recent commit that was found in the repos‐
       itory was 2020-05-24.)  If you discover any rendering problems in
       this HTML version of the page, or you believe there is a better or
       more up-to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not part
       of the original manual page), send a mail to