if (!strcmp(argv[1], "--help"))
usage();
if (!strcmp(argv[1], "--version"))
- puts("setpci version " PCIUTILS_VERSION);
+ {
+ puts("setpci version " PCIUTILS_VERSION);
+ exit(0);
+ }
if (!strcmp(argv[1], "--dumpregs"))
- dump_registers();
- exit(0);
+ {
+ dump_registers();
+ exit(0);
+ }
}
while (i < argc && argv[i][0] == '-')
return 0;
}
else
- return 1;
+ {
+ if (stopp)
+ *stopp = NULL;
+ return 1;
+ }
}
static void parse_register(struct op *op, char *base)
e = strchr(value, ',');
if (e)
*e++ = 0;
- if (parse_x32(value, &f, &ll) < 0 || *f && *f != ':')
+ if (parse_x32(value, &f, &ll) < 0 || f && *f != ':')
parse_err("Invalid value \"%s\"", value);
lim = max_values[op->width];
if (ll > lim && ll < ~0UL - lim)
parse_err("Value \"%s\" is out of range", value);
op->values[j].value = ll;
- if (*f == ':')
+ if (f && *f == ':')
{
if (parse_x32(f+1, NULL, &ll) <= 0)
parse_err("Invalid mask \"%s\"", f+1);