From: Zoran V. <vas...@us...> - 2007-10-24 20:31:01
|
Update of /cvsroot/naviserver/modules/nsconfigrw In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv4534 Modified Files: configrw.c Log Message: Added BoolType and dropped StrType in favour of UnknownType. Coonversion of types is: Unknown from/to any. No auto-conversion between int and bool params. Index: configrw.c =================================================================== RCS file: /cvsroot/naviserver/modules/nsconfigrw/configrw.c,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** configrw.c 24 Oct 2007 18:37:36 -0000 1.24 --- configrw.c 24 Oct 2007 20:30:59 -0000 1.25 *************** *** 71,75 **** typedef enum { UnknownType, ! StrType, IntType } ParamType; --- 71,75 ---- typedef enum { UnknownType, ! BoolType, IntType } ParamType; *************** *** 179,183 **** if (def != NULL) { ! defpar.type = StrType; defpar.value = (char *) def; defpar.size = strlen(def); --- 179,183 ---- if (def != NULL) { ! defpar.type = UnknownType; defpar.value = (char *) def; defpar.size = strlen(def); *************** *** 226,230 **** if (def != NULL) { ! defpar.type = IntType; defpar.intval = (*def != 0); defPtr = &defpar; --- 226,230 ---- if (def != NULL) { ! defpar.type = BoolType; defpar.intval = (*def != 0); defPtr = &defpar; *************** *** 360,364 **** Param param; ! param.type = StrType; param.value = value; param.size = strlen(param.value); --- 360,364 ---- Param param; ! param.type = UnknownType; param.value = value; param.size = strlen(param.value); *************** *** 415,420 **** Param param; ! param.type = IntType; ! param.intval = value != 0; CfgSet(section, key, ¶m); } --- 415,420 ---- Param param; ! param.type = BoolType; ! param.intval = (value != 0); CfgSet(section, key, ¶m); } *************** *** 864,868 **** GetStringFromParam(Param *param, char **value, int *size) { ! if (param->type != StrType) { char buf[TCL_INTEGER_SPACE]; int nbytes; --- 864,868 ---- GetStringFromParam(Param *param, char **value, int *size) { ! if (param->type != UnknownType) { char buf[TCL_INTEGER_SPACE]; int nbytes; *************** *** 879,883 **** *(param->value + nbytes) = 0; param->size = nbytes; ! param->type = StrType; } --- 879,883 ---- *(param->value + nbytes) = 0; param->size = nbytes; ! param->type = UnknownType; } *************** *** 908,918 **** GetBoolFromParam(Param *param, int *result) { ! if (param->type != IntType) { if (Tcl_GetBoolean(NULL, param->value, ¶m->intval) != TCL_OK) { return NS_ERROR; } ! param->type = IntType; } ! *result = param->intval; --- 908,920 ---- GetBoolFromParam(Param *param, int *result) { ! if (param->type == UnknownType) { if (Tcl_GetBoolean(NULL, param->value, ¶m->intval) != TCL_OK) { return NS_ERROR; } ! param->type = BoolType; ! } else if (param->type != BoolType) { ! return NS_ERROR; } ! *result = param->intval; *************** *** 940,948 **** GetIntFromParam(Param *param, int *result) { ! if (param->type != IntType) { if (Tcl_GetInt(NULL, param->value, ¶m->intval) != TCL_OK) { return NS_ERROR; } param->type = IntType; } --- 942,952 ---- GetIntFromParam(Param *param, int *result) { ! if (param->type == UnknownType) { if (Tcl_GetInt(NULL, param->value, ¶m->intval) != TCL_OK) { return NS_ERROR; } param->type = IntType; + } else if (param->type != IntType) { + return NS_ERROR; } *************** *** 975,979 **** dest->type = src->type; ! if (src->type == IntType) { dest->intval = src->intval; } else { --- 979,983 ---- dest->type = src->type; ! if (src->type == IntType || src->type == BoolType) { dest->intval = src->intval; } else { |