- if (p && (p=strchr(p+1, '+')))
- strcpy(setstring, p+1);
- else if (setnumber >= 0)
- sprintf(setstring, "%d", setnumber);
- else
- *setstring = '\0';
+ end_ptr++;
+ arg_c = end_ptr;
+ *number = odr_strtol(arg_c, &end_ptr, 10);
+ if (end_ptr == arg_c)
+ {
+ printf("Bad show arg: expected number after +\n");
+ return 0;
+ }
+ if (*end_ptr == '\0')
+ return 1;
+ while (isspace(*(unsigned char *)end_ptr))
+ end_ptr++;
+ if (*end_ptr != '+')
+ {
+ printf("Bad show arg: + expected. Got %s\n", end_ptr);
+ return 0;
+ }
+ strcpy(setstring, end_ptr+1);
+ return 1;