Lines Matching refs:form

117 static int Inter_Field_Navigation(int (*const fct) (FORM *), FORM *form);
118 static int FN_Next_Field(FORM *form);
119 static int FN_Previous_Field(FORM *form);
148 #define Address_Of_Current_Row_In_Nth_Buffer(form,N) \ argument
149 Address_Of_Row_In_Nth_Buffer((form)->current,N,(form)->currow)
153 #define Address_Of_Current_Row_In_Buffer(form) \ argument
154 Address_Of_Current_Row_In_Nth_Buffer(form,0)
158 #define Address_Of_Current_Position_In_Nth_Buffer(form,N) \ argument
159 (Address_Of_Current_Row_In_Nth_Buffer(form,N) + (form)->curcol)
163 #define Address_Of_Current_Position_In_Buffer(form) \ argument
164 Address_Of_Current_Position_In_Nth_Buffer(form,0)
197 ((field->form) &&\
198 (field->form->status & _POSTED) &&\
200 (field->page == field->form->curpage))
204 #define First_Position_In_Current_Field(form) \ argument
205 (((form)->currow==0) && ((form)->curcol==0))
218 check_pos(FORM *form, int lineno) in check_pos() argument
220 if (form && form->w) in check_pos()
224 getyx(form->w, y, x); in check_pos()
225 if (y != form->currow || x != form->curcol) in check_pos()
230 form->currow, form->curcol)); in check_pos()
234 #define CHECKPOS(form) check_pos(form, __LINE__) argument
236 #define CHECKPOS(form) /* nothing */ argument
359 delete_char(FORM *form) in delete_char() argument
361 int cells = cell_width(form->w, form->currow, form->curcol); in delete_char()
363 form->curcol = cell_base(form->w, form->currow, form->curcol); in delete_char()
364 wmove(form->w, form->currow, form->curcol); in delete_char()
367 wdelch(form->w); in delete_char()
370 #define DeleteChar(form) delete_char(form) argument
372 #define DeleteChar(form) \ argument
373 wmove((form)->w, (form)->currow, (form)->curcol), \
374 wdelch((form)->w)
480 Adjust_Cursor_Position(FORM *form, const FIELD_CELL *pos) in Adjust_Cursor_Position() argument
485 field = form->current; in Adjust_Cursor_Position()
489 *((div_t *) & (form->currow)) = div(idx, field->dcols); in Adjust_Cursor_Position()
491 form->currow = idx / field->dcols; in Adjust_Cursor_Position()
492 form->curcol = idx - field->cols * form->currow; in Adjust_Cursor_Position()
494 if (field->drows < form->currow) in Adjust_Cursor_Position()
495 form->currow = 0; in Adjust_Cursor_Position()
554 _nc_get_fieldbuffer(FORM *form, FIELD *field, FIELD_CELL *buf) in _nc_get_fieldbuffer() argument
562 assert(form && field && buf); in _nc_get_fieldbuffer()
564 win = form->w; in _nc_get_fieldbuffer()
609 Window_To_Buffer(FORM *form, FIELD *field) in Window_To_Buffer() argument
611 _nc_get_fieldbuffer(form, field, field->buf); in Window_To_Buffer()
626 Synchronize_Buffer(FORM *form) in Synchronize_Buffer() argument
628 if (form->status & _WINDOW_MODIFIED) in Synchronize_Buffer()
630 ClrStatus(form, _WINDOW_MODIFIED); in Synchronize_Buffer()
631 SetStatus(form, _FCHECK_REQUIRED); in Synchronize_Buffer()
632 Window_To_Buffer(form, form->current); in Synchronize_Buffer()
633 wmove(form->w, form->currow, form->curcol); in Synchronize_Buffer()
667 FORM *form = field->form; in Field_Grown() local
668 bool need_visual_update = ((form != (FORM *)0) && in Field_Grown()
669 (form->status & _POSTED) && in Field_Grown()
670 (form->current == field)); in Field_Grown()
673 Synchronize_Buffer(form); in Field_Grown()
739 assert(form != (FORM *)0); in Field_Grown()
740 if (form->w) in Field_Grown()
741 delwin(form->w); in Field_Grown()
742 form->w = new_window; in Field_Grown()
743 Set_Field_Window_Attributes(field, form->w); in Field_Grown()
744 werase(form->w); in Field_Grown()
745 Buffer_To_Window(field, form->w); in Field_Grown()
746 untouchwin(form->w); in Field_Grown()
747 wmove(form->w, form->currow, form->curcol); in Field_Grown()
831 _nc_Position_Form_Cursor(FORM *form) in _nc_Position_Form_Cursor() argument
836 if (!form) in _nc_Position_Form_Cursor()
839 if (!form->w || !form->current) in _nc_Position_Form_Cursor()
842 field = form->current; in _nc_Position_Form_Cursor()
843 formwin = Get_Form_Window(form); in _nc_Position_Form_Cursor()
845 wmove(form->w, form->currow, form->curcol); in _nc_Position_Form_Cursor()
851 field->frow + form->currow - form->toprow, in _nc_Position_Form_Cursor()
852 field->fcol + form->curcol - form->begincol); in _nc_Position_Form_Cursor()
856 wcursyncup(form->w); in _nc_Position_Form_Cursor()
873 _nc_Refresh_Current_Field(FORM *form) in _nc_Refresh_Current_Field() argument
879 T((T_CALLED("_nc_Refresh_Current_Field(%p)"), (void *)form)); in _nc_Refresh_Current_Field()
881 if (!form) in _nc_Refresh_Current_Field()
884 if (!form->w || !form->current) in _nc_Refresh_Current_Field()
887 field = form->current; in _nc_Refresh_Current_Field()
888 formwin = Get_Form_Window(form); in _nc_Refresh_Current_Field()
899 if (form->curcol < form->begincol) in _nc_Refresh_Current_Field()
900 form->begincol = form->curcol; in _nc_Refresh_Current_Field()
903 if (form->curcol >= (form->begincol + field->cols)) in _nc_Refresh_Current_Field()
904 form->begincol = form->curcol - field->cols in _nc_Refresh_Current_Field()
908 copywin(form->w, in _nc_Refresh_Current_Field()
911 form->begincol, in _nc_Refresh_Current_Field()
925 int row_after_bottom = form->toprow + field->rows; in _nc_Refresh_Current_Field()
927 if (form->currow < form->toprow) in _nc_Refresh_Current_Field()
929 form->toprow = form->currow; in _nc_Refresh_Current_Field()
932 if (form->currow >= row_after_bottom) in _nc_Refresh_Current_Field()
934 form->toprow = form->currow - field->rows + 1; in _nc_Refresh_Current_Field()
940 first_modified_row = form->toprow; in _nc_Refresh_Current_Field()
948 first_modified_row = form->toprow; in _nc_Refresh_Current_Field()
951 if (is_linetouched(form->w, first_modified_row)) in _nc_Refresh_Current_Field()
958 if (!is_linetouched(form->w, first_unmodified_row)) in _nc_Refresh_Current_Field()
966 first_modified_row = form->toprow; in _nc_Refresh_Current_Field()
970 copywin(form->w, in _nc_Refresh_Current_Field()
974 field->frow + first_modified_row - form->toprow, in _nc_Refresh_Current_Field()
976 field->frow + first_unmodified_row - form->toprow - 1, in _nc_Refresh_Current_Field()
989 wsyncup(form->w); in _nc_Refresh_Current_Field()
991 untouchwin(form->w); in _nc_Refresh_Current_Field()
992 returnCode(_nc_Position_Form_Cursor(form)); in _nc_Refresh_Current_Field()
1091 Check_Char(FORM *form, in Check_Char() argument
1103 Check_Char(form, field, typ->left, ch, argp->left) || in Check_Char()
1104 Check_Char(form, field, typ->right, ch, argp->right)); in Check_Char()
1112 return typ->charcheck.gccheck(ch, form, field, (void *)argp); in Check_Char()
1147 fwin = Get_Form_Window(field->form); in Display_Or_Erase_Field()
1200 FORM *form; in Synchronize_Field() local
1206 if (((form = field->form) != (FORM *)0) in Synchronize_Field()
1209 if (field == form->current) in Synchronize_Field()
1211 form->currow = form->curcol = form->toprow = form->begincol = 0; in Synchronize_Field()
1212 werase(form->w); in Synchronize_Field()
1215 Undo_Justification(field, form->w); in Synchronize_Field()
1217 Buffer_To_Window(field, form->w); in Synchronize_Field()
1220 res = _nc_Refresh_Current_Field(form); in Synchronize_Field()
1281 FORM *form; in _nc_Synchronize_Attributes() local
1289 CHECKPOS(field->form); in _nc_Synchronize_Attributes()
1290 if (((form = field->form) != (FORM *)0) in _nc_Synchronize_Attributes()
1293 if (form->current == field) in _nc_Synchronize_Attributes()
1295 Synchronize_Buffer(form); in _nc_Synchronize_Attributes()
1296 Set_Field_Window_Attributes(field, form->w); in _nc_Synchronize_Attributes()
1297 werase(form->w); in _nc_Synchronize_Attributes()
1298 wmove(form->w, form->currow, form->curcol); in _nc_Synchronize_Attributes()
1303 Undo_Justification(field, form->w); in _nc_Synchronize_Attributes()
1305 Buffer_To_Window(field, form->w); in _nc_Synchronize_Attributes()
1309 WINDOW *formwin = Get_Form_Window(form); in _nc_Synchronize_Attributes()
1311 copywin(form->w, formwin, in _nc_Synchronize_Attributes()
1317 Buffer_To_Window(field, form->w); in _nc_Synchronize_Attributes()
1319 _nc_Refresh_Current_Field(form); in _nc_Synchronize_Attributes()
1327 CHECKPOS(form); in _nc_Synchronize_Attributes()
1350 FORM *form; in _nc_Synchronize_Options() local
1361 form = field->form; in _nc_Synchronize_Options()
1363 if (form) in _nc_Synchronize_Options()
1365 if (form->status & _POSTED) in _nc_Synchronize_Options()
1367 if (form->current == field) in _nc_Synchronize_Options()
1372 if (form->curpage == field->page) in _nc_Synchronize_Options()
1439 _nc_Unset_Current_Field(FORM *form) in _nc_Unset_Current_Field() argument
1441 FIELD *field = form->current; in _nc_Unset_Current_Field()
1443 _nc_Refresh_Current_Field(form); in _nc_Unset_Current_Field()
1448 if (form->toprow == 0) in _nc_Unset_Current_Field()
1457 Window_To_Buffer(form, field); in _nc_Unset_Current_Field()
1458 werase(form->w); in _nc_Unset_Current_Field()
1459 Perform_Justification(field, form->w); in _nc_Unset_Current_Field()
1461 (form->w->_parent == 0)) in _nc_Unset_Current_Field()
1463 copywin(form->w, in _nc_Unset_Current_Field()
1464 Get_Form_Window(form), in _nc_Unset_Current_Field()
1472 wsyncup(Get_Form_Window(form)); in _nc_Unset_Current_Field()
1476 wsyncup(form->w); in _nc_Unset_Current_Field()
1481 delwin(form->w); in _nc_Unset_Current_Field()
1482 form->w = (WINDOW *)0; in _nc_Unset_Current_Field()
1483 form->current = 0; in _nc_Unset_Current_Field()
1499 _nc_Set_Current_Field(FORM *form, FIELD *newfield) in _nc_Set_Current_Field() argument
1504 T((T_CALLED("_nc_Set_Current_Field(%p,%p)"), (void *)form, (void *)newfield)); in _nc_Set_Current_Field()
1506 if (!form || !newfield || (newfield->form != form)) in _nc_Set_Current_Field()
1509 if ((form->status & _IN_DRIVER)) in _nc_Set_Current_Field()
1512 if (!(form->field)) in _nc_Set_Current_Field()
1515 field = form->current; in _nc_Set_Current_Field()
1518 !(form->status & _POSTED)) in _nc_Set_Current_Field()
1520 if (field && (form->w) && in _nc_Set_Current_Field()
1522 (field->form->curpage == field->page)) in _nc_Set_Current_Field()
1523 _nc_Unset_Current_Field(form); in _nc_Set_Current_Field()
1530 new_window = derwin(Get_Form_Window(form), in _nc_Set_Current_Field()
1536 form->current = field; in _nc_Set_Current_Field()
1538 if (form->w) in _nc_Set_Current_Field()
1539 delwin(form->w); in _nc_Set_Current_Field()
1540 form->w = new_window; in _nc_Set_Current_Field()
1542 ClrStatus(form, _WINDOW_MODIFIED); in _nc_Set_Current_Field()
1543 Set_Field_Window_Attributes(field, form->w); in _nc_Set_Current_Field()
1547 werase(form->w); in _nc_Set_Current_Field()
1548 Buffer_To_Window(field, form->w); in _nc_Set_Current_Field()
1554 werase(form->w); in _nc_Set_Current_Field()
1555 Undo_Justification(field, form->w); in _nc_Set_Current_Field()
1556 wsyncup(form->w); in _nc_Set_Current_Field()
1560 untouchwin(form->w); in _nc_Set_Current_Field()
1563 form->currow = form->curcol = form->toprow = form->begincol = 0; in _nc_Set_Current_Field()
1582 IFN_Next_Character(FORM *form) in IFN_Next_Character() argument
1584 FIELD *field = form->current; in IFN_Next_Character()
1585 int step = myWCWIDTH(form->w, form->currow, form->curcol); in IFN_Next_Character()
1587 T((T_CALLED("IFN_Next_Character(%p)"), (void *)form)); in IFN_Next_Character()
1588 if ((form->curcol += step) == field->dcols) in IFN_Next_Character()
1590 if ((++(form->currow)) == field->drows) in IFN_Next_Character()
1595 form->curcol = 0; in IFN_Next_Character()
1599 form->currow--; in IFN_Next_Character()
1604 form->curcol -= step; in IFN_Next_Character()
1607 form->curcol = 0; in IFN_Next_Character()
1624 IFN_Previous_Character(FORM *form) in IFN_Previous_Character() argument
1626 int amount = myWCWIDTH(form->w, form->currow, form->curcol - 1); in IFN_Previous_Character()
1627 int oldcol = form->curcol; in IFN_Previous_Character()
1629 T((T_CALLED("IFN_Previous_Character(%p)"), (void *)form)); in IFN_Previous_Character()
1630 if ((form->curcol -= amount) < 0) in IFN_Previous_Character()
1632 if ((--(form->currow)) < 0) in IFN_Previous_Character()
1634 form->currow++; in IFN_Previous_Character()
1635 form->curcol = oldcol; in IFN_Previous_Character()
1638 form->curcol = form->current->dcols - 1; in IFN_Previous_Character()
1653 IFN_Next_Line(FORM *form) in IFN_Next_Line() argument
1655 FIELD *field = form->current; in IFN_Next_Line()
1657 T((T_CALLED("IFN_Next_Line(%p)"), (void *)form)); in IFN_Next_Line()
1658 if ((++(form->currow)) == field->drows) in IFN_Next_Line()
1664 form->currow--; in IFN_Next_Line()
1667 form->curcol = 0; in IFN_Next_Line()
1681 IFN_Previous_Line(FORM *form) in IFN_Previous_Line() argument
1683 T((T_CALLED("IFN_Previous_Line(%p)"), (void *)form)); in IFN_Previous_Line()
1684 if ((--(form->currow)) < 0) in IFN_Previous_Line()
1686 form->currow++; in IFN_Previous_Line()
1689 form->curcol = 0; in IFN_Previous_Line()
1703 IFN_Next_Word(FORM *form) in IFN_Next_Word() argument
1705 FIELD *field = form->current; in IFN_Next_Word()
1706 FIELD_CELL *bp = Address_Of_Current_Position_In_Buffer(form); in IFN_Next_Word()
1710 T((T_CALLED("IFN_Next_Word(%p)"), (void *)form)); in IFN_Next_Word()
1713 Synchronize_Buffer(form); in IFN_Next_Word()
1730 Adjust_Cursor_Position(form, t); in IFN_Next_Word()
1745 IFN_Previous_Word(FORM *form) in IFN_Previous_Word() argument
1747 FIELD *field = form->current; in IFN_Previous_Word()
1748 FIELD_CELL *bp = Address_Of_Current_Position_In_Buffer(form); in IFN_Previous_Word()
1753 T((T_CALLED("IFN_Previous_Word(%p)"), (void *)form)); in IFN_Previous_Word()
1756 Synchronize_Buffer(form); in IFN_Previous_Word()
1785 Adjust_Cursor_Position(form, t); in IFN_Previous_Word()
1799 IFN_Beginning_Of_Field(FORM *form) in IFN_Beginning_Of_Field() argument
1801 FIELD *field = form->current; in IFN_Beginning_Of_Field()
1803 T((T_CALLED("IFN_Beginning_Of_Field(%p)"), (void *)form)); in IFN_Beginning_Of_Field()
1804 Synchronize_Buffer(form); in IFN_Beginning_Of_Field()
1805 Adjust_Cursor_Position(form, in IFN_Beginning_Of_Field()
1822 IFN_End_Of_Field(FORM *form) in IFN_End_Of_Field() argument
1824 FIELD *field = form->current; in IFN_End_Of_Field()
1827 T((T_CALLED("IFN_End_Of_Field(%p)"), (void *)form)); in IFN_End_Of_Field()
1828 Synchronize_Buffer(form); in IFN_End_Of_Field()
1832 Adjust_Cursor_Position(form, pos); in IFN_End_Of_Field()
1846 IFN_Beginning_Of_Line(FORM *form) in IFN_Beginning_Of_Line() argument
1848 FIELD *field = form->current; in IFN_Beginning_Of_Line()
1850 T((T_CALLED("IFN_Beginning_Of_Line(%p)"), (void *)form)); in IFN_Beginning_Of_Line()
1851 Synchronize_Buffer(form); in IFN_Beginning_Of_Line()
1852 Adjust_Cursor_Position(form, in IFN_Beginning_Of_Line()
1853 Get_Start_Of_Data(Address_Of_Current_Row_In_Buffer(form), in IFN_Beginning_Of_Line()
1870 IFN_End_Of_Line(FORM *form) in IFN_End_Of_Line() argument
1872 FIELD *field = form->current; in IFN_End_Of_Line()
1876 T((T_CALLED("IFN_End_Of_Line(%p)"), (void *)form)); in IFN_End_Of_Line()
1877 Synchronize_Buffer(form); in IFN_End_Of_Line()
1878 bp = Address_Of_Current_Row_In_Buffer(form); in IFN_End_Of_Line()
1882 Adjust_Cursor_Position(form, pos); in IFN_End_Of_Line()
1897 IFN_Left_Character(FORM *form) in IFN_Left_Character() argument
1899 int amount = myWCWIDTH(form->w, form->currow, form->curcol - 1); in IFN_Left_Character()
1900 int oldcol = form->curcol; in IFN_Left_Character()
1902 T((T_CALLED("IFN_Left_Character(%p)"), (void *)form)); in IFN_Left_Character()
1903 if ((form->curcol -= amount) < 0) in IFN_Left_Character()
1905 form->curcol = oldcol; in IFN_Left_Character()
1922 IFN_Right_Character(FORM *form) in IFN_Right_Character() argument
1924 int amount = myWCWIDTH(form->w, form->currow, form->curcol); in IFN_Right_Character()
1925 int oldcol = form->curcol; in IFN_Right_Character()
1927 T((T_CALLED("IFN_Right_Character(%p)"), (void *)form)); in IFN_Right_Character()
1928 if ((form->curcol += amount) >= form->current->dcols) in IFN_Right_Character()
1931 FIELD *field = form->current; in IFN_Right_Character()
1936 form->curcol = oldcol; in IFN_Right_Character()
1953 IFN_Up_Character(FORM *form) in IFN_Up_Character() argument
1955 T((T_CALLED("IFN_Up_Character(%p)"), (void *)form)); in IFN_Up_Character()
1956 if ((--(form->currow)) < 0) in IFN_Up_Character()
1958 form->currow++; in IFN_Up_Character()
1975 IFN_Down_Character(FORM *form) in IFN_Down_Character() argument
1977 FIELD *field = form->current; in IFN_Down_Character()
1979 T((T_CALLED("IFN_Down_Character(%p)"), (void *)form)); in IFN_Down_Character()
1980 if ((++(form->currow)) == field->drows) in IFN_Down_Character()
1986 --(form->currow); in IFN_Down_Character()
2010 VSC_Generic(FORM *form, int nlines) in VSC_Generic() argument
2012 FIELD *field = form->current; in VSC_Generic()
2018 if ((rows_to_go + form->toprow) > (field->drows - field->rows)) in VSC_Generic()
2019 rows_to_go = (field->drows - field->rows - form->toprow); in VSC_Generic()
2023 form->currow += rows_to_go; in VSC_Generic()
2024 form->toprow += rows_to_go; in VSC_Generic()
2030 if (rows_to_go > form->toprow) in VSC_Generic()
2031 rows_to_go = form->toprow; in VSC_Generic()
2035 form->currow -= rows_to_go; in VSC_Generic()
2036 form->toprow -= rows_to_go; in VSC_Generic()
2063 Vertical_Scrolling(int (*const fct) (FORM *), FORM *form) in Vertical_Scrolling() argument
2067 if (!Single_Line_Field(form->current)) in Vertical_Scrolling()
2069 res = fct(form); in Vertical_Scrolling()
2071 SetStatus(form->current, _NEWTOP); in Vertical_Scrolling()
2086 VSC_Scroll_Line_Forward(FORM *form) in VSC_Scroll_Line_Forward() argument
2088 T((T_CALLED("VSC_Scroll_Line_Forward(%p)"), (void *)form)); in VSC_Scroll_Line_Forward()
2089 returnCode(VSC_Generic(form, 1)); in VSC_Scroll_Line_Forward()
2102 VSC_Scroll_Line_Backward(FORM *form) in VSC_Scroll_Line_Backward() argument
2104 T((T_CALLED("VSC_Scroll_Line_Backward(%p)"), (void *)form)); in VSC_Scroll_Line_Backward()
2105 returnCode(VSC_Generic(form, -1)); in VSC_Scroll_Line_Backward()
2118 VSC_Scroll_Page_Forward(FORM *form) in VSC_Scroll_Page_Forward() argument
2120 T((T_CALLED("VSC_Scroll_Page_Forward(%p)"), (void *)form)); in VSC_Scroll_Page_Forward()
2121 returnCode(VSC_Generic(form, form->current->rows)); in VSC_Scroll_Page_Forward()
2134 VSC_Scroll_Half_Page_Forward(FORM *form) in VSC_Scroll_Half_Page_Forward() argument
2136 T((T_CALLED("VSC_Scroll_Half_Page_Forward(%p)"), (void *)form)); in VSC_Scroll_Half_Page_Forward()
2137 returnCode(VSC_Generic(form, (form->current->rows + 1) / 2)); in VSC_Scroll_Half_Page_Forward()
2150 VSC_Scroll_Page_Backward(FORM *form) in VSC_Scroll_Page_Backward() argument
2152 T((T_CALLED("VSC_Scroll_Page_Backward(%p)"), (void *)form)); in VSC_Scroll_Page_Backward()
2153 returnCode(VSC_Generic(form, -(form->current->rows))); in VSC_Scroll_Page_Backward()
2166 VSC_Scroll_Half_Page_Backward(FORM *form) in VSC_Scroll_Half_Page_Backward() argument
2168 T((T_CALLED("VSC_Scroll_Half_Page_Backward(%p)"), (void *)form)); in VSC_Scroll_Half_Page_Backward()
2169 returnCode(VSC_Generic(form, -((form->current->rows + 1) / 2))); in VSC_Scroll_Half_Page_Backward()
2190 HSC_Generic(FORM *form, int ncolumns) in HSC_Generic() argument
2192 FIELD *field = form->current; in HSC_Generic()
2198 if ((cols_to_go + form->begincol) > (field->dcols - field->cols)) in HSC_Generic()
2199 cols_to_go = field->dcols - field->cols - form->begincol; in HSC_Generic()
2203 form->curcol += cols_to_go; in HSC_Generic()
2204 form->begincol += cols_to_go; in HSC_Generic()
2210 if (cols_to_go > form->begincol) in HSC_Generic()
2211 cols_to_go = form->begincol; in HSC_Generic()
2215 form->curcol -= cols_to_go; in HSC_Generic()
2216 form->begincol -= cols_to_go; in HSC_Generic()
2242 Horizontal_Scrolling(int (*const fct) (FORM *), FORM *form) in Horizontal_Scrolling() argument
2244 if (Single_Line_Field(form->current)) in Horizontal_Scrolling()
2245 return fct(form); in Horizontal_Scrolling()
2260 HSC_Scroll_Char_Forward(FORM *form) in HSC_Scroll_Char_Forward() argument
2262 T((T_CALLED("HSC_Scroll_Char_Forward(%p)"), (void *)form)); in HSC_Scroll_Char_Forward()
2263 returnCode(HSC_Generic(form, 1)); in HSC_Scroll_Char_Forward()
2276 HSC_Scroll_Char_Backward(FORM *form) in HSC_Scroll_Char_Backward() argument
2278 T((T_CALLED("HSC_Scroll_Char_Backward(%p)"), (void *)form)); in HSC_Scroll_Char_Backward()
2279 returnCode(HSC_Generic(form, -1)); in HSC_Scroll_Char_Backward()
2292 HSC_Horizontal_Line_Forward(FORM *form) in HSC_Horizontal_Line_Forward() argument
2294 T((T_CALLED("HSC_Horizontal_Line_Forward(%p)"), (void *)form)); in HSC_Horizontal_Line_Forward()
2295 returnCode(HSC_Generic(form, form->current->cols)); in HSC_Horizontal_Line_Forward()
2308 HSC_Horizontal_Half_Line_Forward(FORM *form) in HSC_Horizontal_Half_Line_Forward() argument
2310 T((T_CALLED("HSC_Horizontal_Half_Line_Forward(%p)"), (void *)form)); in HSC_Horizontal_Half_Line_Forward()
2311 returnCode(HSC_Generic(form, (form->current->cols + 1) / 2)); in HSC_Horizontal_Half_Line_Forward()
2324 HSC_Horizontal_Line_Backward(FORM *form) in HSC_Horizontal_Line_Backward() argument
2326 T((T_CALLED("HSC_Horizontal_Line_Backward(%p)"), (void *)form)); in HSC_Horizontal_Line_Backward()
2327 returnCode(HSC_Generic(form, -(form->current->cols))); in HSC_Horizontal_Line_Backward()
2340 HSC_Horizontal_Half_Line_Backward(FORM *form) in HSC_Horizontal_Half_Line_Backward() argument
2342 T((T_CALLED("HSC_Horizontal_Half_Line_Backward(%p)"), (void *)form)); in HSC_Horizontal_Half_Line_Backward()
2343 returnCode(HSC_Generic(form, -((form->current->cols + 1) / 2))); in HSC_Horizontal_Half_Line_Backward()
2365 Is_There_Room_For_A_Line(FORM *form) in Is_There_Room_For_A_Line() argument
2367 FIELD *field = form->current; in Is_There_Room_For_A_Line()
2370 Synchronize_Buffer(form); in Is_There_Room_For_A_Line()
2387 Is_There_Room_For_A_Char_In_Line(FORM *form) in Is_There_Room_For_A_Char_In_Line() argument
2391 wmove(form->w, form->currow, form->current->dcols - 1); in Is_There_Room_For_A_Char_In_Line()
2392 last_char_in_line = (int)(winch(form->w) & A_CHARTEXT); in Is_There_Room_For_A_Char_In_Line()
2393 wmove(form->w, form->currow, form->curcol); in Is_There_Room_For_A_Char_In_Line()
2394 return (((last_char_in_line == form->current->pad) || in Is_There_Room_For_A_Char_In_Line()
2422 Insert_String(FORM *form, int row, FIELD_CELL *txt, int len) in Insert_String() argument
2424 FIELD *field = form->current; in Insert_String()
2433 wmove(form->w, row, 0); in Insert_String()
2434 myINSNSTR(form->w, txt, len); in Insert_String()
2435 wmove(form->w, row, len); in Insert_String()
2436 myINSNSTR(form->w, &myBLANK, 1); in Insert_String()
2467 if ((result = Insert_String(form, row + 1, split, freelen)) == E_OK) in Insert_String()
2469 wmove(form->w, row, datalen); in Insert_String()
2470 wclrtoeol(form->w); in Insert_String()
2471 wmove(form->w, row, 0); in Insert_String()
2472 myINSNSTR(form->w, txt, len); in Insert_String()
2473 wmove(form->w, row, len); in Insert_String()
2474 myINSNSTR(form->w, &myBLANK, 1); in Insert_String()
2498 Wrapping_Not_Necessary_Or_Wrapping_Ok(FORM *form) in Wrapping_Not_Necessary_Or_Wrapping_Ok() argument
2500 FIELD *field = form->current; in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2502 bool Last_Row = ((field->drows - 1) == form->currow); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2506 (There_Is_No_Room_For_A_Char_In_Line(form)) && /* line is full */ in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2521 bp = Address_Of_Current_Row_In_Buffer(form); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2522 Window_To_Buffer(form, field); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2530 if ((result = Insert_String(form, form->currow + 1, split, in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2533 wmove(form->w, form->currow, chars_to_remain_on_line); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2534 wclrtoeol(form->w); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2535 if (form->curcol >= chars_to_remain_on_line) in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2537 form->currow++; in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2538 form->curcol -= chars_to_remain_on_line; in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2547 DeleteChar(form); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2548 Window_To_Buffer(form, field); in Wrapping_Not_Necessary_Or_Wrapping_Ok()
2576 Field_Editing(int (*const fct) (FORM *), FORM *form) in Field_Editing() argument
2587 ((unsigned)form->opts & O_BS_OVERLOAD) && in Field_Editing()
2588 First_Position_In_Current_Field(form)) in Field_Editing()
2590 res = Inter_Field_Navigation(FN_Previous_Field, form); in Field_Editing()
2596 if (((unsigned)form->opts & O_NL_OVERLOAD) && in Field_Editing()
2597 First_Position_In_Current_Field(form)) in Field_Editing()
2599 res = Inter_Field_Navigation(FN_Next_Field, form); in Field_Editing()
2603 res = fct(form); in Field_Editing()
2608 if ((unsigned)form->current->opts & O_EDIT) in Field_Editing()
2610 res = fct(form); in Field_Editing()
2612 SetStatus(form, _WINDOW_MODIFIED); in Field_Editing()
2633 FE_New_Line(FORM *form) in FE_New_Line() argument
2635 FIELD *field = form->current; in FE_New_Line()
2637 bool Last_Row = ((field->drows - 1) == form->currow); in FE_New_Line()
2639 T((T_CALLED("FE_New_Line(%p)"), (void *)form)); in FE_New_Line()
2640 if (form->status & _OVLMODE) in FE_New_Line()
2645 if (!((unsigned)form->opts & O_NL_OVERLOAD)) in FE_New_Line()
2647 wmove(form->w, form->currow, form->curcol); in FE_New_Line()
2648 wclrtoeol(form->w); in FE_New_Line()
2653 SetStatus(form, _WINDOW_MODIFIED); in FE_New_Line()
2654 returnCode(Inter_Field_Navigation(FN_Next_Field, form)); in FE_New_Line()
2665 wmove(form->w, form->currow, form->curcol); in FE_New_Line()
2666 wclrtoeol(form->w); in FE_New_Line()
2667 form->currow++; in FE_New_Line()
2668 form->curcol = 0; in FE_New_Line()
2669 SetStatus(form, _WINDOW_MODIFIED); in FE_New_Line()
2679 if (!((unsigned)form->opts & O_NL_OVERLOAD)) in FE_New_Line()
2681 returnCode(Inter_Field_Navigation(FN_Next_Field, form)); in FE_New_Line()
2685 bool May_Do_It = !Last_Row && Is_There_Room_For_A_Line(form); in FE_New_Line()
2692 bp = Address_Of_Current_Position_In_Buffer(form); in FE_New_Line()
2693 t = After_End_Of_Data(bp, field->dcols - form->curcol); in FE_New_Line()
2694 wmove(form->w, form->currow, form->curcol); in FE_New_Line()
2695 wclrtoeol(form->w); in FE_New_Line()
2696 form->currow++; in FE_New_Line()
2697 form->curcol = 0; in FE_New_Line()
2698 wmove(form->w, form->currow, form->curcol); in FE_New_Line()
2699 winsertln(form->w); in FE_New_Line()
2700 myADDNSTR(form->w, bp, (int)(t - bp)); in FE_New_Line()
2701 SetStatus(form, _WINDOW_MODIFIED); in FE_New_Line()
2717 FE_Insert_Character(FORM *form) in FE_Insert_Character() argument
2719 FIELD *field = form->current; in FE_Insert_Character()
2722 T((T_CALLED("FE_Insert_Character(%p)"), (void *)form)); in FE_Insert_Character()
2723 if (Check_Char(form, field, field->type, (int)C_BLANK, in FE_Insert_Character()
2726 bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form); in FE_Insert_Character()
2735 winsch(form->w, (chtype)C_BLANK); in FE_Insert_Character()
2736 result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form); in FE_Insert_Character()
2753 FE_Insert_Line(FORM *form) in FE_Insert_Line() argument
2755 FIELD *field = form->current; in FE_Insert_Line()
2758 T((T_CALLED("FE_Insert_Line(%p)"), (void *)form)); in FE_Insert_Line()
2759 if (Check_Char(form, field, in FE_Insert_Line()
2762 bool Maybe_Done = (form->currow != (field->drows - 1)) && in FE_Insert_Line()
2763 Is_There_Room_For_A_Line(form); in FE_Insert_Line()
2772 form->curcol = 0; in FE_Insert_Line()
2773 winsertln(form->w); in FE_Insert_Line()
2790 FE_Delete_Character(FORM *form) in FE_Delete_Character() argument
2792 T((T_CALLED("FE_Delete_Character(%p)"), (void *)form)); in FE_Delete_Character()
2793 DeleteChar(form); in FE_Delete_Character()
2811 FE_Delete_Previous(FORM *form) in FE_Delete_Previous() argument
2813 FIELD *field = form->current; in FE_Delete_Previous()
2815 T((T_CALLED("FE_Delete_Previous(%p)"), (void *)form)); in FE_Delete_Previous()
2816 if (First_Position_In_Current_Field(form)) in FE_Delete_Previous()
2819 if ((--(form->curcol)) < 0) in FE_Delete_Previous()
2822 int this_row = form->currow; in FE_Delete_Previous()
2824 form->curcol++; in FE_Delete_Previous()
2825 if (form->status & _OVLMODE) in FE_Delete_Previous()
2828 prev_line = Address_Of_Row_In_Buffer(field, (form->currow - 1)); in FE_Delete_Previous()
2829 this_line = Address_Of_Row_In_Buffer(field, (form->currow)); in FE_Delete_Previous()
2830 Synchronize_Buffer(form); in FE_Delete_Previous()
2836 wmove(form->w, form->currow, form->curcol); in FE_Delete_Previous()
2837 wdeleteln(form->w); in FE_Delete_Previous()
2838 Adjust_Cursor_Position(form, prev_end); in FE_Delete_Previous()
2853 if (form->currow == this_row && this_row > 0) in FE_Delete_Previous()
2855 form->currow -= 1; in FE_Delete_Previous()
2856 form->curcol = field->dcols - 1; in FE_Delete_Previous()
2857 DeleteChar(form); in FE_Delete_Previous()
2861 wmove(form->w, form->currow, form->curcol); in FE_Delete_Previous()
2862 myADDNSTR(form->w, this_line, (int)(this_end - this_line)); in FE_Delete_Previous()
2867 DeleteChar(form); in FE_Delete_Previous()
2881 FE_Delete_Line(FORM *form) in FE_Delete_Line() argument
2883 T((T_CALLED("FE_Delete_Line(%p)"), (void *)form)); in FE_Delete_Line()
2884 form->curcol = 0; in FE_Delete_Line()
2885 wdeleteln(form->w); in FE_Delete_Line()
2899 FE_Delete_Word(FORM *form) in FE_Delete_Word() argument
2901 FIELD *field = form->current; in FE_Delete_Word()
2902 FIELD_CELL *bp = Address_Of_Current_Row_In_Buffer(form); in FE_Delete_Word()
2904 FIELD_CELL *cp = bp + form->curcol; in FE_Delete_Word()
2907 T((T_CALLED("FE_Delete_Word(%p)"), (void *)form)); in FE_Delete_Word()
2908 Synchronize_Buffer(form); in FE_Delete_Word()
2913 Adjust_Cursor_Position(form, in FE_Delete_Word()
2914 After_Last_Whitespace_Character(bp, form->curcol)); in FE_Delete_Word()
2915 wmove(form->w, form->currow, form->curcol); in FE_Delete_Word()
2916 wclrtoeol(form->w); in FE_Delete_Word()
2925 myADDNSTR(form->w, s, (int)(s - After_End_Of_Data(s, (int)(ep - s)))); in FE_Delete_Word()
2939 FE_Clear_To_End_Of_Line(FORM *form) in FE_Clear_To_End_Of_Line() argument
2941 T((T_CALLED("FE_Clear_To_End_Of_Line(%p)"), (void *)form)); in FE_Clear_To_End_Of_Line()
2942 wmove(form->w, form->currow, form->curcol); in FE_Clear_To_End_Of_Line()
2943 wclrtoeol(form->w); in FE_Clear_To_End_Of_Line()
2956 FE_Clear_To_End_Of_Field(FORM *form) in FE_Clear_To_End_Of_Field() argument
2958 T((T_CALLED("FE_Clear_To_End_Of_Field(%p)"), (void *)form)); in FE_Clear_To_End_Of_Field()
2959 wmove(form->w, form->currow, form->curcol); in FE_Clear_To_End_Of_Field()
2960 wclrtobot(form->w); in FE_Clear_To_End_Of_Field()
2973 FE_Clear_Field(FORM *form) in FE_Clear_Field() argument
2975 T((T_CALLED("FE_Clear_Field(%p)"), (void *)form)); in FE_Clear_Field()
2976 form->currow = form->curcol = 0; in FE_Clear_Field()
2977 werase(form->w); in FE_Clear_Field()
2997 EM_Overlay_Mode(FORM *form) in EM_Overlay_Mode() argument
2999 T((T_CALLED("EM_Overlay_Mode(%p)"), (void *)form)); in EM_Overlay_Mode()
3000 SetStatus(form, _OVLMODE); in EM_Overlay_Mode()
3013 EM_Insert_Mode(FORM *form) in EM_Insert_Mode() argument
3015 T((T_CALLED("EM_Insert_Mode(%p)"), (void *)form)); in EM_Insert_Mode()
3016 ClrStatus(form, _OVLMODE); in EM_Insert_Mode()
3042 Next_Choice(FORM *form, FIELDTYPE *typ, FIELD *field, TypeArgument *argp) in Next_Choice() argument
3051 Next_Choice(form, typ->left, field, argp->left) || in Next_Choice()
3052 Next_Choice(form, typ->right, field, argp->right)); in Next_Choice()
3059 return typ->enum_next.gnext(form, field, (void *)argp); in Next_Choice()
3083 Previous_Choice(FORM *form, FIELDTYPE *typ, FIELD *field, TypeArgument *argp) in Previous_Choice() argument
3092 Previous_Choice(form, typ->left, field, argp->left) || in Previous_Choice()
3093 Previous_Choice(form, typ->right, field, argp->right)); in Previous_Choice()
3100 return typ->enum_prev.gprev(form, field, (void *)argp); in Previous_Choice()
3127 CR_Next_Choice(FORM *form) in CR_Next_Choice() argument
3129 FIELD *field = form->current; in CR_Next_Choice()
3131 T((T_CALLED("CR_Next_Choice(%p)"), (void *)form)); in CR_Next_Choice()
3132 Synchronize_Buffer(form); in CR_Next_Choice()
3133 returnCode((Next_Choice(form, field->type, field, (TypeArgument *)(field->arg))) in CR_Next_Choice()
3148 CR_Previous_Choice(FORM *form) in CR_Previous_Choice() argument
3150 FIELD *field = form->current; in CR_Previous_Choice()
3152 T((T_CALLED("CR_Previous_Choice(%p)"), (void *)form)); in CR_Previous_Choice()
3153 Synchronize_Buffer(form); in CR_Previous_Choice()
3154 returnCode((Previous_Choice(form, field->type, field, (TypeArgument *)(field->arg))) in CR_Previous_Choice()
3181 Check_Field(FORM *form, FIELDTYPE *typ, FIELD *field, TypeArgument *argp) in Check_Field() argument
3202 Check_Field(form, typ->left, field, argp->left) || in Check_Field()
3203 Check_Field(form, typ->right, field, argp->right)); in Check_Field()
3211 return typ->fieldcheck.gfcheck(form, field, (void *)argp); in Check_Field()
3234 _nc_Internal_Validation(FORM *form) in _nc_Internal_Validation() argument
3238 field = form->current; in _nc_Internal_Validation()
3240 Synchronize_Buffer(form); in _nc_Internal_Validation()
3241 if ((form->status & _FCHECK_REQUIRED) || in _nc_Internal_Validation()
3244 if (!Check_Field(form, field->type, field, (TypeArgument *)(field->arg))) in _nc_Internal_Validation()
3246 ClrStatus(form, _FCHECK_REQUIRED); in _nc_Internal_Validation()
3270 FV_Validation(FORM *form) in FV_Validation() argument
3272 T((T_CALLED("FV_Validation(%p)"), (void *)form)); in FV_Validation()
3273 if (_nc_Internal_Validation(form)) in FV_Validation()
3300 FORM *form = field->form; in Next_Field_On_Page() local
3301 FIELD **field_on_page = &form->field[field->index]; in Next_Field_On_Page()
3302 FIELD **first_on_page = &form->field[form->page[form->curpage].pmin]; in Next_Field_On_Page()
3303 FIELD **last_on_page = &form->field[form->page[form->curpage].pmax]; in Next_Field_On_Page()
3328 _nc_First_Active_Field(FORM *form) in _nc_First_Active_Field() argument
3330 FIELD **last_on_page = &form->field[form->page[form->curpage].pmax]; in _nc_First_Active_Field()
3341 FIELD **field = &form->field[proposed->index]; in _nc_First_Active_Field()
3342 FIELD **first = &form->field[form->page[form->curpage].pmin]; in _nc_First_Active_Field()
3383 FORM *form = field->form; in Previous_Field_On_Page() local
3384 FIELD **field_on_page = &form->field[field->index]; in Previous_Field_On_Page()
3385 FIELD **first_on_page = &form->field[form->page[form->curpage].pmin]; in Previous_Field_On_Page()
3386 FIELD **last_on_page = &form->field[form->page[form->curpage].pmax]; in Previous_Field_On_Page()
3624 Inter_Field_Navigation(int (*const fct) (FORM *), FORM *form) in Inter_Field_Navigation() argument
3628 if (!_nc_Internal_Validation(form)) in Inter_Field_Navigation()
3632 Call_Hook(form, fieldterm); in Inter_Field_Navigation()
3633 res = fct(form); in Inter_Field_Navigation()
3634 Call_Hook(form, fieldinit); in Inter_Field_Navigation()
3649 FN_Next_Field(FORM *form) in FN_Next_Field() argument
3651 T((T_CALLED("FN_Next_Field(%p)"), (void *)form)); in FN_Next_Field()
3652 returnCode(_nc_Set_Current_Field(form, in FN_Next_Field()
3653 Next_Field_On_Page(form->current))); in FN_Next_Field()
3667 FN_Previous_Field(FORM *form) in FN_Previous_Field() argument
3669 T((T_CALLED("FN_Previous_Field(%p)"), (void *)form)); in FN_Previous_Field()
3670 returnCode(_nc_Set_Current_Field(form, in FN_Previous_Field()
3671 Previous_Field_On_Page(form->current))); in FN_Previous_Field()
3684 FN_First_Field(FORM *form) in FN_First_Field() argument
3686 T((T_CALLED("FN_First_Field(%p)"), (void *)form)); in FN_First_Field()
3687 returnCode(_nc_Set_Current_Field(form, in FN_First_Field()
3688 Next_Field_On_Page(form->field[form->page[form->curpage].pmax]))); in FN_First_Field()
3701 FN_Last_Field(FORM *form) in FN_Last_Field() argument
3703 T((T_CALLED("FN_Last_Field(%p)"), (void *)form)); in FN_Last_Field()
3705 _nc_Set_Current_Field(form, in FN_Last_Field()
3706 Previous_Field_On_Page(form->field[form->page[form->curpage].pmin]))); in FN_Last_Field()
3720 FN_Sorted_Next_Field(FORM *form) in FN_Sorted_Next_Field() argument
3722 T((T_CALLED("FN_Sorted_Next_Field(%p)"), (void *)form)); in FN_Sorted_Next_Field()
3723 returnCode(_nc_Set_Current_Field(form, in FN_Sorted_Next_Field()
3724 Sorted_Next_Field(form->current))); in FN_Sorted_Next_Field()
3738 FN_Sorted_Previous_Field(FORM *form) in FN_Sorted_Previous_Field() argument
3740 T((T_CALLED("FN_Sorted_Previous_Field(%p)"), (void *)form)); in FN_Sorted_Previous_Field()
3741 returnCode(_nc_Set_Current_Field(form, in FN_Sorted_Previous_Field()
3742 Sorted_Previous_Field(form->current))); in FN_Sorted_Previous_Field()
3756 FN_Sorted_First_Field(FORM *form) in FN_Sorted_First_Field() argument
3758 T((T_CALLED("FN_Sorted_First_Field(%p)"), (void *)form)); in FN_Sorted_First_Field()
3759 returnCode(_nc_Set_Current_Field(form, in FN_Sorted_First_Field()
3760 Sorted_Next_Field(form->field[form->page[form->curpage].smax]))); in FN_Sorted_First_Field()
3774 FN_Sorted_Last_Field(FORM *form) in FN_Sorted_Last_Field() argument
3776 T((T_CALLED("FN_Sorted_Last_Field(%p)"), (void *)form)); in FN_Sorted_Last_Field()
3777 returnCode(_nc_Set_Current_Field(form, in FN_Sorted_Last_Field()
3778 Sorted_Previous_Field(form->field[form->page[form->curpage].smin]))); in FN_Sorted_Last_Field()
3792 FN_Left_Field(FORM *form) in FN_Left_Field() argument
3794 T((T_CALLED("FN_Left_Field(%p)"), (void *)form)); in FN_Left_Field()
3795 returnCode(_nc_Set_Current_Field(form, in FN_Left_Field()
3796 Left_Neighbor_Field(form->current))); in FN_Left_Field()
3810 FN_Right_Field(FORM *form) in FN_Right_Field() argument
3812 T((T_CALLED("FN_Right_Field(%p)"), (void *)form)); in FN_Right_Field()
3813 returnCode(_nc_Set_Current_Field(form, in FN_Right_Field()
3814 Right_Neighbor_Field(form->current))); in FN_Right_Field()
3830 FN_Up_Field(FORM *form) in FN_Up_Field() argument
3832 T((T_CALLED("FN_Up_Field(%p)"), (void *)form)); in FN_Up_Field()
3833 returnCode(_nc_Set_Current_Field(form, in FN_Up_Field()
3834 Upper_Neighbor_Field(form->current))); in FN_Up_Field()
3850 FN_Down_Field(FORM *form) in FN_Down_Field() argument
3852 T((T_CALLED("FN_Down_Field(%p)"), (void *)form)); in FN_Down_Field()
3853 returnCode(_nc_Set_Current_Field(form, in FN_Down_Field()
3854 Down_Neighbor_Field(form->current))); in FN_Down_Field()
3882 _nc_Set_Form_Page(FORM *form, int page, FIELD *field) in _nc_Set_Form_Page() argument
3886 if ((form->curpage != page)) in _nc_Set_Form_Page()
3890 werase(Get_Form_Window(form)); in _nc_Set_Form_Page()
3891 form->curpage = (short)page; in _nc_Set_Form_Page()
3892 last_field = field_on_page = form->field[form->page[page].smin]; in _nc_Set_Form_Page()
3903 res = _nc_Set_Current_Field(form, field); in _nc_Set_Form_Page()
3909 res = FN_First_Field(form); in _nc_Set_Form_Page()
3925 Next_Page_Number(const FORM *form) in Next_Page_Number() argument
3927 return (form->curpage + 1) % form->maxpage; in Next_Page_Number()
3941 Previous_Page_Number(const FORM *form) in Previous_Page_Number() argument
3943 return (form->curpage != 0 ? form->curpage - 1 : form->maxpage - 1); in Previous_Page_Number()
3967 Page_Navigation(int (*const fct) (FORM *), FORM *form) in Page_Navigation() argument
3971 if (!_nc_Internal_Validation(form)) in Page_Navigation()
3975 Call_Hook(form, fieldterm); in Page_Navigation()
3976 Call_Hook(form, formterm); in Page_Navigation()
3977 res = fct(form); in Page_Navigation()
3978 Call_Hook(form, forminit); in Page_Navigation()
3979 Call_Hook(form, fieldinit); in Page_Navigation()
3994 PN_Next_Page(FORM *form) in PN_Next_Page() argument
3996 T((T_CALLED("PN_Next_Page(%p)"), (void *)form)); in PN_Next_Page()
3997 returnCode(_nc_Set_Form_Page(form, Next_Page_Number(form), (FIELD *)0)); in PN_Next_Page()
4010 PN_Previous_Page(FORM *form) in PN_Previous_Page() argument
4012 T((T_CALLED("PN_Previous_Page(%p)"), (void *)form)); in PN_Previous_Page()
4013 returnCode(_nc_Set_Form_Page(form, Previous_Page_Number(form), (FIELD *)0)); in PN_Previous_Page()
4026 PN_First_Page(FORM *form) in PN_First_Page() argument
4028 T((T_CALLED("PN_First_Page(%p)"), (void *)form)); in PN_First_Page()
4029 returnCode(_nc_Set_Form_Page(form, 0, (FIELD *)0)); in PN_First_Page()
4042 PN_Last_Page(FORM *form) in PN_Last_Page() argument
4044 T((T_CALLED("PN_Last_Page(%p)"), (void *)form)); in PN_Last_Page()
4045 returnCode(_nc_Set_Form_Page(form, form->maxpage - 1, (FIELD *)0)); in PN_Last_Page()
4069 Data_Entry_w(FORM *form, wchar_t c) in Data_Entry_w() argument
4071 FIELD *field = form->current; in Data_Entry_w()
4074 T((T_CALLED("Data_Entry(%p,%s)"), (void *)form, _tracechtype((chtype)c))); in Data_Entry_w()
4088 First_Position_In_Current_Field(form) && in Data_Entry_w()
4089 !(form->status & _FCHECK_REQUIRED) && in Data_Entry_w()
4090 !(form->status & _WINDOW_MODIFIED)) in Data_Entry_w()
4091 werase(form->w); in Data_Entry_w()
4093 if (form->status & _OVLMODE) in Data_Entry_w()
4095 wadd_wch(form->w, &temp_ch); in Data_Entry_w()
4100 bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form); in Data_Entry_w()
4109 wins_wch(form->w, &temp_ch); in Data_Entry_w()
4112 if ((result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form)) == E_OK) in Data_Entry_w()
4114 bool End_Of_Field = (((field->drows - 1) == form->currow) && in Data_Entry_w()
4115 ((field->dcols - 1) == form->curcol)); in Data_Entry_w()
4117 form->status |= _WINDOW_MODIFIED; in Data_Entry_w()
4119 result = Inter_Field_Navigation(FN_Next_Field, form); in Data_Entry_w()
4132 if (WINDOW_EXT(form->w, addch_used) == 0) in Data_Entry_w()
4133 IFN_Next_Character(form); in Data_Entry_w()
4156 Data_Entry(FORM *form, int c) in Data_Entry() argument
4158 FIELD *field = form->current; in Data_Entry()
4161 T((T_CALLED("Data_Entry(%p,%s)"), (void *)form, _tracechtype((chtype)c))); in Data_Entry()
4169 First_Position_In_Current_Field(form) && in Data_Entry()
4170 !(form->status & _FCHECK_REQUIRED) && in Data_Entry()
4171 !(form->status & _WINDOW_MODIFIED)) in Data_Entry()
4172 werase(form->w); in Data_Entry()
4174 if (form->status & _OVLMODE) in Data_Entry()
4176 waddch(form->w, (chtype)c); in Data_Entry()
4181 bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form); in Data_Entry()
4190 winsch(form->w, (chtype)c); in Data_Entry()
4193 if ((result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form)) == E_OK) in Data_Entry()
4195 bool End_Of_Field = (((field->drows - 1) == form->currow) && in Data_Entry()
4196 ((field->dcols - 1) == form->curcol)); in Data_Entry()
4199 move_after_insert = !!(form->curcol in Data_Entry()
4200 - form->begincol in Data_Entry()
4204 SetStatus(form, _WINDOW_MODIFIED); in Data_Entry()
4206 result = Inter_Field_Navigation(FN_Next_Field, form); in Data_Entry()
4220 if (WINDOW_EXT(form->w, addch_used) == 0) in Data_Entry()
4221 IFN_Next_Character(form); in Data_Entry()
4223 IFN_Next_Character(form); in Data_Entry()
4363 form_driver(FORM *form, int c) in form_driver() argument
4370 T((T_CALLED("form_driver(%p,%d)"), (void *)form, c)); in form_driver()
4372 if (!form) in form_driver()
4375 if (!(form->field) || !(form->current)) in form_driver()
4378 assert(form->page); in form_driver()
4382 form->current = _nc_First_Active_Field(form); in form_driver()
4386 assert(form->current && in form_driver()
4387 form->current->buf && in form_driver()
4388 (form->current->form == form) in form_driver()
4391 if (form->status & _IN_DRIVER) in form_driver()
4394 if (!(form->status & _POSTED)) in form_driver()
4430 res = fct(BI->cmd, form); in form_driver()
4434 res = (BI->cmd) (form); in form_driver()
4442 WINDOW *win = form->win ? form->win : StdScreen(Get_Form_Screen(form)); in form_driver()
4443 WINDOW *sub = form->sub ? form->sub : win; in form_driver()
4463 res = form_driver(form, REQ_PREV_FIELD); in form_driver()
4465 res = form_driver(form, REQ_PREV_PAGE); in form_driver()
4467 res = form_driver(form, REQ_FIRST_FIELD); in form_driver()
4474 res = form_driver(form, REQ_NEXT_FIELD); in form_driver()
4476 res = form_driver(form, REQ_NEXT_PAGE); in form_driver()
4478 res = form_driver(form, REQ_LAST_FIELD); in form_driver()
4486 int min_field = form->page[form->curpage].pmin; in form_driver()
4487 int max_field = form->page[form->curpage].pmax; in form_driver()
4492 FIELD *field = form->field[i]; in form_driver()
4497 res = _nc_Set_Current_Field(form, field); in form_driver()
4499 res = _nc_Position_Form_Cursor(form); in form_driver()
4528 Check_Char(form, form->current, form->current->type, c, in form_driver()
4529 (TypeArgument *)(form->current->arg))) in form_driver()
4531 res = Data_Entry(form, c); in form_driver()
4533 _nc_Refresh_Current_Field(form); in form_driver()
4569 form_driver_w(FORM *form, int type, wchar_t c) in form_driver_w() argument
4574 T((T_CALLED("form_driver(%p,%d)"), (void *)form, (int)c)); in form_driver_w()
4576 if (!form) in form_driver_w()
4579 if (!(form->field)) in form_driver_w()
4582 assert(form->page); in form_driver_w()
4586 form->current = _nc_First_Active_Field(form); in form_driver_w()
4590 assert(form->current && in form_driver_w()
4591 form->current->buf && in form_driver_w()
4592 (form->current->form == form) in form_driver_w()
4595 if (form->status & _IN_DRIVER) in form_driver_w()
4598 if (!(form->status & _POSTED)) in form_driver_w()
4634 res = fct(BI->cmd, form); in form_driver_w()
4636 res = (BI->cmd) (form); in form_driver_w()
4643 WINDOW *win = form->win ? form->win : StdScreen(Get_Form_Screen(form)); in form_driver_w()
4644 WINDOW *sub = form->sub ? form->sub : win; in form_driver_w()
4664 res = form_driver(form, REQ_PREV_FIELD); in form_driver_w()
4666 res = form_driver(form, REQ_PREV_PAGE); in form_driver_w()
4668 res = form_driver(form, REQ_FIRST_FIELD); in form_driver_w()
4675 res = form_driver(form, REQ_NEXT_FIELD); in form_driver_w()
4677 res = form_driver(form, REQ_NEXT_PAGE); in form_driver_w()
4679 res = form_driver(form, REQ_LAST_FIELD); in form_driver_w()
4687 int min_field = form->page[form->curpage].pmin; in form_driver_w()
4688 int max_field = form->page[form->curpage].pmax; in form_driver_w()
4693 FIELD *field = form->field[i]; in form_driver_w()
4698 res = _nc_Set_Current_Field(form, field); in form_driver_w()
4700 res = _nc_Position_Form_Cursor(form); in form_driver_w()
4717 res = Data_Entry_w(form, c); in form_driver_w()
4720 _nc_Refresh_Current_Field(form); in form_driver_w()