On 14 January 2011 c. 03:00:30 Ted Unangst wrote:
> On Thu, Jan 13, 2011 at 8:48 AM, Vadim Zhukov <persg...@gmail.com> wrote:
> >                case 'S':
> > -                       sectorsize = strtonum(optarg, 1, INT_MAX,
&errstr);
> > -                       if (errstr)
> > -                               fatal("sector size is %s: %s", errstr,
optarg);
> > +                       if (scan_scaled(optarg, &sectorsize) == -1 ||
> > +                           sectorsize <= 0 || sectorsize > INT_MAX)
> > +                               fatal("sector size: %s: %s",
strerror(errno),
> > +                                   optarg);
>
> I don't think we need this.  There aren't many choices, and all of
> them are small numbers people know how to type.

OK. I just tried to save as much old behaviour as I can. :)

> >                case 's':
> > +                       /*
> > +                        * We need to save scaled and unscaled value
separately
> > +                        * because unscaled is not representing bytes.
> > +                        */
> > +                       fssize_scaled = -1;   /* in case of multiple -s
*/
> >                        fssize = strtonum(optarg, 1, LLONG_MAX, &errstr);
> > -                       if (errstr)
> > -                               fatal("file system size is %s: %s",
> > -                                   errstr, optarg);
> > +                       if (!errstr)
> > +                               break;
> > +                       if (strcmp(errstr, "invalid") ||
> > +                           scan_scaled(optarg, &fssize_scaled) == -1 ||
> > +                           fssize_scaled <= 0)
> > +                               fatal("file system size is %s: %s",
errstr, optarg);
>
> This is definite strtonum abuse.  I'd prefer to see something that
> tries a little harder to call the right function.

Me too.

> Also, things get a little slippery because you're leaving this block
> of code with only one variable set properly.  Get the right value into
> fssize before leaving the case statement.

Fixed version will be in a few minutes in another mail.

--
  Best wishes,
    Vadim Zhukov

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?

Reply via email to