On Thursday 18 October 2018 09:03:27 Giuseppe Bilotta wrote: > Hello, > > On Thu, Apr 12, 2018 at 8:53 PM Pali Rohár <pali.ro...@gmail.com> wrote: > > - if (++i >= argc) argerr ("%s requires an argument\n", > > argv[i-1]); > > + if (++i >= argc || !argv[i][0]) argerr ("%s requires an > > argument\n", argv[i-1]); > > I don't think this change is necessary, if arg[i][0] is NULL it means > there _was_ an argument, but it was empty. Getting different error > messages from `xrandr --dpi ''` and `xrandr --dpi ' '` doesn't seem > like a good idea to me.
strtod() does not signal error for empty string argument: char *endptr = NULL; double ret; errno = 0; ret = strtod("", &endptr); printf("ret=%lf errno=%d end=%x\n", ret, errno, endptr[0]); ret=0.000000 errno=0 end=0 But with explicit check for zero or negative return value, it is not really needed. > > + errno = 0; > > dpi = strtod(argv[i], &strtod_error); > > - if (argv[i] == strtod_error) > > + if (*strtod_error || errno || dpi == 0) > > While we're at it, I would make the check for dpi <= 0, since negative > values aren't valid either (in fact, negative values are effectively a > no-op, since they set the DPI from the current framebuffer settings, > and then set the virtual framebuffer physical dimensions from the > DPI). > > Cheers, > > Giuseppe Bilotta -- Pali Rohár pali.ro...@gmail.com _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel