Message ID | 1421118039-8075-1-git-send-email-han.lu@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
At Tue, 13 Jan 2015 11:00:38 +0800, han.lu@intel.com wrote: > > From: "Lu, Han" <han.lu@intel.com> > > Signed-off-by: Lu, Han <han.lu@intel.com> Looks good to me. Liam, any objection for this extension? thanks, Takashi > > diff --git a/src/control/ctlparse.c b/src/control/ctlparse.c > index 978977d..acaf734 100644 > --- a/src/control/ctlparse.c > +++ b/src/control/ctlparse.c > @@ -59,10 +59,10 @@ static long get_integer(const char **ptr, long min, long max) > goto out; > > s = p; > - val = strtol(s, &p, 10); > + val = strtol(s, &p, 0); > if (*p == '.') { > p++; > - strtol(p, &p, 10); > + strtol(p, &p, 0); > } > if (*p == '%') { > val = (long)convert_prange1(strtod(s, NULL), min, max); > @@ -87,10 +87,10 @@ static long long get_integer64(const char **ptr, long long min, long long max) > goto out; > > s = p; > - val = strtol(s, &p, 10); > + val = strtol(s, &p, 0); > if (*p == '.') { > p++; > - strtol(p, &p, 10); > + strtol(p, &p, 0); > } > if (*p == '%') { > val = (long long)convert_prange1(strtod(s, NULL), min, max); > -- > 2.1.0 >
On Tue, 2015-01-13 at 17:53 +0100, Takashi Iwai wrote: > At Tue, 13 Jan 2015 11:00:38 +0800, > han.lu@intel.com wrote: > > > > From: "Lu, Han" <han.lu@intel.com> > > > > Signed-off-by: Lu, Han <han.lu@intel.com> > > Looks good to me. Liam, any objection for this extension? > Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> > > thanks, > > Takashi > > > > > diff --git a/src/control/ctlparse.c b/src/control/ctlparse.c > > index 978977d..acaf734 100644 > > --- a/src/control/ctlparse.c > > +++ b/src/control/ctlparse.c > > @@ -59,10 +59,10 @@ static long get_integer(const char **ptr, long min, long max) > > goto out; > > > > s = p; > > - val = strtol(s, &p, 10); > > + val = strtol(s, &p, 0); > > if (*p == '.') { > > p++; > > - strtol(p, &p, 10); > > + strtol(p, &p, 0); > > } > > if (*p == '%') { > > val = (long)convert_prange1(strtod(s, NULL), min, max); > > @@ -87,10 +87,10 @@ static long long get_integer64(const char **ptr, long long min, long long max) > > goto out; > > > > s = p; > > - val = strtol(s, &p, 10); > > + val = strtol(s, &p, 0); > > if (*p == '.') { > > p++; > > - strtol(p, &p, 10); > > + strtol(p, &p, 0); > > } > > if (*p == '%') { > > val = (long long)convert_prange1(strtod(s, NULL), min, max); > > -- > > 2.1.0 > >
At Tue, 13 Jan 2015 17:53:14 +0100, Takashi Iwai wrote: > > At Tue, 13 Jan 2015 11:00:38 +0800, > han.lu@intel.com wrote: > > > > From: "Lu, Han" <han.lu@intel.com> > > > > Signed-off-by: Lu, Han <han.lu@intel.com> > > Looks good to me. Liam, any objection for this extension? Erm, sorry, I correct my statement: this is buggy. Look at the code: > > - val = strtol(s, &p, 10); > > + val = strtol(s, &p, 0); > > if (*p == '.') { > > p++; > > - strtol(p, &p, 10); > > + strtol(p, &p, 0); The second strtol() is for skipping the decimals. So this has to be 10-based. That is, use zero-base only for the first strtol(). Takashi
> -----Original Message----- > From: Takashi Iwai [mailto:tiwai@suse.de] > Sent: Wednesday, January 14, 2015 4:02 AM > To: Takashi Iwai > Cc: Lu, Han; Liam Girdwood; alsa-devel@alsa-project.org > Subject: Re: [PATCH - UCM 1/2] control: enable octal and hexadecimal parse > > At Tue, 13 Jan 2015 17:53:14 +0100, > Takashi Iwai wrote: > > > > At Tue, 13 Jan 2015 11:00:38 +0800, > > han.lu@intel.com wrote: > > > > > > From: "Lu, Han" <han.lu@intel.com> > > > > > > Signed-off-by: Lu, Han <han.lu@intel.com> > > > > Looks good to me. Liam, any objection for this extension? > > Erm, sorry, I correct my statement: this is buggy. Look at the code: > > > > - val = strtol(s, &p, 10); > > > + val = strtol(s, &p, 0); > > > if (*p == '.') { > > > p++; > > > - strtol(p, &p, 10); > > > + strtol(p, &p, 0); > > The second strtol() is for skipping the decimals. So this has to be 10-based. > That is, use zero-base only for the first strtol(). > Yes. I thought of skipping hexadecimal, but string begin with ".0x" looks not reasonable, and string begin with ".0" will not be skipped as expected with this patch. I have removed the second change and resend the patch. Please review, Thanks. BR, Han Lu > > Takashi
diff --git a/src/control/ctlparse.c b/src/control/ctlparse.c index 978977d..acaf734 100644 --- a/src/control/ctlparse.c +++ b/src/control/ctlparse.c @@ -59,10 +59,10 @@ static long get_integer(const char **ptr, long min, long max) goto out; s = p; - val = strtol(s, &p, 10); + val = strtol(s, &p, 0); if (*p == '.') { p++; - strtol(p, &p, 10); + strtol(p, &p, 0); } if (*p == '%') { val = (long)convert_prange1(strtod(s, NULL), min, max); @@ -87,10 +87,10 @@ static long long get_integer64(const char **ptr, long long min, long long max) goto out; s = p; - val = strtol(s, &p, 10); + val = strtol(s, &p, 0); if (*p == '.') { p++; - strtol(p, &p, 10); + strtol(p, &p, 0); } if (*p == '%') { val = (long long)convert_prange1(strtod(s, NULL), min, max);