translate: deal with and 0 / or ~0
[ia32rtools.git] / tools / common.h
CommitLineData
9ea60b8d 1// read a line, truncating it if it doesn't fit
2static char *my_fgets(char *s, size_t size, FILE *stream)
3{
4 char *ret, *ret2;
5 char buf[64];
6 int p;
7
8 p = size - 2;
9 if (p >= 0)
10 s[p] = 0;
11
12 ret = fgets(s, size, stream);
13 if (ret != NULL && p >= 0 && s[p] != 0 && s[p] != '\n') {
14 p = sizeof(buf) - 2;
15 do {
16 buf[p] = 0;
17 ret2 = fgets(buf, sizeof(buf), stream);
18 }
19 while (ret2 != NULL && buf[p] != 0 && buf[p] != '\n');
20 }
21
22 return ret;
23}
24