Commit | Line | Data |
---|---|---|
ad93134a WJ |
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 | } |