This source file includes following definitions.
- main
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #include <config.h>
20
21
22
23 #define _GL_NO_LARGE_FILES
24 #include <stdio.h>
25
26 #include "signature.h"
27 SIGNATURE_CHECK (fseek, int, (FILE *, long, int));
28
29 #include "macros.h"
30
31 #ifndef FUNC_UNGETC_BROKEN
32 # define FUNC_UNGETC_BROKEN 0
33 #endif
34
35 int
36 main (int argc, char **argv)
37 {
38
39
40 int expected = argc > 1 ? 0 : -1;
41 ASSERT (fseek (stdin, 0, SEEK_CUR) == expected);
42 if (argc > 1)
43 {
44
45 int ch = fgetc (stdin);
46 ASSERT (ch == '#');
47 ASSERT (ungetc (ch, stdin) == ch);
48 ASSERT (fseek (stdin, 2, SEEK_SET) == 0);
49 ch = fgetc (stdin);
50 ASSERT (ch == '/');
51 if (2 < argc)
52 {
53 if (FUNC_UNGETC_BROKEN)
54 {
55 fputs ("Skipping test: ungetc cannot handle arbitrary bytes\n",
56 stderr);
57 return 77;
58 }
59
60 ASSERT (ungetc (ch ^ 0xff, stdin) == (ch ^ 0xff));
61 }
62 ASSERT (fseek (stdin, 0, SEEK_END) == 0);
63 ASSERT (fgetc (stdin) == EOF);
64
65 ASSERT (feof (stdin));
66 ASSERT (fseek (stdin, 0, SEEK_END) == 0);
67 ASSERT (!feof (stdin));
68 }
69 return 0;
70 }