X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=test%2Fmove_field.c;h=8344c56f8c14ed62ea273024fe3e9048fcfe07cf;hb=a6eb34d7fec8170a8715f9e53ca2f96452dd30dd;hp=7681225bf9882d8c1e97c0f0ed512de14c929f98;hpb=f3ec084eb66ba14feb6357b674fb85dd474933d8;p=ncurses.git diff --git a/test/move_field.c b/test/move_field.c index 7681225b..8344c56f 100644 --- a/test/move_field.c +++ b/test/move_field.c @@ -26,7 +26,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: move_field.c,v 1.5 2020/03/21 22:04:03 tom Exp $ + * $Id: move_field.c,v 1.7 2020/05/09 12:52:00 tom Exp $ * * Demonstrate move_field(). */ @@ -38,6 +38,14 @@ #include #include +#ifdef HAVE_NETBSD_FORM_H +#define form_field_row(field) (field)->form_row +#define form_field_col(field) (field)->form_col +#else /* e.g., SVr4, ncurses */ +#define form_field_row(field) (field)->frow +#define form_field_col(field) (field)->fcol +#endif + #define DO_DEMO CTRL('F') /* actual key for toggling demo-mode */ #define MY_DEMO EDIT_FIELD('f') /* internal request-code */ @@ -269,7 +277,7 @@ my_edit_field(FORM *form, int *result) } static FIELD ** -copy_fields(FIELD **source, int length) +copy_fields(FIELD **source, size_t length) { FIELD **target = calloc(length + 1, sizeof(FIELD *)); memcpy(target, source, length * sizeof(FIELD *)); @@ -286,8 +294,8 @@ show_status(FORM *form, FIELD *field) getyx(stdscr, currow, curcol); mvprintw(LINES - 1, 0, "Field at [%d,%d]. Press %s to quit moving.", - getbegy(sub) + field->frow, - getbegx(sub) + field->fcol, + getbegy(sub) + form_field_row(field), + getbegx(sub) + form_field_col(field), keyname(DO_DEMO)); clrtobot(); move(currow, curcol); @@ -305,8 +313,9 @@ do_demo(FORM *form) FIELD *my_field = current_field(form); if (count > 0 && my_field != NULL) { - FIELD **old_fields = copy_fields(form_fields(form), count); - FIELD **new_fields = copy_fields(form_fields(form), count); + size_t needed = (size_t) count; + FIELD **old_fields = copy_fields(form_fields(form), needed); + FIELD **new_fields = copy_fields(form_fields(form), needed); int ch; if (old_fields != NULL && new_fields != NULL) { @@ -331,8 +340,8 @@ do_demo(FORM *form) show_status(form, my_field); ch = '?'; while ((ch = wgetch(form_win(form))) != DO_DEMO) { - int field_y = my_field->frow; - int field_x = my_field->fcol; + int field_y = form_field_row(my_field); + int field_x = form_field_col(my_field); switch (ch) { case 'h':