[BusyBox 0001076]: "ip addr del" does not work

Robert P. J. Day rpjday at mindspring.com
Thu Oct 26 19:40:45 UTC 2006


On Thu, 26 Oct 2006, Denis Vlasenko wrote:

> On Thursday 26 October 2006 15:44, Tito wrote:
> > static int compare_string_array_internal(const char * const string_array[], 	const char *key, unsigned exact_match)
> > {
> >           int i;
> >
> >           for (i = 0; string_array[i] != 0; i++) {
> >   		if (strncmp(string_array[i], key,  (exact_match)  ? strlen(key) : strlen(string_array[i])) == 0)
> >  			return i;
> >          }
> >          return -i;
> > }
> >
> >
> > int compare_string_array(const char * const string_array[], const char *key)
> > {
> >  		return compare_string_array_internal(string_array, key, 1);
> > }
>
> compare_string_array({"aaa","bbb","ccc"}, "b") returns 1 -- ??!
>
> > int compare_substring_array(const char * const string_array[], const char *key)
>
> Name of this one doesn't immediately say what it is doing.
> I have hard time imagining a "substring array" at all...
>
> compare_string_array() is also can have better name.
> find_in_string_array()?

there's a recommended rule that functions be given names so that, when
used in their natural context, they make intuitive sense.  for
instance,

  if (compare_string_array(...)) {

doesn't really suggest what's being returned, but

  if (string_array_contains_string(...)) {

should be immediately obvious.  or something like that.

rday



More information about the busybox mailing list