On Mon, Mar 14, 2011 at 04:19:24PM -0700, Jason Gerecke wrote: > Have it return true/false to indicate conversion success/failure. > Note that in its current state the function cannot tell if there > was a conversion failure... > > Signed-off-by: Jason Gerecke <killert...@gmail.com> > --- > Changes from v3: > > * Less PEBKAC. (no default needed on our int val...) > > tools/xsetwacom.c | 36 ++++++++++++++++++++++++++++-------- > 1 files changed, 28 insertions(+), 8 deletions(-) > > diff --git a/tools/xsetwacom.c b/tools/xsetwacom.c > index bb120c0..aa95538 100644 > --- a/tools/xsetwacom.c > +++ b/tools/xsetwacom.c > @@ -1423,18 +1423,29 @@ error: > return; > } > > -static int convert_value_from_user(param_t *param, char *value) > -{ > - int val; > > +/** > + * Performs intelligent string->int conversion. In addition to converting > strings > + * of digits into their corresponding integer values, it converts special > string > + * constants such as "off" (0) and "on" (1). > + * > + * The caller is expected to allocate and free memory for return_value. > + * > + * @param param the property paramaters > + * @param value the string to be converted > + * @param[out] return_value the integer representation of the 'value' > parameter > + * @return TRUE if the conversion succeeded, FALSE otherwise > + */ > +static Bool convert_value_from_user(param_t *param, char *value, int > *return_value) > +{ > if ((param->prop_flags & PROP_FLAG_BOOLEAN) && strcmp(value, "off") == > 0) > - val = 0; > + *return_value = 0; > else if ((param->prop_flags & PROP_FLAG_BOOLEAN) && strcmp(value, "on") > == 0) > - val = 1; > + *return_value = 1; > else > - val = atoi(value); > + *return_value = atoi(value); > > - return val; > + return True; > } > > static void set(Display *dpy, int argc, char **argv) > @@ -1510,7 +1521,16 @@ static void set(Display *dpy, int argc, char **argv) > > for (i = 0; i < nvals; i++) > { > - val = convert_value_from_user(param, values[i]); > + Bool success; > + int val;
xsetwacom.c: In function ‘set’: xsetwacom.c:1474:9: warning: unused variable ‘val’ squashed the removal of the other val into this commit. merged, thanks. Cheers, Peter > + > + success = convert_value_from_user(param, values[i], &val); > + if (!success) > + { > + fprintf(stderr, "'%s' is not a valid value for the '%s' > property.\n", > + values[i], param->name); > + goto out; > + } > > switch(param->prop_format) > { > -- > 1.7.1 ------------------------------------------------------------------------------ Colocation vs. Managed Hosting A question and answer guide to determining the best fit for your organization - today and in the future. http://p.sf.net/sfu/internap-sfd2d _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel