home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Distributions / ucb / spencer_2bsd.tar.gz / 2bsd.tar / src / pi1 / ato.c < prev    next >
C/C++ Source or Header  |  1980-02-17  |  727b  |  44 lines

  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 January 1979
  8.  */
  9.  
  10. #include "0.h"
  11.  
  12. long a8tol(cp)
  13.     char *cp;
  14. {
  15.     int err;
  16.     long l;
  17.     register CHAR c;
  18.  
  19.     l = 0;
  20.     err = 0;
  21.     while ((c = *cp++) != '\0') {
  22.         if (c == '8' || c == '9')
  23.             if (err == 0) {
  24.                 error("8 or 9 in octal number");
  25.                 err++;
  26.             }
  27.         c =- '0';
  28.         if (((&l)->pint & 0160000) != 0)
  29.             if (err == 0) {
  30.                 error("Number too large for this implementation");
  31.                 err++;
  32.             }
  33.         l = (l << 3) | c;
  34.     }
  35.     return (l);
  36. }
  37.  
  38. /*
  39.  * Note that the version of atof
  40.  * used in this compiler does not
  41.  * (sadly) complain when floating
  42.  * point numbers are too large.
  43.  */
  44.