The form_driver() function 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
The form_driver() function 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 form driver.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes: