blob: bbd8e7cb5143afec0af17244c496423cf4a42ded (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
extern int f1 (int, void *);
extern int *f2 (void) __attribute__ ((__const__));
extern int f3 (int, void *);
int
test (int x, char *y, int z)
{
int b = 0;
if (x < 1024)
{
y[0] = '\0';
do
{
switch (f1 (x, y + b))
{
case -1:
if (b == 0)
return -1;
else
return b;
default:
b++;
}
}
while (y[b - 1] != '\0' && y[b - 1] != '\n' && b < z);
}
else
{
do
{
switch (f3 (x, y + b))
{
case -1:
if ((*f2 ()) == 4)
continue;
if (b == 0)
return -1;
else
return b;
default:
b++;
}
}
while (y[b - 1] != '\0' && y[b - 1] != '\n' && b < z);
}
return b;
}
|