# form_hook 3x

## NAME

           form_hook - set hooks for automatic invocation by applica-
           tions

## SYNOPSIS

           #include <form.h>
           int set_field_init(FORM *form, void (*func)(FORM *));
           void (*)(FORM *) field_init(const FORM *form);
           int set_field_term(FORM *form, void (*func)(FORM *));
           void (*)(FORM *) field_term(const FORM *form);
           int set_form_init(FORM *form, void (*func)(FORM *));
           void (*)(FORM *) form_init(const FORM *form);
           int set_form_term(FORM *form, void (*func)(FORM *));
           void (*)(FORM *) form_term(const FORM *form);

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

           The function set_field_init sets a hook to  be  called  at
           form-post  time  and  each time the selected field changes
           (after the change).  field_init returns the current  field
           init hook, if any (NULL if there is no such hook).

           The  function  set_field_term  sets a hook to be called at
           form-unpost time and each time the selected field  changes
           (before the change).  field_term returns the current field
           term hook, if any (NULL if there is no such hook).

           The function set_form_init sets a hook  to  be  called  at
           form-post  time  and  just  after a page change once it is
           posted.  form_init returns the current form init hook,  if
           any (NULL if there is no such hook).

           The  function  set_form_term  sets  a hook to be called at
           form-unpost time and just before a page change once it  is
           posted.   form_init returns the current form 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).

## SEE ALSO

           curses(3x), form(3x).

## NOTES

           The header file <form.h> automatically includes the header
           file <curses.h>.

## PORTABILITY

           These routines emulate the System V forms  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.