#include "cursesapp.h"
#include "internal.h"
-MODULE_ID("$Id: cursesf.cc,v 1.9 1999/05/16 17:29:36 juergen Exp $")
+MODULE_ID("$Id: cursesf.cc,v 1.11 2000/06/09 16:15:40 juergen Exp $")
NCursesFormField::~NCursesFormField () {
if (field)
FIELD**
NCursesForm::mapFields(NCursesFormField* nfields[]) {
int fieldCount = 0,lcv;
-
- assert(nfields);
+ FIELD** old_fields;
+
+ assert(nfields != 0);
for (lcv=0; nfields[lcv]->field; ++lcv)
++fieldCount;
my_fields = nfields;
- if (form)
- delete[] ::form_fields(form);
+ if (form && (old_fields = ::form_fields(form))) {
+ ::set_form_fields(form,(FIELD**)0);
+ delete[] old_fields;
+ }
return fields;
}
//
bool UserDefinedFieldType::fcheck(FIELD *f, const void *u) {
NCursesFormField* F = (NCursesFormField*)u;
- assert(F);
+ assert(F != 0);
UserDefinedFieldType* udf = (UserDefinedFieldType*)(F->fieldtype());
- assert(udf);
+ assert(udf != 0);
return udf->field_check(*F);
}
bool UserDefinedFieldType::ccheck(int c, const void *u) {
NCursesFormField* F = (NCursesFormField*)u;
- assert(F);
+ assert(F != 0);
UserDefinedFieldType* udf =
(UserDefinedFieldType*)(F->fieldtype());
- assert(udf);
+ assert(udf != 0);
return udf->char_check(c);
}
bool UserDefinedFieldType_With_Choice::next_choice(FIELD *f, const void *u) {
NCursesFormField* F = (NCursesFormField*)u;
- assert(F);
+ assert(F != 0);
UserDefinedFieldType_With_Choice* udf =
(UserDefinedFieldType_With_Choice*)(F->fieldtype());
- assert(udf);
+ assert(udf != 0);
return udf->next(*F);
}
bool UserDefinedFieldType_With_Choice::prev_choice(FIELD *f, const void *u) {
NCursesFormField* F = (NCursesFormField*)u;
- assert(F);
+ assert(F != 0);
UserDefinedFieldType_With_Choice* udf =
(UserDefinedFieldType_With_Choice*)(F->fieldtype());
- assert(udf);
+ assert(udf != 0);
return udf->previous(*F);
}