Annotation of embedaddon/ntp/sntp/libopts/compat/strchr.c, revision 1.1.1.1

1.1       misho       1: /*
                      2:    SYNOPSIS
                      3:        #include <string.h>
                      4: 
                      5:        char *strchr(char const *s, int c);
                      6: 
                      7:        char *strrchr(char const *s, int c);
                      8: 
                      9:    DESCRIPTION
                     10:        The  strchr() function returns a pointer to the first occurrence of the
                     11:        character c in the string s.
                     12: 
                     13:        The strrchr() function returns a pointer to the last occurrence of  the
                     14:        character c in the string s.
                     15: 
                     16:        Here  "character"  means "byte" - these functions do not work with wide
                     17:        or multi-byte characters.
                     18: 
                     19:    RETURN VALUE
                     20:        The strchr() and strrchr() functions return a pointer  to  the  matched
                     21:        character or NULL if the character is not found.
                     22: 
                     23:    CONFORMING TO
                     24:        SVID 3, POSIX, BSD 4.3, ISO 9899
                     25: */
                     26: 
                     27: char*
                     28: strchr( char const *s, int c)
                     29: {
                     30:     do {
                     31:         if ((unsigned)*s == (unsigned)c)
                     32:             return s;
                     33: 
                     34:     } while (*(++s) != NUL);
                     35: 
                     36:     return NULL;
                     37: }
                     38: 
                     39: char*
                     40: strrchr( char const *s, int c)
                     41: {
                     42:     char const *e = s + strlen(s);
                     43: 
                     44:     for (;;) {
                     45:         if (--e < s)
                     46:             break;
                     47: 
                     48:         if ((unsigned)*e == (unsigned)c)
                     49:             return e;
                     50:     }
                     51:     return NULL;
                     52: }
                     53: 
                     54: /*
                     55:  * Local Variables:
                     56:  * mode: C
                     57:  * c-file-style: "stroustrup"
                     58:  * indent-tabs-mode: nil
                     59:  * End:
                     60:  * end of compat/strsignal.c */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>