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