[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    form_driver(3X) manual page Table of Contents

Name

form_driver - command processor for the forms subsystem

Synopsis

cc [ flag ... ] file ... -lform -lcurses [ library .. ]

#include <form.h>

int form_driver(FORM *form, int c);

MT-Level

Unsafe

Description

form_driver() is the workhorse of the forms subsystem; it checks to determine whether the character c is a forms request or data. If it is a request, the form driver executes the request and reports the result. If it is data (a printable ASCII character), it enters the data into the current position in the current field. If it is not recognized, the form driver assumes it is an application-defined command and returns E_UNKNOWN_COMMAND . Application defined commands should be defined relative to MAX_COMMAND , the maximum value of a request listed below.

Form driver requests:

REQ_NEXT_PAGE    Move to the next page.
REQ_PREV_PAGE    Move to the previous page.
REQ_FIRST_PAGE    Move to the first page.
REQ_LAST_PAGE    Move to the last page.

REQ_NEXT_FIELD    Move to the next field.
REQ_PREV_FIELD    Move to the previous field.
REQ_FIRST_FIELD    Move to the first field.
REQ_LAST_FIELD    Move to the last field.
REQ_SNEXT_FIELD    Move to the sorted next field.
REQ_SPREV_FIELD    Move to the sorted prev field.
REQ_SFIRST_FIELD    Move to the sorted first field.
REQ_SLAST_FIELD    Move to the sorted last field.
REQ_LEFT_FIELD    Move left to field.
REQ_RIGHT_FIELD    Move right to field.
REQ_UP_FIELD    Move up to field.
REQ_DOWN_FIELD    Move down to field.

REQ_NEXT_CHAR    Move to the next character in the field.
REQ_PREV_CHAR    Move to the previous character in the field.
REQ_NEXT_LINE    Move to the next line in the field.
REQ_PREV_LINE    Move to the previous line in the field.
REQ_NEXT_WORD    Move to the next word in the field.
REQ_PREV_WORD    Move to the previous word in the field.
REQ_BEG_FIELD    Move to the first char in the field.
REQ_END_FIELD    Move after the last char in the field.
REQ_BEG_LINE    Move to the beginning of the line.
REQ_END_LINE    Move after the last char in the line.
REQ_LEFT_CHAR    Move left in the field.
REQ_RIGHT_CHAR    Move right in the field.
REQ_UP_CHAR    Move up in the field.
REQ_DOWN_CHAR    Move down in the field.

REQ_NEW_LINE    Insert/overlay a new line.
REQ_INS_CHAR    Insert the blank character at the cursor.
REQ_INS_LINE    Insert a blank line at the cursor.
REQ_DEL_CHAR    Delete the character at the cursor.
REQ_DEL_PREV    Delete the character before the cursor.
REQ_DEL_LINE    Delete the line at the cursor.
REQ_DEL_WORD    Delete the word at the cursor.
REQ_CLR_EOL    Clear to the end of the line.
REQ_CLR_EOF    Clear to the end of the field.
REQ_CLR_FIELD    Clear the entire field.
REQ_OVL_MODE    Enter overlay mode.
REQ_INS_MODE    Enter insert mode.

REQ_SCR_FLINE    Scroll the field forward a line.
REQ_SCR_BLINE    Scroll the field backward a line.
REQ_SCR_FPAGE    Scroll the field forward a page.
REQ_SCR_BPAGE    Scroll the field backward a page.
REQ_SCR_FHPAGE    Scroll the field forward half a page.
REQ_SCR_BHPAGE    Scroll the field backward half a page.

REQ_SCR_FCHAR    Horizontal scroll forward a character.
REQ_SCR_BCHAR    Horizontal scroll backward a character.
REQ_SCR_HFLINE    Horizontal scroll forward a line.
REQ_SCR_HBLINE    Horizontal scroll backward a line.
REQ_SCR_HFHALF    Horizontal scroll forward half a line.
REQ_SCR_HBHALF    Horizontal scroll backward half a line.

REQ_VALIDATION    Validate field.
REQ_PREV_CHOICE    Display the previous field choice.
REQ_NEXT_CHOICE    Display the next field choice.

Return Values

form_driver() returns one of the following:


E_OK    -    The function returned successfully.
E_SYSTEM_ERROR    -    System error.
E_BAD_ARGUMENT    -    An argument is incorrect.
E_NOT_POSTED    -    The form is not posted.
E_INVALID_FIELD    -    The field contents are invalid.
E_BAD_STATE    -    The routine was called from an
        initialization or termination
        function.
E_REQUEST_DENIED    -    The form driver request failed.
E_UNKNOWN_COMMAND    -    An unknown request was passed to
        the the form driver.

See Also

curses(3X) , forms(3X)

Notes

The header <form.h> automatically includes the headers <eti.h> and <curses.h>.


Table of Contents