On Tue, Feb 15, 2011 at 12:51:19AM +0100, Simon Thum wrote: > The attached patches allow to not just parse, but use percent options as > double. It seems this has been the intent, as only one function was > returning int. This makes sense mainly to adjust the newly-added > synaptics noise cancellation in the low percent range. > > Next, don't emit warnings when not marking as used. This lets drivers > check option syntax more flexibly without scaring users.
both merged into my -next, thanks. Cheers, Peter > From a0261fb459f9715c075bc479ba841968ef199450 Mon Sep 17 00:00:00 2001 > From: Simon Thum <simon.t...@gmx.de> > Date: Sun, 6 Feb 2011 19:07:19 +0100 > Subject: [PATCH 1/2] fix percent options parsing > > Signed-off-by: Simon Thum <simon.t...@gmx.de> > --- > hw/xfree86/common/xf86Option.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/hw/xfree86/common/xf86Option.c b/hw/xfree86/common/xf86Option.c > index 16c27e5..455cafa 100644 > --- a/hw/xfree86/common/xf86Option.c > +++ b/hw/xfree86/common/xf86Option.c > @@ -212,7 +212,7 @@ LookupBoolOption(pointer optlist, const char *name, int > deflt, Bool markUsed) > return deflt; > } > > -static int > +static double > LookupPercentOption(pointer optlist, const char *name, double deflt, Bool > markUsed) > { > OptionInfoRec o; > -- > 1.7.3.4 > > From 9c4a8e6dc68c6f5293460e4dba52a2da3148d256 Mon Sep 17 00:00:00 2001 > From: Simon Thum <simon.t...@gmx.de> > Date: Sun, 6 Feb 2011 19:13:00 +0100 > Subject: [PATCH 2/2] xfree86: allow to check for options without warnings in > the log > > This allows set_percent_option in synaptics to work as described, > and should generally enable to check option syntax without log spam. > > Signed-off-by: Simon Thum <simon.t...@gmx.de> > --- > hw/xfree86/common/xf86Option.c | 75 +++++++++++++++++++++++++-------------- > 1 files changed, 48 insertions(+), 27 deletions(-) > > diff --git a/hw/xfree86/common/xf86Option.c b/hw/xfree86/common/xf86Option.c > index 455cafa..480f386 100644 > --- a/hw/xfree86/common/xf86Option.c > +++ b/hw/xfree86/common/xf86Option.c > @@ -496,27 +496,33 @@ ParseOptionValue(int scrnIndex, pointer options, > OptionInfoPtr p, > switch (p->type) { > case OPTV_INTEGER: > if (*s == '\0') { > - xf86DrvMsg(scrnIndex, X_WARNING, > - "Option \"%s\" requires an integer value\n", > - p->name); > + if (markUsed) { > + xf86DrvMsg(scrnIndex, X_WARNING, > + "Option \"%s\" requires an integer value\n", > + p->name); > + } > p->found = FALSE; > } else { > p->value.num = strtoul(s, &end, 0); > if (*end == '\0') { > p->found = TRUE; > } else { > - xf86DrvMsg(scrnIndex, X_WARNING, > - "Option \"%s\" requires an integer value\n", > - p->name); > + if (markUsed) { > + xf86DrvMsg(scrnIndex, X_WARNING, > + "Option \"%s\" requires an integer value\n", > + p->name); > + } > p->found = FALSE; > } > } > break; > case OPTV_STRING: > if (*s == '\0') { > - xf86DrvMsg(scrnIndex, X_WARNING, > - "Option \"%s\" requires an string value\n", > - p->name); > + if (markUsed) { > + xf86DrvMsg(scrnIndex, X_WARNING, > + "Option \"%s\" requires an string value\n", > + p->name); > + } > p->found = FALSE; > } else { > p->value.str = s; > @@ -529,18 +535,22 @@ ParseOptionValue(int scrnIndex, pointer options, > OptionInfoPtr p, > break; > case OPTV_REAL: > if (*s == '\0') { > - xf86DrvMsg(scrnIndex, X_WARNING, > - "Option \"%s\" requires a floating point value\n", > - p->name); > + if (markUsed) { > + xf86DrvMsg(scrnIndex, X_WARNING, > + "Option \"%s\" requires a floating point " > + "value\n", p->name); > + } > p->found = FALSE; > } else { > p->value.realnum = strtod(s, &end); > if (*end == '\0') { > p->found = TRUE; > } else { > - xf86DrvMsg(scrnIndex, X_WARNING, > - "Option \"%s\" requires a floating point value\n", > - p->name); > + if (markUsed) { > + xf86DrvMsg(scrnIndex, X_WARNING, > + "Option \"%s\" requires a floating point " > + "value\n", p->name); > + } > p->found = FALSE; > } > } > @@ -549,8 +559,11 @@ ParseOptionValue(int scrnIndex, pointer options, > OptionInfoPtr p, > if (GetBoolValue(p, s)) { > p->found = TRUE; > } else { > - xf86DrvMsg(scrnIndex, X_WARNING, > - "Option \"%s\" requires a boolean value\n", p->name); > + if (markUsed) { > + xf86DrvMsg(scrnIndex, X_WARNING, > + "Option \"%s\" requires a boolean value\n", > + p->name); > + } > p->found = FALSE; > } > break; > @@ -561,8 +574,10 @@ ParseOptionValue(int scrnIndex, pointer options, > OptionInfoPtr p, > * hence 100 looks the same as 100% to the caller of sccanf > */ > if (sscanf(s, "%lf%c", &p->value.realnum, &tmp) != 2 || tmp != > '%') { > - xf86DrvMsg(scrnIndex, X_WARNING, > + if (markUsed) { > + xf86DrvMsg(scrnIndex, X_WARNING, > "Option \"%s\" requires a percent value\n", > p->name); > + } > p->found = FALSE; > } else { > p->found = TRUE; > @@ -571,9 +586,11 @@ ParseOptionValue(int scrnIndex, pointer options, > OptionInfoPtr p, > break; > case OPTV_FREQ: > if (*s == '\0') { > - xf86DrvMsg(scrnIndex, X_WARNING, > - "Option \"%s\" requires a frequency value\n", > - p->name); > + if (markUsed) { > + xf86DrvMsg(scrnIndex, X_WARNING, > + "Option \"%s\" requires a frequency value\n", > + p->name); > + } > p->found = FALSE; > } else { > double freq = strtod(s, &end); > @@ -590,17 +607,21 @@ ParseOptionValue(int scrnIndex, pointer options, > OptionInfoPtr p, > !xf86NameCmp(end, "M")) > units = 1000000; > else { > - xf86DrvMsg(scrnIndex, X_WARNING, > - "Option \"%s\" requires a frequency value\n", > - p->name); > + if (markUsed) { > + xf86DrvMsg(scrnIndex, X_WARNING, > + "Option \"%s\" requires a frequency value\n", > + p->name); > + } > p->found = FALSE; > } > if (p->found) > freq *= (double)units; > } else { > - xf86DrvMsg(scrnIndex, X_WARNING, > - "Option \"%s\" requires a frequency value\n", > - p->name); > + if (markUsed) { > + xf86DrvMsg(scrnIndex, X_WARNING, > + "Option \"%s\" requires a frequency value\n", > + p->name); > + } > p->found = FALSE; > } > if (p->found) { > -- > 1.7.3.4 > _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel