On 7/9/18 9:48 AM, Jesus Sanchez-Palencia wrote: > Hi David, > > > On 07/06/2018 08:58 AM, David Ahern wrote: >> On 7/5/18 4:42 PM, Jesus Sanchez-Palencia wrote: >> >>> +static int get_clockid(__s32 *val, const char *arg) >>> +{ >>> + const struct static_clockid { >>> + const char *name; >>> + clockid_t clockid; >>> + } clockids_sysv[] = { >>> + { "CLOCK_REALTIME", CLOCK_REALTIME }, >>> + { "CLOCK_TAI", CLOCK_TAI }, >>> + { "CLOCK_BOOTTIME", CLOCK_BOOTTIME }, >>> + { "CLOCK_MONOTONIC", CLOCK_MONOTONIC }, >>> + { NULL } >>> + }; >>> + >>> + const struct static_clockid *c; >>> + >>> + for (c = clockids_sysv; c->name; c++) { >>> + if (strncasecmp(c->name, arg, 25) == 0) { >> >> Why 25? > > > That was just an upper bound giving some room beyond the longest > clockid name we have today. Should I add a define MAX_CLOCK_NAME ?
why not just strcasecmp? using the 'n' variant with n > strlen of either argument seems pointless. > > >> >> be nice to allow shortcuts -- e.g., just REALTIME or realtime. > > > I'd rather just keep it as is and use the names as they are defined for > everything else (i.e. CLOCK_REALTIME), unless there are some strong > objections. An all caps argument is unnecessary work on the pinky finger and the CLOCK_ prefix is redundant to the keyword. Really, just a thought on making it easier for users. A CLI argument does not need to maintain a 1:1 with code names.