386BSD 0.1 development
[unix-history] / usr / src / sys.386bsd / isofs / isofs_util.c
CommitLineData
ad93134a
WJ
1int
2isonum_711 (p)
3char *p;
4{
5 return (*p & 0xff);
6}
7
8int
9isonum_712 (p)
10char *p;
11{
12 int val;
13
14 val = *p;
15 if (val & 0x80)
16 val |= 0xffffff00;
17 return (val);
18}
19
20int
21isonum_721 (p)
22char *p;
23{
24 return ((p[0] & 0xff) | ((p[1] & 0xff) << 8));
25}
26
27int
28isonum_722 (p)
29char *p;
30{
31 return (((p[0] & 0xff) << 8) | (p[1] & 0xff));
32}
33
34int
35isonum_723 (p)
36char *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
47int
48isonum_731 (p)
49char *p;
50{
51 return ((p[0] & 0xff)
52 | ((p[1] & 0xff) << 8)
53 | ((p[2] & 0xff) << 16)
54 | ((p[3] & 0xff) << 24));
55}
56
57int
58isonum_732 (p)
59char *p;
60{
61 return (((p[0] & 0xff) << 24)
62 | ((p[1] & 0xff) << 16)
63 | ((p[2] & 0xff) << 8)
64 | (p[3] & 0xff));
65}
66
67int
68isonum_733 (p)
69char *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 */
87isofncmp(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 */
114void
115isofntrans(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}