set the value for a P_ENUM
***************************************************************************/
-static void lp_set_enum_parm( struct parm_struct *parm, const char *pszParmValue,
+static bool lp_set_enum_parm( struct parm_struct *parm, const char *pszParmValue,
int *ptr )
{
int i;
for (i = 0; parm->enum_list[i].name; i++) {
if ( strequal(pszParmValue, parm->enum_list[i].name)) {
*ptr = parm->enum_list[i].value;
- return;
+ return true;
}
}
DEBUG(0, ("WARNING: Ignoring invalid value '%s' for parameter '%s'\n",
pszParmValue, parm->label));
+ return false;
}
/***************************************************************************
if ( parm_num == -1 )
parm_num = lpcfg_map_parameter( "printing" );
- lp_set_enum_parm( &parm_table[parm_num], pszParmValue, (int*)ptr );
+ if (!lp_set_enum_parm(&parm_table[parm_num], pszParmValue, (int*)ptr)) {
+ return false;
+ }
if ( snum < 0 ) {
s = &sDefault;
break;
}
case P_ENUM:
- lp_set_enum_parm( &parm_table[parmnum], pszParmValue, (int*)parm_ptr );
+ if (!lp_set_enum_parm(&parm_table[parmnum], pszParmValue, (int*)parm_ptr)) {
+ return false;
+ }
break;
case P_SEP:
break;