X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=form%2Ffrm_driver.c;h=ad82643ed2f7c1cfbd86e512f629f9d7cc3fed4a;hb=a6eb34d7fec8170a8715f9e53ca2f96452dd30dd;hp=9d0b7d3e7f29706edc972efd48ffa4d505ca2adc;hpb=093902b4199bbc1d9afec433759e48344c06ed1a;p=ncurses.git diff --git a/form/frm_driver.c b/form/frm_driver.c index 9d0b7d3e..ad82643e 100644 --- a/form/frm_driver.c +++ b/form/frm_driver.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. * + * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -32,7 +33,7 @@ #include "form.priv.h" -MODULE_ID("$Id: frm_driver.c,v 1.127 2018/09/08 19:03:39 tom Exp $") +MODULE_ID("$Id: frm_driver.c,v 1.133 2020/12/12 00:36:42 tom Exp $") /*---------------------------------------------------------------------------- This is the core module of the form library. It contains the majority @@ -130,34 +131,34 @@ static int FE_Delete_Previous(FORM *); /* Calculate the position of a single row in a field buffer */ #define Position_Of_Row_In_Buffer(field,row) ((row)*(field)->dcols) -/* Calculate start address for the fields buffer# N */ +/* Calculate start address for the field's buffer# N */ #define Address_Of_Nth_Buffer(field,N) \ ((field)->buf + (N)*(1+Buffer_Length(field))) -/* Calculate the start address of the row in the fields specified buffer# N */ +/* Calculate the start address of the row in the field's specified buffer# N */ #define Address_Of_Row_In_Nth_Buffer(field,N,row) \ (Address_Of_Nth_Buffer(field,N) + Position_Of_Row_In_Buffer(field,row)) -/* Calculate the start address of the row in the fields primary buffer */ +/* Calculate the start address of the row in the field's primary buffer */ #define Address_Of_Row_In_Buffer(field,row) \ Address_Of_Row_In_Nth_Buffer(field,0,row) -/* Calculate the start address of the row in the forms current field +/* Calculate the start address of the row in the form's current field buffer# N */ #define Address_Of_Current_Row_In_Nth_Buffer(form,N) \ Address_Of_Row_In_Nth_Buffer((form)->current,N,(form)->currow) -/* Calculate the start address of the row in the forms current field +/* Calculate the start address of the row in the form's current field primary buffer */ #define Address_Of_Current_Row_In_Buffer(form) \ Address_Of_Current_Row_In_Nth_Buffer(form,0) -/* Calculate the address of the cursor in the forms current field +/* Calculate the address of the cursor in the form's current field primary buffer */ #define Address_Of_Current_Position_In_Nth_Buffer(form,N) \ (Address_Of_Current_Row_In_Nth_Buffer(form,N) + (form)->curcol) -/* Calculate the address of the cursor in the forms current field +/* Calculate the address of the cursor in the form's current field buffer# N */ #define Address_Of_Current_Position_In_Buffer(form) \ Address_Of_Current_Position_In_Nth_Buffer(form,0) @@ -186,7 +187,7 @@ static int FE_Delete_Previous(FORM *); /* Logic to determine whether or not a dynamic field may still grow */ #define Growable(field) ((field)->status & _MAY_GROW) -/* Macro to set the attributes for a fields window */ +/* Macro to set the attributes for a field's window */ #define Set_Field_Window_Attributes(field,win) \ ( wbkgdset((win),(chtype)((chtype)((field)->pad) | (field)->back)), \ (void) wattrset((win), (int)(field)->fore) ) @@ -547,7 +548,7 @@ Buffer_To_Window(const FIELD *field, WINDOW *win) | | Return Values : - +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(void) +FORM_EXPORT(void) _nc_get_fieldbuffer(FORM *form, FIELD *field, FIELD_CELL *buf) { int pad; @@ -825,7 +826,7 @@ Field_encloses(FIELD *field, int ry, int rx) | E_SYSTEM_ERROR - form has no current field or | field-window +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(int) +FORM_EXPORT(int) _nc_Position_Form_Cursor(FORM *form) { FIELD *field; @@ -859,15 +860,15 @@ _nc_Position_Form_Cursor(FORM *form) | Facility : libnform | Function : int _nc_Refresh_Current_Field(FORM * form) | -| Description : Propagate the changes in the fields window to the +| Description : Propagate the changes in the field's window to the | window of the form. | | Return Values : E_OK - on success | E_BAD_ARGUMENT - invalid form pointer | E_SYSTEM_ERROR - general error +--------------------------------------------------------------------------*/ -static bool move_after_insert = true; -NCURSES_EXPORT(int) +static bool move_after_insert = TRUE; +FORM_EXPORT(int) _nc_Refresh_Current_Field(FORM *form) { WINDOW *formwin; @@ -1262,7 +1263,7 @@ Synchronize_Linked_Fields(FIELD *field) | Facility : libnform | Function : int _nc_Synchronize_Attributes(FIELD * field) | -| Description : If a fields visual attributes have changed, this +| Description : If a field's visual attributes have changed, this | routine is called to propagate those changes to the | screen. | @@ -1270,7 +1271,7 @@ Synchronize_Linked_Fields(FIELD *field) | E_BAD_ARGUMENT - invalid field pointer | E_SYSTEM_ERROR - some severe basic error +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(int) +FORM_EXPORT(int) _nc_Synchronize_Attributes(FIELD *field) { FORM *form; @@ -1328,7 +1329,7 @@ _nc_Synchronize_Attributes(FIELD *field) | Function : int _nc_Synchronize_Options(FIELD * field, | Field_Options newopts) | -| Description : If a fields options have changed, this routine is +| Description : If a field's options have changed, this routine is | called to propagate these changes to the screen and | to really change the behavior of the field. | @@ -1337,7 +1338,7 @@ _nc_Synchronize_Attributes(FIELD *field) | E_CURRENT - field is the current one | E_SYSTEM_ERROR - some severe basic error +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(int) +FORM_EXPORT(int) _nc_Synchronize_Options(FIELD *field, Field_Options newopts) { Field_Options oldopts; @@ -1490,7 +1491,7 @@ _nc_Unset_Current_Field(FORM *form) | E_SYSTEM_ERROR - some severe basic error | E_NOT_CONNECTED - no fields are connected to the form +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(int) +FORM_EXPORT(int) _nc_Set_Current_Field(FORM *form, FIELD *newfield) { FIELD *field; @@ -3224,7 +3225,7 @@ Check_Field(FORM *form, FIELDTYPE *typ, FIELD *field, TypeArgument *argp) | Return Values : TRUE - field is valid | FALSE - field is invalid +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(bool) +FORM_EXPORT(bool) _nc_Internal_Validation(FORM *form) { FIELD *field; @@ -3283,7 +3284,7 @@ FV_Validation(FORM *form) | | Description : Get the next field after the given field on the current | page. The order of fields is the one defined by the -| fields array. Only visible and active fields are +| field's array. Only visible and active fields are | counted. | | Return Values : Pointer to the next field. @@ -3318,7 +3319,7 @@ Next_Field_On_Page(FIELD *field) | | Return Values : Pointer to calculated field. +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(FIELD *) +FORM_EXPORT(FIELD *) _nc_First_Active_Field(FORM *form) { FIELD **last_on_page = &form->field[form->page[form->curpage].pmax]; @@ -3366,7 +3367,7 @@ _nc_First_Active_Field(FORM *form) | | Description : Get the previous field before the given field on the | current page. The order of fields is the one defined by -| the fields array. Only visible and active fields are +| the field's array. Only visible and active fields are | counted. | | Return Values : Pointer to the previous field. @@ -3500,10 +3501,10 @@ Right_Neighbor_Field(FIELD *field) | Function : static FIELD *Upper_Neighbor_Field(FIELD * field) | | Description : Because of the row-major nature of sorting the fields, -| it is more difficult to define whats the upper neighbor +| it is more difficult to define what the upper neighbor | field really means. We define that it must be on a | 'previous' line (cyclic order!) and is the rightmost -| field laying on the left side of the given field. If +| field lying on the left side of the given field. If | this set is empty, we take the first field on the line. | | Return Values : Pointer to the upper neighbor field. @@ -3550,7 +3551,7 @@ Upper_Neighbor_Field(FIELD *field) | Function : static FIELD *Down_Neighbor_Field(FIELD * field) | | Description : Because of the row-major nature of sorting the fields, -| its more difficult to define whats the down neighbor +| it's more difficult to define what the down neighbor | field really means. We define that it must be on a | 'next' line (cyclic order!) and is the leftmost | field laying on the right side of the given field. If @@ -3872,7 +3873,7 @@ FN_Down_Field(FORM *form) | E_BAD_ARGUMENT - invalid field pointer | E_SYSTEM_ERROR - some severe basic error +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(int) +FORM_EXPORT(int) _nc_Set_Form_Page(FORM *form, int page, FIELD *field) { int res = E_OK; @@ -3951,7 +3952,7 @@ Previous_Page_Number(const FORM *form) | that the field is left and a new field is entered. | So the field must be validated and the field init/term | hooks must be called. Because also the page is changed, -| the forms init/term hooks must be called also. +| the form's init/term hooks must be called also. | | Return Values : E_OK - success | E_INVALID_FIELD - field is invalid @@ -4353,13 +4354,13 @@ static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] = | E_NOT_CONNECTED - no fields are connected to the form | E_UNKNOWN_COMMAND - command not known +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(int) +FORM_EXPORT(int) form_driver(FORM *form, int c) { - const Binding_Info *BI = (Binding_Info *) 0; + const Binding_Info *BI = (Binding_Info *)0; int res = E_UNKNOWN_COMMAND; - move_after_insert = true; + move_after_insert = TRUE; T((T_CALLED("form_driver(%p,%d)"), (void *)form, c)); @@ -4411,7 +4412,7 @@ form_driver(FORM *form, int c) NULL /* Choice Request is generic */ }; size_t nMethods = (sizeof(Generic_Methods) / sizeof(Generic_Methods[0])); - size_t method = (size_t) ((BI->keycode >> ID_Shft) & 0xffff); /* see ID_Mask */ + size_t method = (size_t)((BI->keycode >> ID_Shft) & 0xffff); /* see ID_Mask */ if ((method >= nMethods) || !(BI->cmd)) res = E_SYSTEM_ERROR; @@ -4560,10 +4561,10 @@ form_driver(FORM *form, int c) | E_NOT_CONNECTED - no fields are connected to the form | E_UNKNOWN_COMMAND - command not known +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(int) +FORM_EXPORT(int) form_driver_w(FORM *form, int type, wchar_t c) { - const Binding_Info *BI = (Binding_Info *) 0; + const Binding_Info *BI = (Binding_Info *)0; int res = E_UNKNOWN_COMMAND; T((T_CALLED("form_driver(%p,%d)"), (void *)form, (int)c)); @@ -4617,7 +4618,7 @@ form_driver_w(FORM *form, int type, wchar_t c) NULL /* Choice Request is generic */ }; size_t nMethods = (sizeof(Generic_Methods) / sizeof(Generic_Methods[0])); - size_t method = (size_t) (BI->keycode >> ID_Shft) & 0xffff; /* see ID_Mask */ + size_t method = (size_t)(BI->keycode >> ID_Shft) & 0xffff; /* see ID_Mask */ if ((method >= nMethods) || !(BI->cmd)) res = E_SYSTEM_ERROR; @@ -4735,14 +4736,14 @@ form_driver_w(FORM *form, int type, wchar_t c) | For dynamic fields this may grow the fieldbuffers if | the length of the value exceeds the current buffer | length. For buffer 0 only printable values are allowed. -| For static fields, the value needs not to be zero ter- -| minated. It is copied up to the length of the buffer. +| For static fields, the value must not be zero terminated. +| It is copied up to the length of the buffer. | | Return Values : E_OK - success | E_BAD_ARGUMENT - invalid argument | E_SYSTEM_ERROR - system error +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(int) +FORM_EXPORT(int) set_field_buffer(FIELD *field, int buffer, const char *value) { FIELD_CELL *p; @@ -4859,7 +4860,7 @@ set_field_buffer(FIELD *field, int buffer, const char *value) | | Return Values : Pointer to buffer or NULL if arguments were invalid. +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(char *) +FORM_EXPORT(char *) field_buffer(const FIELD *field, int buffer) { char *result = 0; @@ -4927,7 +4928,7 @@ field_buffer(const FIELD *field, int buffer) | Convert a multibyte string to a wide-character string. The result must be | freed by the caller. +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(wchar_t *) +FORM_EXPORT(wchar_t *) _nc_Widen_String(char *source, int *lengthp) { wchar_t *result = 0; @@ -4971,7 +4972,7 @@ _nc_Widen_String(char *source, int *lengthp) { result[need] = wch; } - passed += (size_t) status; + passed += (size_t)status; ++need; } else