---
name: "item_init"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/item_init"
---

# item\_init(3)

set hooks for automatic invocation by applications

## NAME

**menu\_hook** - set hooks for automatic invocation by applications

## SYNOPSIS

```
#include <menu.h>
```

**int set\_item\_init(MENU \****menu***, Menu\_Hook** *func***);** **Menu\_Hook item\_init(const MENU \****menu***);**

**int set\_item\_term(MENU \****menu***, Menu\_Hook** *func***);** **Menu\_Hook item\_term(const MENU \****menu***);**

**int set\_menu\_init(MENU \****menu***, Menu\_Hook** *func***);** **Menu\_Hook menu\_init(const MENU \****menu***);**

**int set\_menu\_term(MENU \****menu***, Menu\_Hook** *func***);** **Menu\_Hook menu\_term(const MENU \****menu***);**

## DESCRIPTION

**These functions make it possible to set hook functions to be called at various** **points in the automatic processing of input event codes by menu\_driver.**

**The function set\_item\_init sets a hook to be called at menu-post time and** **each time the selected item changes (after the change).** **item\_init** **returns the current item init hook, if any** (*NULL* **if there is no such hook).**

**The function set\_item\_term sets a hook to be called at menu-unpost time** **and each time the selected item changes (before the change).** **item\_term** **returns the current item term hook, if any** (*NULL* **if there is no such hook).**

**The function set\_menu\_init sets a hook to be called at menu-post time and** **just after the top row on the menu changes once it is posted.** **menu\_init** **returns the current menu init hook, if any** (*NULL* **if there is no such hook).**

**The function set\_menu\_term sets a hook to be called at menu-unpost time** **and just before the top row on the menu changes once it is posted.** **menu\_term returns the current menu term hook, if any** (*NULL* **if there is no such hook).**

## RETURN VALUE

**Routines that return pointers return** *NULL* **on error.** **Other routines** **return one of the following:**

- **E\_OK**

  **The routine succeeded.**

- **E\_SYSTEM\_ERROR**

  **System error occurred (see [errno(3)](/errno/3.md)).**

## 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.**

## SEE ALSO

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