]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - form/fty_generic.c
ncurses 6.2 - patch 20210814
[ncurses.git] / form / fty_generic.c
index 159d30596dbb37210906081c30b01e1730c28fcc..301c80a1f07aa6befea5810b96554bfaba915817 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright 2018,2020 Thomas E. Dickey                                     *
+ * Copyright 2018-2020,2021 Thomas E. Dickey                                *
  * Copyright 2008-2012,2016 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fty_generic.c,v 1.10 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: fty_generic.c,v 1.15 2021/03/27 23:49:53 tom Exp $")
 
 /*
  * This is not a full implementation of a field type, but adds some
  * support for higher level languages with some restrictions to interop
- * with C language. Especially the collection of arguments for the
+ * with C language. In particular, the collection of arguments for the
  * various fieldtypes is not based on the vararg C mechanism, but on a
- * iterator based callback mechanism that allowes the high level language
+ * iterator based callback mechanism that allows the high level language
  * to provide the arguments as a structure. Most languages have mechanisms
  * to layout structures so that they can be passed to C.
+ *
  * The languages can register a new generic fieldtype dynamically and store
  * a handle (key) to the calling object as an argument. Together with that
  * it can register a freearg callback, so that the high level language
  * remains in control of the memory management of the arguments they pass.
  * The design idea is, that the high-level language - typically a OO
- * language like C# or Java, uses it's own dispatching mechanisms
+ * language like C# or Java, uses its own dispatching mechanisms
  * (polymorphism) to call the proper check routines responsible for the
  * argument type. So these language implement typically only one generic
  * fieldtype they register with the forms library using this call.
  *
- * For that purpose we have extended the fieldtype struc by a new element
+ * For that purpose we have extended the fieldtype structure by a new element
  * that gets the arguments from a single struct passed by the caller.
  *
  */
@@ -99,7 +100,7 @@ Generic_This_Type(void *arg)
 |
 |   Return Values :  Fieldtype pointer or NULL if error occurred
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELDTYPE *)
+FORM_EXPORT(FIELDTYPE *)
 _nc_generic_fieldtype(bool (*const field_check) (FORM *, FIELD *, const void *),
                      bool (*const char_check) (int, FORM *, FIELD *, const
                                                void *),
@@ -220,7 +221,7 @@ GenericArgument(const FIELDTYPE *typ,
 |   Return Values :  E_OK if all went well
 |                    E_SYSTEM_ERROR if an error occurred
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
+FORM_EXPORT(int)
 _nc_set_generic_fieldtype(FIELD *field,
                          FIELDTYPE *ftyp,
                          int (*argiterator) (void **))
@@ -273,15 +274,15 @@ _nc_set_generic_fieldtype(FIELD *field,
 |   Description   :  Get the current position of the form cursor position
 |                    We also return the field window
 |
-|   Return Values :  The fields Window or NULL on error
+|   Return Values :  The field's Window or NULL on error
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(WINDOW *)
+FORM_EXPORT(WINDOW *)
 _nc_form_cursor(const FORM *form, int *pRow, int *pCol)
 {
   int code = E_SYSTEM_ERROR;
   WINDOW *res = (WINDOW *)0;
 
-  if (!(form == 0 || pRow == 0 || pCol == 0))
+  if (form != 0 && pRow != 0 && pCol != 0)
     {
       *pRow = form->currow;
       *pCol = form->curcol;