Annotation of embedaddon/ntp/libntp/octtoint.c, revision 1.1

1.1     ! misho       1: /*
        !             2:  * octtoint - convert an ascii string in octal to an unsigned
        !             3:  *           long, with error checking
        !             4:  */
        !             5: #include <stdio.h>
        !             6: #include <ctype.h>
        !             7: 
        !             8: #include "ntp_stdlib.h"
        !             9: 
        !            10: int
        !            11: octtoint(
        !            12:        const char *str,
        !            13:        u_long *ival
        !            14:        )
        !            15: {
        !            16:        register u_long u;
        !            17:        register const char *cp;
        !            18: 
        !            19:        cp = str;
        !            20: 
        !            21:        if (*cp == '\0')
        !            22:            return 0;
        !            23: 
        !            24:        u = 0;
        !            25:        while (*cp != '\0') {
        !            26:                if (!isdigit((int)*cp) || *cp == '8' || *cp == '9')
        !            27:                    return 0;
        !            28:                if (u >= 0x20000000)
        !            29:                    return 0;   /* overflow */
        !            30:                u <<= 3;
        !            31:                u += *cp++ - '0';       /* ascii dependent */
        !            32:        }
        !            33:        *ival = u;
        !            34:        return 1;
        !            35: }

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