I was hoping someone on the list who remembers 'mhit.c' from
the Blit library code could shed some light on some members
of the 'NMitem' structure. I believe that 'mhit' (sometimes
'hmenunit') was written by Andrew Hume.

The structure in question is this:

typedef struct NMitem
{
    char    *text;
    char    *help;
    struct NMenu *next;
    void    (*dfn)(), (*bfn)(), (*hfn)();
    long    data;        /* user only */
} NMitem;

The three functions are called at different times when a menu
is being traversed, but 'dfn' and 'bfn' are only called before
a submenu is entered, and after a submenu is exited, respectively.
'hfn' is called whenever an item has been selected.

I have never seen 'dfn' and 'bfn' used in any Bell Labs code so
I was wondering what the rationale for their existence was.

Noel Hunt