|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 840 (0x348) Types: TextFile Notes: UNIX file Names: »atoi.c«
└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code └─⟦f4b8d8c84⟧ UNIX Filesystem └─⟦this⟧ »cmd/rsh/atoi.c« └─⟦this⟧ »cmd/sh/atoi.c«
/* * Non-floating ASCII to int conversion * int atoi(cp) * char *cp; * Modified by rec 22.Apr.82 to allow octal and hexadecimal. */ atoi(cp) register char *cp; { register val; register c; register base; int sign; val = sign = 0; while ((c = *cp)==' ' || c=='\t') cp++; if (c == '-') { sign = 1; cp++; } else if (c == '+') cp++; base = 10; if ((c = *cp) == '0') { cp++; if ((c = *cp) == 'x' || c == 'X') { cp++; base = 16; } else base = 8; } for (;;) { c = *cp++; if ((c -= '0') >= 0 && c <= 9) { val = val*base - c; continue; } if (base == 16) { if ((c += 10 + '0' - 'A') >= 0 && c < base) { val = val*base - c; continue; } if ((c += 'A' - 'a') >= 0 && c < base) { val = val*base - c; continue; } } break; } if (!sign) val = -val; return (val); }