Annotation of 3BSD/cmd/pi/ato.c, revision 1.1.1.1

1.1       root        1: /* Copyright (c) 1979 Regents of the University of California */
                      2: #
                      3: /*
                      4:  * pi - Pascal interpreter code translator
                      5:  *
                      6:  * Charles Haley, Bill Joy UCB
                      7:  * Version 1.2 November 1978
                      8:  */
                      9: 
                     10: #include "whoami"
                     11: #include "0.h"
                     12: 
                     13: long
                     14: a8tol(cp)
                     15:        char *cp;
                     16: {
                     17:        int err;
                     18:        long l;
                     19:        register CHAR c;
                     20: 
                     21:        l = 0;
                     22:        err = 0;
                     23:        while ((c = *cp++) != '\0') {
                     24:                if (c == '8' || c == '9')
                     25:                        if (err == 0) {
                     26:                                error("8 or 9 in octal number");
                     27:                                err++;
                     28:                        }
                     29:                c -= '0';
                     30:                if ((l & 0160000000000L) != 0)
                     31:                        if (err == 0) {
                     32:                                error("Number too large for this implementation");
                     33:                                err++;
                     34:                        }
                     35:                l = (l << 3) | c;
                     36:        }
                     37:        return (l);
                     38: }
                     39: 
                     40: /*
                     41:  * Note that the version of atof
                     42:  * used in this compiler does not
                     43:  * (sadly) complain when floating
                     44:  * point numbers are too large.
                     45:  */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.