On Tue, 14 Nov 2000, David Relson wrote:
> At 06:29 AM 11/14/00, Daniel Phillips wrote:
>
> >Heading in the right direction, but this is equivalent to:
> >
> > if (isalnum(*p) && *p != '-' && *p != '_') return -EINVAL;
> >
> >which is faster, smaller and easier to read.
>
> Almost right, but you forgot to negate isalnum(). Should be:
>
> if (!isalnum(*p) && *p != '-' && *p != '_') return -EINVAL;
>
> or
> if (! (isalnum(*p) || *p == '-' || *p == '_')) return -EINVAL;
>
> I think I prefer the older version with "continue" as I don't have to think
> about all the negatives ("!"), i.e.
>
> for ( ... )
> {
> if ( isalnum(*p) || *p == '-' || *p == '_' )
> continue;
> return -EINVAL;
> }
>
I reserve the right to make coding errors, thanks for not letting it get
written into history :-)
How about:
for ( ... ) if (!isalnum(*p) && !strchr("-_", *p)) return -EINVAL;
--
Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/