Lines Matching refs:form
118 static int Inter_Field_Navigation(int (*const fct) (FORM *), FORM *form);
119 static int FN_Next_Field(FORM *form);
120 static int FN_Previous_Field(FORM *form);
149 #define Address_Of_Current_Row_In_Nth_Buffer(form,N) \ argument
150 Address_Of_Row_In_Nth_Buffer((form)->current,N,(form)->currow)
154 #define Address_Of_Current_Row_In_Buffer(form) \ argument
155 Address_Of_Current_Row_In_Nth_Buffer(form,0)
159 #define Address_Of_Current_Position_In_Nth_Buffer(form,N) \ argument
160 (Address_Of_Current_Row_In_Nth_Buffer(form,N) + (form)->curcol)
164 #define Address_Of_Current_Position_In_Buffer(form) \ argument
165 Address_Of_Current_Position_In_Nth_Buffer(form,0)
198 ((field->form) &&\
199 (field->form->status & _POSTED) &&\
201 (field->page == field->form->curpage))
205 #define First_Position_In_Current_Field(form) \ argument
206 (((form)->currow==0) && ((form)->curcol==0))
219 check_pos(FORM *form, int lineno) in check_pos() argument
221 if (form && form->w) in check_pos()
225 getyx(form->w, y, x); in check_pos()
226 if (y != form->currow || x != form->curcol) in check_pos()
231 form->currow, form->curcol)); in check_pos()
235 #define CHECKPOS(form) check_pos(form, __LINE__) argument
237 #define CHECKPOS(form) /* nothing */ argument
360 delete_char(FORM *form) in delete_char() argument
362 int cells = cell_width(form->w, form->currow, form->curcol); in delete_char()
364 form->curcol = cell_base(form->w, form->currow, form->curcol); in delete_char()
365 wmove(form->w, form->currow, form->curcol); in delete_char()
368 wdelch(form->w); in delete_char()
371 #define DeleteChar(form) delete_char(form) argument
373 #define DeleteChar(form) \ argument
374 wmove((form)->w, (form)->currow, (form)->curcol), \
375 wdelch((form)->w)
481 Adjust_Cursor_Position(FORM *form, const FIELD_CELL *pos) in Adjust_Cursor_Position() argument
486 field = form->current; in Adjust_Cursor_Position()
490 *((div_t *) & (form->currow)) = div(idx, field->dcols); in Adjust_Cursor_Position()
492 form->currow = idx / field->dcols; in Adjust_Cursor_Position()
493 form->curcol = idx - field->cols * form->currow; in Adjust_Cursor_Position()
495 if (field->drows < form->currow) in Adjust_Cursor_Position()
496 form->currow = 0; in Adjust_Cursor_Position()
555 _nc_get_fieldbuffer(FORM *form, FIELD *field, FIELD_CELL *buf) in _nc_get_fieldbuffer() argument
563 assert(form && field && buf); in _nc_get_fieldbuffer()
565 win = form->w; in _nc_get_fieldbuffer()
610 Window_To_Buffer(FORM *form, FIELD *field) in Window_To_Buffer() argument
612 _nc_get_fieldbuffer(form, field, field->buf); in Window_To_Buffer()
627 Synchronize_Buffer(FORM *form) in Synchronize_Buffer() argument
629 if (form->status & _WINDOW_MODIFIED) in Synchronize_Buffer()
631 ClrStatus(form, _WINDOW_MODIFIED); in Synchronize_Buffer()
632 SetStatus(form, _FCHECK_REQUIRED); in Synchronize_Buffer()
633 Window_To_Buffer(form, form->current); in Synchronize_Buffer()
634 wmove(form->w, form->currow, form->curcol); in Synchronize_Buffer()
668 FORM *form = field->form; in Field_Grown() local
669 bool need_visual_update = ((form != (FORM *)0) && in Field_Grown()
670 (form->status & _POSTED) && in Field_Grown()
671 (form->current == field)); in Field_Grown()
674 Synchronize_Buffer(form); in Field_Grown()
740 assert(form != (FORM *)0); in Field_Grown()
741 if (form->w) in Field_Grown()
742 delwin(form->w); in Field_Grown()
743 form->w = new_window; in Field_Grown()
744 Set_Field_Window_Attributes(field, form->w); in Field_Grown()
745 werase(form->w); in Field_Grown()
746 Buffer_To_Window(field, form->w); in Field_Grown()
747 untouchwin(form->w); in Field_Grown()
748 wmove(form->w, form->currow, form->curcol); in Field_Grown()
832 _nc_Position_Form_Cursor(FORM *form) in _nc_Position_Form_Cursor() argument
837 if (!form) in _nc_Position_Form_Cursor()
840 if (!form->w || !form->current) in _nc_Position_Form_Cursor()
843 field = form->current; in _nc_Position_Form_Cursor()
844 formwin = Get_Form_Window(form); in _nc_Position_Form_Cursor()
846 wmove(form->w, form->currow, form->curcol); in _nc_Position_Form_Cursor()
852 field->frow + form->currow - form->toprow, in _nc_Position_Form_Cursor()
853 field->fcol + form->curcol - form->begincol); in _nc_Position_Form_Cursor()
857 wcursyncup(form->w); in _nc_Position_Form_Cursor()
874 _nc_Refresh_Current_Field(FORM *form) in _nc_Refresh_Current_Field() argument
880 T((T_CALLED("_nc_Refresh_Current_Field(%p)"), (void *)form)); in _nc_Refresh_Current_Field()
882 if (!form) in _nc_Refresh_Current_Field()
885 if (!form->w || !form->current) in _nc_Refresh_Current_Field()
888 field = form->current; in _nc_Refresh_Current_Field()
889 formwin = Get_Form_Window(form); in _nc_Refresh_Current_Field()
900 if (form->curcol < form->begincol) in _nc_Refresh_Current_Field()
901 form->begincol = form->curcol; in _nc_Refresh_Current_Field()
904 if (form->curcol >= (form->begincol + field->cols)) in _nc_Refresh_Current_Field()
905 form->begincol = form->curcol - field->cols in _nc_Refresh_Current_Field()
909 copywin(form->w, in _nc_Refresh_Current_Field()
912 form->begincol, in _nc_Refresh_Current_Field()
926 int row_after_bottom = form->toprow + field->rows; in _nc_Refresh_Current_Field()
928 if (form->currow < form->toprow) in _nc_Refresh_Current_Field()
930 form->toprow = form->currow; in _nc_Refresh_Current_Field()
933 if (form->currow >= row_after_bottom) in _nc_Refresh_Current_Field()
935 form->toprow = form->currow - field->rows + 1; in _nc_Refresh_Current_Field()
941 first_modified_row = form->toprow; in _nc_Refresh_Current_Field()
949 first_modified_row = form->toprow; in _nc_Refresh_Current_Field()
952 if (is_linetouched(form->w, first_modified_row)) in _nc_Refresh_Current_Field()
959 if (!is_linetouched(form->w, first_unmodified_row)) in _nc_Refresh_Current_Field()
967 first_modified_row = form->toprow; in _nc_Refresh_Current_Field()
971 copywin(form->w, in _nc_Refresh_Current_Field()
975 field->frow + first_modified_row - form->toprow, in _nc_Refresh_Current_Field()
977 field->frow + first_unmodified_row - form->toprow - 1, in _nc_Refresh_Current_Field()
990 wsyncup(form->w); in _nc_Refresh_Current_Field()
992 untouchwin(form->w); in _nc_Refresh_Current_Field()
993 returnCode(_nc_Position_Form_Cursor(form)); in _nc_Refresh_Current_Field()
1092 Check_Char(FORM *form, in Check_Char() argument
1104 Check_Char(form, field, typ->left, ch, argp->left) || in Check_Char()
1105 Check_Char(form, field, typ->right, ch, argp->right)); in Check_Char()
1113 return typ->charcheck.gccheck(ch, form, field, (void *)argp); in Check_Char()
1148 fwin = Get_Form_Window(field->form); in Display_Or_Erase_Field()
1201 FORM *form; in Synchronize_Field() local
1207 if (((form = field->form) != (FORM *)0) in Synchronize_Field()
1210 if (field == form->current) in Synchronize_Field()
1212 form->currow = form->curcol = form->toprow = form->begincol = 0; in Synchronize_Field()
1213 werase(form->w); in Synchronize_Field()
1216 Undo_Justification(field, form->w); in Synchronize_Field()
1218 Buffer_To_Window(field, form->w); in Synchronize_Field()
1221 res = _nc_Refresh_Current_Field(form); in Synchronize_Field()
1282 FORM *form; in _nc_Synchronize_Attributes() local
1290 CHECKPOS(field->form); in _nc_Synchronize_Attributes()
1291 if (((form = field->form) != (FORM *)0) in _nc_Synchronize_Attributes()
1294 if (form->current == field) in _nc_Synchronize_Attributes()
1296 Synchronize_Buffer(form); in _nc_Synchronize_Attributes()
1297 Set_Field_Window_Attributes(field, form->w); in _nc_Synchronize_Attributes()
1298 werase(form->w); in _nc_Synchronize_Attributes()
1299 wmove(form->w, form->currow, form->curcol); in _nc_Synchronize_Attributes()
1304 Undo_Justification(field, form->w); in _nc_Synchronize_Attributes()
1306 Buffer_To_Window(field, form->w); in _nc_Synchronize_Attributes()
1310 WINDOW *formwin = Get_Form_Window(form); in _nc_Synchronize_Attributes()
1312 copywin(form->w, formwin, in _nc_Synchronize_Attributes()
1318 Buffer_To_Window(field, form->w); in _nc_Synchronize_Attributes()
1320 _nc_Refresh_Current_Field(form); in _nc_Synchronize_Attributes()
1328 CHECKPOS(form); in _nc_Synchronize_Attributes()
1351 FORM *form; in _nc_Synchronize_Options() local
1362 form = field->form; in _nc_Synchronize_Options()
1364 if (form) in _nc_Synchronize_Options()
1366 if (form->status & _POSTED) in _nc_Synchronize_Options()
1368 if (form->current == field) in _nc_Synchronize_Options()
1373 if (form->curpage == field->page) in _nc_Synchronize_Options()
1440 _nc_Unset_Current_Field(FORM *form) in _nc_Unset_Current_Field() argument
1442 FIELD *field = form->current; in _nc_Unset_Current_Field()
1444 _nc_Refresh_Current_Field(form); in _nc_Unset_Current_Field()
1449 if (form->toprow == 0) in _nc_Unset_Current_Field()
1458 Window_To_Buffer(form, field); in _nc_Unset_Current_Field()
1459 werase(form->w); in _nc_Unset_Current_Field()
1460 Perform_Justification(field, form->w); in _nc_Unset_Current_Field()
1462 (form->w->_parent == 0)) in _nc_Unset_Current_Field()
1464 copywin(form->w, in _nc_Unset_Current_Field()
1465 Get_Form_Window(form), in _nc_Unset_Current_Field()
1473 wsyncup(Get_Form_Window(form)); in _nc_Unset_Current_Field()
1477 wsyncup(form->w); in _nc_Unset_Current_Field()
1482 delwin(form->w); in _nc_Unset_Current_Field()
1483 form->w = (WINDOW *)0; in _nc_Unset_Current_Field()
1484 form->current = 0; in _nc_Unset_Current_Field()
1500 _nc_Set_Current_Field(FORM *form, FIELD *newfield) in _nc_Set_Current_Field() argument
1505 T((T_CALLED("_nc_Set_Current_Field(%p,%p)"), (void *)form, (void *)newfield)); in _nc_Set_Current_Field()
1507 if (!form || !newfield || (newfield->form != form)) in _nc_Set_Current_Field()
1510 if ((form->status & _IN_DRIVER)) in _nc_Set_Current_Field()
1513 if (!(form->field)) in _nc_Set_Current_Field()
1516 field = form->current; in _nc_Set_Current_Field()
1519 !(form->status & _POSTED)) in _nc_Set_Current_Field()
1521 if (field && (form->w) && in _nc_Set_Current_Field()
1523 (field->form->curpage == field->page)) in _nc_Set_Current_Field()
1524 _nc_Unset_Current_Field(form); in _nc_Set_Current_Field()
1531 new_window = derwin(Get_Form_Window(form), in _nc_Set_Current_Field()
1537 form->current = field; in _nc_Set_Current_Field()
1539 if (form->w) in _nc_Set_Current_Field()
1540 delwin(form->w); in _nc_Set_Current_Field()
1541 form->w = new_window; in _nc_Set_Current_Field()
1543 ClrStatus(form, _WINDOW_MODIFIED); in _nc_Set_Current_Field()
1544 Set_Field_Window_Attributes(field, form->w); in _nc_Set_Current_Field()
1548 werase(form->w); in _nc_Set_Current_Field()
1549 Buffer_To_Window(field, form->w); in _nc_Set_Current_Field()
1555 werase(form->w); in _nc_Set_Current_Field()
1556 Undo_Justification(field, form->w); in _nc_Set_Current_Field()
1557 wsyncup(form->w); in _nc_Set_Current_Field()
1561 untouchwin(form->w); in _nc_Set_Current_Field()
1564 form->currow = form->curcol = form->toprow = form->begincol = 0; in _nc_Set_Current_Field()
1583 IFN_Next_Character(FORM *form) in IFN_Next_Character() argument
1585 FIELD *field = form->current; in IFN_Next_Character()
1586 int step = myWCWIDTH(form->w, form->currow, form->curcol); in IFN_Next_Character()
1588 T((T_CALLED("IFN_Next_Character(%p)"), (void *)form)); in IFN_Next_Character()
1589 if ((form->curcol += step) == field->dcols) in IFN_Next_Character()
1591 if ((++(form->currow)) == field->drows) in IFN_Next_Character()
1596 form->curcol = 0; in IFN_Next_Character()
1600 form->currow--; in IFN_Next_Character()
1605 form->curcol -= step; in IFN_Next_Character()
1608 form->curcol = 0; in IFN_Next_Character()
1625 IFN_Previous_Character(FORM *form) in IFN_Previous_Character() argument
1627 int amount = myWCWIDTH(form->w, form->currow, form->curcol - 1); in IFN_Previous_Character()
1628 int oldcol = form->curcol; in IFN_Previous_Character()
1630 T((T_CALLED("IFN_Previous_Character(%p)"), (void *)form)); in IFN_Previous_Character()
1631 if ((form->curcol -= amount) < 0) in IFN_Previous_Character()
1633 if ((--(form->currow)) < 0) in IFN_Previous_Character()
1635 form->currow++; in IFN_Previous_Character()
1636 form->curcol = oldcol; in IFN_Previous_Character()
1639 form->curcol = form->current->dcols - 1; in IFN_Previous_Character()
1654 IFN_Next_Line(FORM *form) in IFN_Next_Line() argument
1656 FIELD *field = form->current; in IFN_Next_Line()
1658 T((T_CALLED("IFN_Next_Line(%p)"), (void *)form)); in IFN_Next_Line()
1659 if ((++(form->currow)) == field->drows) in IFN_Next_Line()
1665 form->currow--; in IFN_Next_Line()
1668 form->curcol = 0; in IFN_Next_Line()
1682 IFN_Previous_Line(FORM *form) in IFN_Previous_Line() argument
1684 T((T_CALLED("IFN_Previous_Line(%p)"), (void *)form)); in IFN_Previous_Line()
1685 if ((--(form->currow)) < 0) in IFN_Previous_Line()
1687 form->currow++; in IFN_Previous_Line()
1690 form->curcol = 0; in IFN_Previous_Line()
1704 IFN_Next_Word(FORM *form) in IFN_Next_Word() argument
1706 FIELD *field = form->current; in IFN_Next_Word()
1707 FIELD_CELL *bp = Address_Of_Current_Position_In_Buffer(form); in IFN_Next_Word()
1711 T((T_CALLED("IFN_Next_Word(%p)"), (void *)form)); in IFN_Next_Word()
1714 Synchronize_Buffer(form); in IFN_Next_Word()
1731 Adjust_Cursor_Position(form, t); in IFN_Next_Word()
1746 IFN_Previous_Word(FORM *form) in IFN_Previous_Word() argument
1748 FIELD *field = form->current; in IFN_Previous_Word()
1749 FIELD_CELL *bp = Address_Of_Current_Position_In_Buffer(form); in IFN_Previous_Word()
1754 T((T_CALLED("IFN_Previous_Word(%p)"), (void *)form)); in IFN_Previous_Word()
1757 Synchronize_Buffer(form); in IFN_Previous_Word()
1786 Adjust_Cursor_Position(form, t); in IFN_Previous_Word()
1800 IFN_Beginning_Of_Field(FORM *form) in IFN_Beginning_Of_Field() argument
1802 FIELD *field = form->current; in IFN_Beginning_Of_Field()
1804 T((T_CALLED("IFN_Beginning_Of_Field(%p)"), (void *)form)); in IFN_Beginning_Of_Field()
1805 Synchronize_Buffer(form); in IFN_Beginning_Of_Field()
1806 Adjust_Cursor_Position(form, in IFN_Beginning_Of_Field()
1823 IFN_End_Of_Field(FORM *form) in IFN_End_Of_Field() argument
1825 FIELD *field = form->current; in IFN_End_Of_Field()
1828 T((T_CALLED("IFN_End_Of_Field(%p)"), (void *)form)); in IFN_End_Of_Field()
1829 Synchronize_Buffer(form); in IFN_End_Of_Field()
1833 Adjust_Cursor_Position(form, pos); in IFN_End_Of_Field()
1847 IFN_Beginning_Of_Line(FORM *form) in IFN_Beginning_Of_Line() argument
1849 FIELD *field = form->current; in IFN_Beginning_Of_Line()
1851 T((T_CALLED("IFN_Beginning_Of_Line(%p)"), (void *)form)); in IFN_Beginning_Of_Line()
1852 Synchronize_Buffer(form); in IFN_Beginning_Of_Line()
1853 Adjust_Cursor_Position(form, in IFN_Beginning_Of_Line()
1854 Get_Start_Of_Data(Address_Of_Current_Row_In_Buffer(form), in IFN_Beginning_Of_Line()
1871 IFN_End_Of_Line(FORM *form) in IFN_End_Of_Line() argument
1873 FIELD *field = form->current; in IFN_End_Of_Line()
1877 T((T_CALLED("IFN_End_Of_Line(%p)"), (void *)form)); in IFN_End_Of_Line()
1878 Synchronize_Buffer(form); in IFN_End_Of_Line()
1879 bp = Address_Of_Current_Row_In_Buffer(form); in IFN_End_Of_Line()
1883 Adjust_Cursor_Position(form, pos); in IFN_End_Of_Line()
1898 IFN_Left_Character(FORM *form) in IFN_Left_Character() argument
1900 int amount = myWCWIDTH(form->w, form->currow, form->curcol - 1); in IFN_Left_Character()
1901 int oldcol = form->curcol; in IFN_Left_Character()
1903 T((T_CALLED("IFN_Left_Character(%p)"), (void *)form)); in IFN_Left_Character()
1904 if ((form->curcol -= amount) < 0) in IFN_Left_Character()
1906 form->curcol = oldcol; in IFN_Left_Character()
1923 IFN_Right_Character(FORM *form) in IFN_Right_Character() argument
1925 int amount = myWCWIDTH(form->w, form->currow, form->curcol); in IFN_Right_Character()
1926 int oldcol = form->curcol; in IFN_Right_Character()
1928 T((T_CALLED("IFN_Right_Character(%p)"), (void *)form)); in IFN_Right_Character()
1929 if ((form->curcol += amount) >= form->current->dcols) in IFN_Right_Character()
1932 FIELD *field = form->current; in IFN_Right_Character()
1937 form->curcol = oldcol; in IFN_Right_Character()
1954 IFN_Up_Character(FORM *form) in IFN_Up_Character() argument
1956 T((T_CALLED("IFN_Up_Character(%p)"), (void *)form)); in IFN_Up_Character()
1957 if ((--(form->currow)) < 0) in IFN_Up_Character()
1959 form->currow++; in IFN_Up_Character()
1976 IFN_Down_Character(FORM *form) in IFN_Down_Character() argument
1978 FIELD *field = form->current; in IFN_Down_Character()
1980 T((T_CALLED("IFN_Down_Character(%p)"), (void *)form)); in IFN_Down_Character()
1981 if ((++(form->currow)) == field->drows) in IFN_Down_Character()
1987 --(form->currow); in IFN_Down_Character()
2011 VSC_Generic(FORM *form, int nlines) in VSC_Generic() argument
2013 FIELD *field = form->current; in VSC_Generic()
2019 if ((rows_to_go + form->toprow) > (field->drows - field->rows)) in VSC_Generic()
2020 rows_to_go = (field->drows - field->rows - form->toprow); in VSC_Generic()
2024 form->currow += rows_to_go; in VSC_Generic()
2025 form->toprow += rows_to_go; in VSC_Generic()
2031 if (rows_to_go > form->toprow) in VSC_Generic()
2032 rows_to_go = form->toprow; in VSC_Generic()
2036 form->currow -= rows_to_go; in VSC_Generic()
2037 form->toprow -= rows_to_go; in VSC_Generic()
2064 Vertical_Scrolling(int (*const fct) (FORM *), FORM *form) in Vertical_Scrolling() argument
2068 if (!Single_Line_Field(form->current)) in Vertical_Scrolling()
2070 res = fct(form); in Vertical_Scrolling()
2072 SetStatus(form->current, _NEWTOP); in Vertical_Scrolling()
2087 VSC_Scroll_Line_Forward(FORM *form) in VSC_Scroll_Line_Forward() argument
2089 T((T_CALLED("VSC_Scroll_Line_Forward(%p)"), (void *)form)); in VSC_Scroll_Line_Forward()
2090 returnCode(VSC_Generic(form, 1)); in VSC_Scroll_Line_Forward()
2103 VSC_Scroll_Line_Backward(FORM *form) in VSC_Scroll_Line_Backward() argument
2105 T((T_CALLED("VSC_Scroll_Line_Backward(%p)"), (void *)form)); in VSC_Scroll_Line_Backward()
2106 returnCode(VSC_Generic(form, -1)); in VSC_Scroll_Line_Backward()
2119 VSC_Scroll_Page_Forward(FORM *form) in VSC_Scroll_Page_Forward() argument
2121 T((T_CALLED("VSC_Scroll_Page_Forward(%p)"), (void *)form)); in VSC_Scroll_Page_Forward()
2122 returnCode(VSC_Generic(form, form->current->rows)); in VSC_Scroll_Page_Forward()
2135 VSC_Scroll_Half_Page_Forward(FORM *form) in VSC_Scroll_Half_Page_Forward() argument
2137 T((T_CALLED("VSC_Scroll_Half_Page_Forward(%p)"), (void *)form)); in VSC_Scroll_Half_Page_Forward()
2138 returnCode(VSC_Generic(form, (form->current->rows + 1) / 2)); in VSC_Scroll_Half_Page_Forward()
2151 VSC_Scroll_Page_Backward(FORM *form) in VSC_Scroll_Page_Backward() argument
2153 T((T_CALLED("VSC_Scroll_Page_Backward(%p)"), (void *)form)); in VSC_Scroll_Page_Backward()
2154 returnCode(VSC_Generic(form, -(form->current->rows))); in VSC_Scroll_Page_Backward()
2167 VSC_Scroll_Half_Page_Backward(FORM *form) in VSC_Scroll_Half_Page_Backward() argument
2169 T((T_CALLED("VSC_Scroll_Half_Page_Backward(%p)"), (void *)form)); in VSC_Scroll_Half_Page_Backward()
2170 returnCode(VSC_Generic(form, -((form->current->rows + 1) / 2))); in VSC_Scroll_Half_Page_Backward()
2191 HSC_Generic(FORM *form, int ncolumns) in HSC_Generic() argument
2193 FIELD *field = form->current; in HSC_Generic()
2199 if ((cols_to_go + form->begincol) > (field->dcols - field->cols)) in HSC_Generic()
2200 cols_to_go = field->dcols - field->cols - form->begincol; in HSC_Generic()
2204 form->curcol += cols_to_go; in HSC_Generic()
2205 form->begincol += cols_to_go; in HSC_Generic()
2211 if (cols_to_go > form->begincol) in HSC_Generic()
2212 cols_to_go = form->begincol; in HSC_Generic()
2216 form->curcol -= cols_to_go; in HSC_Generic()
2217 form->begincol -= cols_to_go; in HSC_Generic()
2243 Horizontal_Scrolling(int (*const fct) (FORM *), FORM *form) in Horizontal_Scrolling() argument
2245 if (Single_Line_Field(form->current)) in Horizontal_Scrolling()
2246 return fct(form); in Horizontal_Scrolling()
2261 HSC_Scroll_Char_Forward(FORM *form) in HSC_Scroll_Char_Forward() argument
2263 T((T_CALLED("HSC_Scroll_Char_Forward(%p)"), (void *)form)); in HSC_Scroll_Char_Forward()
2264 returnCode(HSC_Generic(form, 1)); in HSC_Scroll_Char_Forward()
2277 HSC_Scroll_Char_Backward(FORM *form) in HSC_Scroll_Char_Backward() argument
2279 T((T_CALLED("HSC_Scroll_Char_Backward(%p)"), (void *)form)); in HSC_Scroll_Char_Backward()
2280 returnCode(HSC_Generic(form, -1)); in HSC_Scroll_Char_Backward()
2293 HSC_Horizontal_Line_Forward(FORM *form) in HSC_Horizontal_Line_Forward() argument
2295 T((T_CALLED("HSC_Horizontal_Line_Forward(%p)"), (void *)form)); in HSC_Horizontal_Line_Forward()
2296 returnCode(HSC_Generic(form, form->current->cols)); in HSC_Horizontal_Line_Forward()
2309 HSC_Horizontal_Half_Line_Forward(FORM *form) in HSC_Horizontal_Half_Line_Forward() argument
2311 T((T_CALLED("HSC_Horizontal_Half_Line_Forward(%p)"), (void *)form)); in HSC_Horizontal_Half_Line_Forward()
2312 returnCode(HSC_Generic(form, (form->current->cols + 1) / 2)); in HSC_Horizontal_Half_Line_Forward()
2325 HSC_Horizontal_Line_Backward(FORM *form) in HSC_Horizontal_Line_Backward() argument
2327 T((T_CALLED("HSC_Horizontal_Line_Backward(%p)"), (void *)form)); in HSC_Horizontal_Line_Backward()
2328 returnCode(HSC_Generic(form, -(form->current->cols))); in HSC_Horizontal_Line_Backward()
2341 HSC_Horizontal_Half_Line_Backward(FORM *form) in HSC_Horizontal_Half_Line_Backward() argument
2343 T((T_CALLED("HSC_Horizontal_Half_Line_Backward(%p)"), (void *)form)); in HSC_Horizontal_Half_Line_Backward()
2344 returnCode(HSC_Generic(form, -((form->current->cols + 1) / 2))); in HSC_Horizontal_Half_Line_Backward()
2366 Is_There_Room_For_A_Line(FORM *form) in Is_There_Room_For_A_Line() argument
2368 FIELD *field = form->current; in Is_There_Room_For_A_Line()
2371 Synchronize_Buffer(form); in Is_There_Room_For_A_Line()
2388 Is_There_Room_For_A_Char_In_Line(FORM *form) in Is_There_Room_For_A_Char_In_Line() argument
2392 wmove(form->w, form->currow, form->current->dcols - 1); in Is_There_Room_For_A_Char_In_Line()
2393 last_char_in_line = (int)(winch(form->w) & A_CHARTEXT); in Is_There_Room_For_A_Char_In_Line()
2394 wmove(form->w, form->currow, form->curcol); in Is_There_Room_For_A_Char_In_Line()
2395 return (((last_char_in_line == form->current->pad) || in Is_There_Room_For_A_Char_In_Line()
2423 Insert_String(FORM *form, int row, FIELD_CELL *txt, int len) in Insert_String() argument
2425 FIELD *field = form->current; in Insert_String()
2434 wmove(form->w, row, 0); in Insert_String()
2435 myINSNSTR(form->w, txt, len); in Insert_String()
2436 wmove(form->w, row, len); in Insert_String()
2437 myINSNSTR(form->w, &myBLANK, 1); in Insert_String()
2468 if ((result = Insert_String(form, row + 1, split, freelen)) == E_OK) in Insert_String()
2470 wmove(form->w, row, datalen); in Insert_String()
2471 wclrtoeol(form->w); in Insert_String()
2472 wmove(form->w, row, 0); in Insert_String()
2473 myINSNSTR(form->w, txt, len); in Insert_String()
2474 wmove(form->w, row, len); in Insert_String()
2475 myINSNSTR(form->w, &myBLANK, 1); in Insert_String()
2499 Wrapping_Not_Necessary_Or_Wrapping_Ok(FORM *form) in Wrapping_Not_Necessary_Or_Wrapping_Ok() argument
2501 FIELD *field = form->current; in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2503 bool Last_Row = ((field->drows - 1) == form->currow); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2507 (There_Is_No_Room_For_A_Char_In_Line(form)) && /* line is full */ in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2522 bp = Address_Of_Current_Row_In_Buffer(form); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2523 Window_To_Buffer(form, field); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2531 if ((result = Insert_String(form, form->currow + 1, split, in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2534 wmove(form->w, form->currow, chars_to_remain_on_line); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2535 wclrtoeol(form->w); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2536 if (form->curcol >= chars_to_remain_on_line) in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2538 form->currow++; in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2539 form->curcol -= chars_to_remain_on_line; in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2548 DeleteChar(form); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2549 Window_To_Buffer(form, field); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2577 Field_Editing(int (*const fct) (FORM *), FORM *form) in Field_Editing() argument
2588 ((unsigned)form->opts & O_BS_OVERLOAD) && in Field_Editing()
2589 First_Position_In_Current_Field(form)) in Field_Editing()
2591 res = Inter_Field_Navigation(FN_Previous_Field, form); in Field_Editing()
2597 if (((unsigned)form->opts & O_NL_OVERLOAD) && in Field_Editing()
2598 First_Position_In_Current_Field(form)) in Field_Editing()
2600 res = Inter_Field_Navigation(FN_Next_Field, form); in Field_Editing()
2604 res = fct(form); in Field_Editing()
2609 if ((unsigned)form->current->opts & O_EDIT) in Field_Editing()
2611 res = fct(form); in Field_Editing()
2613 SetStatus(form, _WINDOW_MODIFIED); in Field_Editing()
2634 FE_New_Line(FORM *form) in FE_New_Line() argument
2636 FIELD *field = form->current; in FE_New_Line()
2638 bool Last_Row = ((field->drows - 1) == form->currow); in FE_New_Line()
2640 T((T_CALLED("FE_New_Line(%p)"), (void *)form)); in FE_New_Line()
2641 if (form->status & _OVLMODE) in FE_New_Line()
2646 if (!((unsigned)form->opts & O_NL_OVERLOAD)) in FE_New_Line()
2648 wmove(form->w, form->currow, form->curcol); in FE_New_Line()
2649 wclrtoeol(form->w); in FE_New_Line()
2654 SetStatus(form, _WINDOW_MODIFIED); in FE_New_Line()
2655 returnCode(Inter_Field_Navigation(FN_Next_Field, form)); in FE_New_Line()
2666 wmove(form->w, form->currow, form->curcol); in FE_New_Line()
2667 wclrtoeol(form->w); in FE_New_Line()
2668 form->currow++; in FE_New_Line()
2669 form->curcol = 0; in FE_New_Line()
2670 SetStatus(form, _WINDOW_MODIFIED); in FE_New_Line()
2680 if (!((unsigned)form->opts & O_NL_OVERLOAD)) in FE_New_Line()
2682 returnCode(Inter_Field_Navigation(FN_Next_Field, form)); in FE_New_Line()
2686 bool May_Do_It = !Last_Row && Is_There_Room_For_A_Line(form); in FE_New_Line()
2693 bp = Address_Of_Current_Position_In_Buffer(form); in FE_New_Line()
2694 t = After_End_Of_Data(bp, field->dcols - form->curcol); in FE_New_Line()
2695 wmove(form->w, form->currow, form->curcol); in FE_New_Line()
2696 wclrtoeol(form->w); in FE_New_Line()
2697 form->currow++; in FE_New_Line()
2698 form->curcol = 0; in FE_New_Line()
2699 wmove(form->w, form->currow, form->curcol); in FE_New_Line()
2700 winsertln(form->w); in FE_New_Line()
2701 myADDNSTR(form->w, bp, (int)(t - bp)); in FE_New_Line()
2702 SetStatus(form, _WINDOW_MODIFIED); in FE_New_Line()
2718 FE_Insert_Character(FORM *form) in FE_Insert_Character() argument
2720 FIELD *field = form->current; in FE_Insert_Character()
2723 T((T_CALLED("FE_Insert_Character(%p)"), (void *)form)); in FE_Insert_Character()
2724 if (Check_Char(form, field, field->type, (int)C_BLANK, in FE_Insert_Character()
2727 bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form); in FE_Insert_Character()
2736 winsch(form->w, (chtype)C_BLANK); in FE_Insert_Character()
2737 result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form); in FE_Insert_Character()
2754 FE_Insert_Line(FORM *form) in FE_Insert_Line() argument
2756 FIELD *field = form->current; in FE_Insert_Line()
2759 T((T_CALLED("FE_Insert_Line(%p)"), (void *)form)); in FE_Insert_Line()
2760 if (Check_Char(form, field, in FE_Insert_Line()
2763 bool Maybe_Done = (form->currow != (field->drows - 1)) && in FE_Insert_Line()
2764 Is_There_Room_For_A_Line(form); in FE_Insert_Line()
2773 form->curcol = 0; in FE_Insert_Line()
2774 winsertln(form->w); in FE_Insert_Line()
2791 FE_Delete_Character(FORM *form) in FE_Delete_Character() argument
2793 T((T_CALLED("FE_Delete_Character(%p)"), (void *)form)); in FE_Delete_Character()
2794 DeleteChar(form); in FE_Delete_Character()
2812 FE_Delete_Previous(FORM *form) in FE_Delete_Previous() argument
2814 FIELD *field = form->current; in FE_Delete_Previous()
2816 T((T_CALLED("FE_Delete_Previous(%p)"), (void *)form)); in FE_Delete_Previous()
2817 if (First_Position_In_Current_Field(form)) in FE_Delete_Previous()
2820 if ((--(form->curcol)) < 0) in FE_Delete_Previous()
2823 int this_row = form->currow; in FE_Delete_Previous()
2825 form->curcol++; in FE_Delete_Previous()
2826 if (form->status & _OVLMODE) in FE_Delete_Previous()
2829 prev_line = Address_Of_Row_In_Buffer(field, (form->currow - 1)); in FE_Delete_Previous()
2830 this_line = Address_Of_Row_In_Buffer(field, (form->currow)); in FE_Delete_Previous()
2831 Synchronize_Buffer(form); in FE_Delete_Previous()
2837 wmove(form->w, form->currow, form->curcol); in FE_Delete_Previous()
2838 wdeleteln(form->w); in FE_Delete_Previous()
2839 Adjust_Cursor_Position(form, prev_end); in FE_Delete_Previous()
2854 if (form->currow == this_row && this_row > 0) in FE_Delete_Previous()
2856 form->currow -= 1; in FE_Delete_Previous()
2857 form->curcol = field->dcols - 1; in FE_Delete_Previous()
2858 DeleteChar(form); in FE_Delete_Previous()
2862 wmove(form->w, form->currow, form->curcol); in FE_Delete_Previous()
2863 myADDNSTR(form->w, this_line, (int)(this_end - this_line)); in FE_Delete_Previous()
2868 DeleteChar(form); in FE_Delete_Previous()
2882 FE_Delete_Line(FORM *form) in FE_Delete_Line() argument
2884 T((T_CALLED("FE_Delete_Line(%p)"), (void *)form)); in FE_Delete_Line()
2885 form->curcol = 0; in FE_Delete_Line()
2886 wdeleteln(form->w); in FE_Delete_Line()
2900 FE_Delete_Word(FORM *form) in FE_Delete_Word() argument
2902 FIELD *field = form->current; in FE_Delete_Word()
2903 FIELD_CELL *bp = Address_Of_Current_Row_In_Buffer(form); in FE_Delete_Word()
2905 FIELD_CELL *cp = bp + form->curcol; in FE_Delete_Word()
2908 T((T_CALLED("FE_Delete_Word(%p)"), (void *)form)); in FE_Delete_Word()
2909 Synchronize_Buffer(form); in FE_Delete_Word()
2914 Adjust_Cursor_Position(form, in FE_Delete_Word()
2915 After_Last_Whitespace_Character(bp, form->curcol)); in FE_Delete_Word()
2916 wmove(form->w, form->currow, form->curcol); in FE_Delete_Word()
2917 wclrtoeol(form->w); in FE_Delete_Word()
2926 myADDNSTR(form->w, s, (int)(s - After_End_Of_Data(s, (int)(ep - s)))); in FE_Delete_Word()
2940 FE_Clear_To_End_Of_Line(FORM *form) in FE_Clear_To_End_Of_Line() argument
2942 T((T_CALLED("FE_Clear_To_End_Of_Line(%p)"), (void *)form)); in FE_Clear_To_End_Of_Line()
2943 wmove(form->w, form->currow, form->curcol); in FE_Clear_To_End_Of_Line()
2944 wclrtoeol(form->w); in FE_Clear_To_End_Of_Line()
2957 FE_Clear_To_End_Of_Field(FORM *form) in FE_Clear_To_End_Of_Field() argument
2959 T((T_CALLED("FE_Clear_To_End_Of_Field(%p)"), (void *)form)); in FE_Clear_To_End_Of_Field()
2960 wmove(form->w, form->currow, form->curcol); in FE_Clear_To_End_Of_Field()
2961 wclrtobot(form->w); in FE_Clear_To_End_Of_Field()
2974 FE_Clear_Field(FORM *form) in FE_Clear_Field() argument
2976 T((T_CALLED("FE_Clear_Field(%p)"), (void *)form)); in FE_Clear_Field()
2977 form->currow = form->curcol = 0; in FE_Clear_Field()
2978 werase(form->w); in FE_Clear_Field()
2998 EM_Overlay_Mode(FORM *form) in EM_Overlay_Mode() argument
3000 T((T_CALLED("EM_Overlay_Mode(%p)"), (void *)form)); in EM_Overlay_Mode()
3001 SetStatus(form, _OVLMODE); in EM_Overlay_Mode()
3014 EM_Insert_Mode(FORM *form) in EM_Insert_Mode() argument
3016 T((T_CALLED("EM_Insert_Mode(%p)"), (void *)form)); in EM_Insert_Mode()
3017 ClrStatus(form, _OVLMODE); in EM_Insert_Mode()
3043 Next_Choice(FORM *form, FIELDTYPE *typ, FIELD *field, TypeArgument *argp) in Next_Choice() argument
3052 Next_Choice(form, typ->left, field, argp->left) || in Next_Choice()
3053 Next_Choice(form, typ->right, field, argp->right)); in Next_Choice()
3060 return typ->enum_next.gnext(form, field, (void *)argp); in Next_Choice()
3084 Previous_Choice(FORM *form, FIELDTYPE *typ, FIELD *field, TypeArgument *argp) in Previous_Choice() argument
3093 Previous_Choice(form, typ->left, field, argp->left) || in Previous_Choice()
3094 Previous_Choice(form, typ->right, field, argp->right)); in Previous_Choice()
3101 return typ->enum_prev.gprev(form, field, (void *)argp); in Previous_Choice()
3128 CR_Next_Choice(FORM *form) in CR_Next_Choice() argument
3130 FIELD *field = form->current; in CR_Next_Choice()
3132 T((T_CALLED("CR_Next_Choice(%p)"), (void *)form)); in CR_Next_Choice()
3133 Synchronize_Buffer(form); in CR_Next_Choice()
3134 returnCode((Next_Choice(form, field->type, field, (TypeArgument *)(field->arg))) in CR_Next_Choice()
3149 CR_Previous_Choice(FORM *form) in CR_Previous_Choice() argument
3151 FIELD *field = form->current; in CR_Previous_Choice()
3153 T((T_CALLED("CR_Previous_Choice(%p)"), (void *)form)); in CR_Previous_Choice()
3154 Synchronize_Buffer(form); in CR_Previous_Choice()
3155 returnCode((Previous_Choice(form, field->type, field, (TypeArgument *)(field->arg))) in CR_Previous_Choice()
3182 Check_Field(FORM *form, FIELDTYPE *typ, FIELD *field, TypeArgument *argp) in Check_Field() argument
3203 Check_Field(form, typ->left, field, argp->left) || in Check_Field()
3204 Check_Field(form, typ->right, field, argp->right)); in Check_Field()
3212 return typ->fieldcheck.gfcheck(form, field, (void *)argp); in Check_Field()
3235 _nc_Internal_Validation(FORM *form) in _nc_Internal_Validation() argument
3239 field = form->current; in _nc_Internal_Validation()
3241 Synchronize_Buffer(form); in _nc_Internal_Validation()
3242 if ((form->status & _FCHECK_REQUIRED) || in _nc_Internal_Validation()
3245 if (!Check_Field(form, field->type, field, (TypeArgument *)(field->arg))) in _nc_Internal_Validation()
3247 ClrStatus(form, _FCHECK_REQUIRED); in _nc_Internal_Validation()
3271 FV_Validation(FORM *form) in FV_Validation() argument
3273 T((T_CALLED("FV_Validation(%p)"), (void *)form)); in FV_Validation()
3274 if (_nc_Internal_Validation(form)) in FV_Validation()
3301 FORM *form = field->form; in Next_Field_On_Page() local
3302 FIELD **field_on_page = &form->field[field->index]; in Next_Field_On_Page()
3303 FIELD **first_on_page = &form->field[form->page[form->curpage].pmin]; in Next_Field_On_Page()
3304 FIELD **last_on_page = &form->field[form->page[form->curpage].pmax]; in Next_Field_On_Page()
3329 _nc_First_Active_Field(FORM *form) in _nc_First_Active_Field() argument
3331 FIELD **last_on_page = &form->field[form->page[form->curpage].pmax]; in _nc_First_Active_Field()
3342 FIELD **field = &form->field[proposed->index]; in _nc_First_Active_Field()
3343 FIELD **first = &form->field[form->page[form->curpage].pmin]; in _nc_First_Active_Field()
3384 FORM *form = field->form; in Previous_Field_On_Page() local
3385 FIELD **field_on_page = &form->field[field->index]; in Previous_Field_On_Page()
3386 FIELD **first_on_page = &form->field[form->page[form->curpage].pmin]; in Previous_Field_On_Page()
3387 FIELD **last_on_page = &form->field[form->page[form->curpage].pmax]; in Previous_Field_On_Page()
3625 Inter_Field_Navigation(int (*const fct) (FORM *), FORM *form) in Inter_Field_Navigation() argument
3629 if (!_nc_Internal_Validation(form)) in Inter_Field_Navigation()
3633 Call_Hook(form, fieldterm); in Inter_Field_Navigation()
3634 res = fct(form); in Inter_Field_Navigation()
3635 Call_Hook(form, fieldinit); in Inter_Field_Navigation()
3650 FN_Next_Field(FORM *form) in FN_Next_Field() argument
3652 T((T_CALLED("FN_Next_Field(%p)"), (void *)form)); in FN_Next_Field()
3653 returnCode(_nc_Set_Current_Field(form, in FN_Next_Field()
3654 Next_Field_On_Page(form->current))); in FN_Next_Field()
3668 FN_Previous_Field(FORM *form) in FN_Previous_Field() argument
3670 T((T_CALLED("FN_Previous_Field(%p)"), (void *)form)); in FN_Previous_Field()
3671 returnCode(_nc_Set_Current_Field(form, in FN_Previous_Field()
3672 Previous_Field_On_Page(form->current))); in FN_Previous_Field()
3685 FN_First_Field(FORM *form) in FN_First_Field() argument
3687 T((T_CALLED("FN_First_Field(%p)"), (void *)form)); in FN_First_Field()
3688 returnCode(_nc_Set_Current_Field(form, in FN_First_Field()
3689 Next_Field_On_Page(form->field[form->page[form->curpage].pmax]))); in FN_First_Field()
3702 FN_Last_Field(FORM *form) in FN_Last_Field() argument
3704 T((T_CALLED("FN_Last_Field(%p)"), (void *)form)); in FN_Last_Field()
3706 _nc_Set_Current_Field(form, in FN_Last_Field()
3707 Previous_Field_On_Page(form->field[form->page[form->curpage].pmin]))); in FN_Last_Field()
3721 FN_Sorted_Next_Field(FORM *form) in FN_Sorted_Next_Field() argument
3723 T((T_CALLED("FN_Sorted_Next_Field(%p)"), (void *)form)); in FN_Sorted_Next_Field()
3724 returnCode(_nc_Set_Current_Field(form, in FN_Sorted_Next_Field()
3725 Sorted_Next_Field(form->current))); in FN_Sorted_Next_Field()
3739 FN_Sorted_Previous_Field(FORM *form) in FN_Sorted_Previous_Field() argument
3741 T((T_CALLED("FN_Sorted_Previous_Field(%p)"), (void *)form)); in FN_Sorted_Previous_Field()
3742 returnCode(_nc_Set_Current_Field(form, in FN_Sorted_Previous_Field()
3743 Sorted_Previous_Field(form->current))); in FN_Sorted_Previous_Field()
3757 FN_Sorted_First_Field(FORM *form) in FN_Sorted_First_Field() argument
3759 T((T_CALLED("FN_Sorted_First_Field(%p)"), (void *)form)); in FN_Sorted_First_Field()
3760 returnCode(_nc_Set_Current_Field(form, in FN_Sorted_First_Field()
3761 Sorted_Next_Field(form->field[form->page[form->curpage].smax]))); in FN_Sorted_First_Field()
3775 FN_Sorted_Last_Field(FORM *form) in FN_Sorted_Last_Field() argument
3777 T((T_CALLED("FN_Sorted_Last_Field(%p)"), (void *)form)); in FN_Sorted_Last_Field()
3778 returnCode(_nc_Set_Current_Field(form, in FN_Sorted_Last_Field()
3779 Sorted_Previous_Field(form->field[form->page[form->curpage].smin]))); in FN_Sorted_Last_Field()
3793 FN_Left_Field(FORM *form) in FN_Left_Field() argument
3795 T((T_CALLED("FN_Left_Field(%p)"), (void *)form)); in FN_Left_Field()
3796 returnCode(_nc_Set_Current_Field(form, in FN_Left_Field()
3797 Left_Neighbor_Field(form->current))); in FN_Left_Field()
3811 FN_Right_Field(FORM *form) in FN_Right_Field() argument
3813 T((T_CALLED("FN_Right_Field(%p)"), (void *)form)); in FN_Right_Field()
3814 returnCode(_nc_Set_Current_Field(form, in FN_Right_Field()
3815 Right_Neighbor_Field(form->current))); in FN_Right_Field()
3831 FN_Up_Field(FORM *form) in FN_Up_Field() argument
3833 T((T_CALLED("FN_Up_Field(%p)"), (void *)form)); in FN_Up_Field()
3834 returnCode(_nc_Set_Current_Field(form, in FN_Up_Field()
3835 Upper_Neighbor_Field(form->current))); in FN_Up_Field()
3851 FN_Down_Field(FORM *form) in FN_Down_Field() argument
3853 T((T_CALLED("FN_Down_Field(%p)"), (void *)form)); in FN_Down_Field()
3854 returnCode(_nc_Set_Current_Field(form, in FN_Down_Field()
3855 Down_Neighbor_Field(form->current))); in FN_Down_Field()
3883 _nc_Set_Form_Page(FORM *form, int page, FIELD *field) in _nc_Set_Form_Page() argument
3887 if ((form->curpage != page)) in _nc_Set_Form_Page()
3891 werase(Get_Form_Window(form)); in _nc_Set_Form_Page()
3892 form->curpage = (short)page; in _nc_Set_Form_Page()
3893 last_field = field_on_page = form->field[form->page[page].smin]; in _nc_Set_Form_Page()
3904 res = _nc_Set_Current_Field(form, field); in _nc_Set_Form_Page()
3910 res = FN_First_Field(form); in _nc_Set_Form_Page()
3926 Next_Page_Number(const FORM *form) in Next_Page_Number() argument
3928 return (form->curpage + 1) % form->maxpage; in Next_Page_Number()
3942 Previous_Page_Number(const FORM *form) in Previous_Page_Number() argument
3944 return (form->curpage != 0 ? form->curpage - 1 : form->maxpage - 1); in Previous_Page_Number()
3968 Page_Navigation(int (*const fct) (FORM *), FORM *form) in Page_Navigation() argument
3972 if (!_nc_Internal_Validation(form)) in Page_Navigation()
3976 Call_Hook(form, fieldterm); in Page_Navigation()
3977 Call_Hook(form, formterm); in Page_Navigation()
3978 res = fct(form); in Page_Navigation()
3979 Call_Hook(form, forminit); in Page_Navigation()
3980 Call_Hook(form, fieldinit); in Page_Navigation()
3995 PN_Next_Page(FORM *form) in PN_Next_Page() argument
3997 T((T_CALLED("PN_Next_Page(%p)"), (void *)form)); in PN_Next_Page()
3998 returnCode(_nc_Set_Form_Page(form, Next_Page_Number(form), (FIELD *)0)); in PN_Next_Page()
4011 PN_Previous_Page(FORM *form) in PN_Previous_Page() argument
4013 T((T_CALLED("PN_Previous_Page(%p)"), (void *)form)); in PN_Previous_Page()
4014 returnCode(_nc_Set_Form_Page(form, Previous_Page_Number(form), (FIELD *)0)); in PN_Previous_Page()
4027 PN_First_Page(FORM *form) in PN_First_Page() argument
4029 T((T_CALLED("PN_First_Page(%p)"), (void *)form)); in PN_First_Page()
4030 returnCode(_nc_Set_Form_Page(form, 0, (FIELD *)0)); in PN_First_Page()
4043 PN_Last_Page(FORM *form) in PN_Last_Page() argument
4045 T((T_CALLED("PN_Last_Page(%p)"), (void *)form)); in PN_Last_Page()
4046 returnCode(_nc_Set_Form_Page(form, form->maxpage - 1, (FIELD *)0)); in PN_Last_Page()
4070 Data_Entry_w(FORM *form, wchar_t c) in Data_Entry_w() argument
4072 FIELD *field = form->current; in Data_Entry_w()
4075 T((T_CALLED("Data_Entry(%p,%s)"), (void *)form, _tracechtype((chtype)c))); in Data_Entry_w()
4089 First_Position_In_Current_Field(form) && in Data_Entry_w()
4090 !(form->status & _FCHECK_REQUIRED) && in Data_Entry_w()
4091 !(form->status & _WINDOW_MODIFIED)) in Data_Entry_w()
4092 werase(form->w); in Data_Entry_w()
4094 if (form->status & _OVLMODE) in Data_Entry_w()
4096 wadd_wch(form->w, &temp_ch); in Data_Entry_w()
4101 bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form); in Data_Entry_w()
4110 wins_wch(form->w, &temp_ch); in Data_Entry_w()
4113 if ((result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form)) == E_OK) in Data_Entry_w()
4115 bool End_Of_Field = (((field->drows - 1) == form->currow) && in Data_Entry_w()
4116 ((field->dcols - 1) == form->curcol)); in Data_Entry_w()
4118 form->status |= _WINDOW_MODIFIED; in Data_Entry_w()
4120 result = Inter_Field_Navigation(FN_Next_Field, form); in Data_Entry_w()
4133 if (WINDOW_EXT(form->w, addch_used) == 0) in Data_Entry_w()
4134 IFN_Next_Character(form); in Data_Entry_w()
4157 Data_Entry(FORM *form, int c) in Data_Entry() argument
4159 FIELD *field = form->current; in Data_Entry()
4162 T((T_CALLED("Data_Entry(%p,%s)"), (void *)form, _tracechtype((chtype)c))); in Data_Entry()
4170 First_Position_In_Current_Field(form) && in Data_Entry()
4171 !(form->status & _FCHECK_REQUIRED) && in Data_Entry()
4172 !(form->status & _WINDOW_MODIFIED)) in Data_Entry()
4173 werase(form->w); in Data_Entry()
4175 if (form->status & _OVLMODE) in Data_Entry()
4177 waddch(form->w, (chtype)c); in Data_Entry()
4182 bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form); in Data_Entry()
4191 winsch(form->w, (chtype)c); in Data_Entry()
4194 if ((result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form)) == E_OK) in Data_Entry()
4196 bool End_Of_Field = (((field->drows - 1) == form->currow) && in Data_Entry()
4197 ((field->dcols - 1) == form->curcol)); in Data_Entry()
4200 move_after_insert = !!(form->curcol in Data_Entry()
4201 - form->begincol in Data_Entry()
4205 SetStatus(form, _WINDOW_MODIFIED); in Data_Entry()
4207 result = Inter_Field_Navigation(FN_Next_Field, form); in Data_Entry()
4221 if (WINDOW_EXT(form->w, addch_used) == 0) in Data_Entry()
4222 IFN_Next_Character(form); in Data_Entry()
4224 IFN_Next_Character(form); in Data_Entry()
4364 form_driver(FORM *form, int c) in form_driver() argument
4371 T((T_CALLED("form_driver(%p,%d)"), (void *)form, c)); in form_driver()
4373 if (!form) in form_driver()
4376 if (!(form->field) || !(form->current)) in form_driver()
4379 assert(form->page); in form_driver()
4383 form->current = _nc_First_Active_Field(form); in form_driver()
4387 assert(form->current && in form_driver()
4388 form->current->buf && in form_driver()
4389 (form->current->form == form) in form_driver()
4392 if (form->status & _IN_DRIVER) in form_driver()
4395 if (!(form->status & _POSTED)) in form_driver()
4431 res = fct(BI->cmd, form); in form_driver()
4435 res = (BI->cmd) (form); in form_driver()
4443 WINDOW *win = form->win ? form->win : StdScreen(Get_Form_Screen(form)); in form_driver()
4444 WINDOW *sub = form->sub ? form->sub : win; in form_driver()
4464 res = form_driver(form, REQ_PREV_FIELD); in form_driver()
4466 res = form_driver(form, REQ_PREV_PAGE); in form_driver()
4468 res = form_driver(form, REQ_FIRST_FIELD); in form_driver()
4475 res = form_driver(form, REQ_NEXT_FIELD); in form_driver()
4477 res = form_driver(form, REQ_NEXT_PAGE); in form_driver()
4479 res = form_driver(form, REQ_LAST_FIELD); in form_driver()
4487 int min_field = form->page[form->curpage].pmin; in form_driver()
4488 int max_field = form->page[form->curpage].pmax; in form_driver()
4493 FIELD *field = form->field[i]; in form_driver()
4498 res = _nc_Set_Current_Field(form, field); in form_driver()
4500 res = _nc_Position_Form_Cursor(form); in form_driver()
4529 Check_Char(form, form->current, form->current->type, c, in form_driver()
4530 (TypeArgument *)(form->current->arg))) in form_driver()
4532 res = Data_Entry(form, c); in form_driver()
4534 _nc_Refresh_Current_Field(form); in form_driver()
4570 form_driver_w(FORM *form, int type, wchar_t c) in form_driver_w() argument
4575 T((T_CALLED("form_driver(%p,%d)"), (void *)form, (int)c)); in form_driver_w()
4577 if (!form) in form_driver_w()
4580 if (!(form->field)) in form_driver_w()
4583 assert(form->page); in form_driver_w()
4587 form->current = _nc_First_Active_Field(form); in form_driver_w()
4591 assert(form->current && in form_driver_w()
4592 form->current->buf && in form_driver_w()
4593 (form->current->form == form) in form_driver_w()
4596 if (form->status & _IN_DRIVER) in form_driver_w()
4599 if (!(form->status & _POSTED)) in form_driver_w()
4635 res = fct(BI->cmd, form); in form_driver_w()
4637 res = (BI->cmd) (form); in form_driver_w()
4644 WINDOW *win = form->win ? form->win : StdScreen(Get_Form_Screen(form)); in form_driver_w()
4645 WINDOW *sub = form->sub ? form->sub : win; in form_driver_w()
4665 res = form_driver(form, REQ_PREV_FIELD); in form_driver_w()
4667 res = form_driver(form, REQ_PREV_PAGE); in form_driver_w()
4669 res = form_driver(form, REQ_FIRST_FIELD); in form_driver_w()
4676 res = form_driver(form, REQ_NEXT_FIELD); in form_driver_w()
4678 res = form_driver(form, REQ_NEXT_PAGE); in form_driver_w()
4680 res = form_driver(form, REQ_LAST_FIELD); in form_driver_w()
4688 int min_field = form->page[form->curpage].pmin; in form_driver_w()
4689 int max_field = form->page[form->curpage].pmax; in form_driver_w()
4694 FIELD *field = form->field[i]; in form_driver_w()
4699 res = _nc_Set_Current_Field(form, field); in form_driver_w()
4701 res = _nc_Position_Form_Cursor(form); in form_driver_w()
4718 res = Data_Entry_w(form, c); in form_driver_w()
4721 _nc_Refresh_Current_Field(form); in form_driver_w()