|
|
1.1 ! root 1: int ! 2: isonum_711 (p) ! 3: char *p; ! 4: { ! 5: return (*p & 0xff); ! 6: } ! 7: ! 8: int ! 9: isonum_712 (p) ! 10: char *p; ! 11: { ! 12: int val; ! 13: ! 14: val = *p; ! 15: if (val & 0x80) ! 16: val |= 0xffffff00; ! 17: return (val); ! 18: } ! 19: ! 20: int ! 21: isonum_721 (p) ! 22: char *p; ! 23: { ! 24: return ((p[0] & 0xff) | ((p[1] & 0xff) << 8)); ! 25: } ! 26: ! 27: int ! 28: isonum_722 (p) ! 29: char *p; ! 30: { ! 31: return (((p[0] & 0xff) << 8) | (p[1] & 0xff)); ! 32: } ! 33: ! 34: int ! 35: isonum_723 (p) ! 36: char *p; ! 37: { ! 38: #if 0 ! 39: if (p[0] != p[3] || p[1] != p[2]) { ! 40: fprintf (stderr, "invalid format 7.2.3 number\n"); ! 41: exit (1); ! 42: } ! 43: #endif ! 44: return (isonum_721 (p)); ! 45: } ! 46: ! 47: int ! 48: isonum_731 (p) ! 49: char *p; ! 50: { ! 51: return ((p[0] & 0xff) ! 52: | ((p[1] & 0xff) << 8) ! 53: | ((p[2] & 0xff) << 16) ! 54: | ((p[3] & 0xff) << 24)); ! 55: } ! 56: ! 57: int ! 58: isonum_732 (p) ! 59: char *p; ! 60: { ! 61: return (((p[0] & 0xff) << 24) ! 62: | ((p[1] & 0xff) << 16) ! 63: | ((p[2] & 0xff) << 8) ! 64: | (p[3] & 0xff)); ! 65: } ! 66: ! 67: int ! 68: isonum_733 (p) ! 69: char *p; ! 70: { ! 71: int i; ! 72: ! 73: #if 0 ! 74: for (i = 0; i < 4; i++) { ! 75: if (p[i] != p[7-i]) { ! 76: fprintf (stderr, "bad format 7.3.3 number\n"); ! 77: exit (1); ! 78: } ! 79: } ! 80: #endif ! 81: return (isonum_731 (p)); ! 82: } ! 83: ! 84: /* ! 85: * translate and compare a filename ! 86: */ ! 87: isofncmp(char *fn, int fnlen, char *isofn, int isolen) { ! 88: int fnidx; ! 89: ! 90: fnidx = 0; ! 91: for (fnidx = 0; fnidx < isolen; fnidx++, fn++) { ! 92: char c = *isofn++; ! 93: ! 94: if (fnidx > fnlen) ! 95: return (0); ! 96: ! 97: if (c >= 'A' && c <= 'Z') { ! 98: if (c + ('a' - 'A') != *fn) ! 99: return(0); ! 100: else ! 101: continue; ! 102: } ! 103: if (c == ';') ! 104: return ((fnidx == fnlen)); ! 105: if (c != *fn) ! 106: return (0); ! 107: } ! 108: return (1); ! 109: } ! 110: ! 111: /* ! 112: * translate a filename ! 113: */ ! 114: void ! 115: isofntrans(char *infn, int infnlen, char *outfn, short *outfnlen) { ! 116: int fnidx; ! 117: ! 118: fnidx = 0; ! 119: for (fnidx = 0; fnidx < infnlen; fnidx++) { ! 120: char c = *infn++; ! 121: ! 122: if (c >= 'A' && c <= 'Z') ! 123: *outfn++ = c + ('a' - 'A'); ! 124: else if (c == ';') { ! 125: *outfnlen = fnidx; ! 126: return; ! 127: } else ! 128: *outfn++ = c; ! 129: } ! 130: *outfnlen = infnlen; ! 131: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.