On Tue, 25 Aug 2015 13:09:27 +0100, Rainer Weikusat wrote:
<snip>
> ,----
> | uint8_t essid_allowed_chars[] = 
> "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-";
> | 
> | [...]
> | 
> | int essid_allowed_char(uint8_t c) {
> |     size_t i;
> |     size_t k;
> | 
> |     int rv;
> | 
> |     rv = 0;
> | 
> |     k = essid_safe_strlen(essid_allowed_chars);
> | 
> |     for (i=0; i<k; i++)
> |             if(c==essid_allowed_chars[i]) {
> |                     rv = 1;
> | 
> |                     break;
> |             }
> | 
> |     return rv;
> | }
> `----
> 
> A more sensible simple way to implement this would be
> 
> char *essid_allowed_chars = 
> "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-";
> 
> int essid_allowed_char(int c)
> {
>       return strchr(essid_allowed_chars, c) != NULL;
> }
<snip>

One minor nitpick, SCNR:
To exactly replicate the behavior that last line should read:

 return c && ( strchr(essid_allowed_chars, c) != NULL );

or simply:

 return c && strchr(essid_allowed_chars, c);

Rationale: strchr considers the terminating null character to be 
part of the string, whereas the original code does not. (Not that 
it would matter yet, given how the function is currently used in 
the context of the original code, but it's the kind of thing that 
tends to bite later on.)

--
Irrwahn
_______________________________________________
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to