| #include <stdio.h> | 
 | #include <stdio_ext.h> | 
 |  | 
 |  | 
 | static char *fname; | 
 |  | 
 | #define PREPARE(argc, argv) \ | 
 |   do {									\ | 
 |     int fd = create_temp_file ("tst-ext2", &fname);			\ | 
 |     if (fd == -1)							\ | 
 |       {									\ | 
 | 	puts ("cannot create temporary file");				\ | 
 | 	exit (1);							\ | 
 |       }									\ | 
 |     close (fd);								\ | 
 |   } while (0) | 
 |  | 
 |  | 
 | static int | 
 | do_test (void) | 
 | { | 
 |   int res = 0; | 
 |  | 
 |   FILE *fp; | 
 |  | 
 |   fp = fopen (fname, "w"); | 
 |   printf ("Initial state for write-only stream: %d %d\n", | 
 |           __freading (fp) != 0, __fwriting (fp) != 0); | 
 |   res |= ((__freading (fp) != 0) != 0 | 
 | 	  || (__fwriting (fp) != 0) != 1); | 
 |   fclose (fp); | 
 |  | 
 |   fp = fopen (fname, "r"); | 
 |   printf ("Initial state for read-only stream:  %d %d\n", | 
 |           __freading (fp) != 0, __fwriting (fp) != 0); | 
 |   res |= ((__freading (fp) != 0) != 1 | 
 | 	  || (__fwriting (fp) != 0) != 0); | 
 |   fclose (fp); | 
 |  | 
 |   fp = fopen (fname, "r+"); | 
 |   printf ("Initial state for read-write stream: %d %d\n", | 
 |           __freading (fp) != 0, __fwriting (fp) != 0); | 
 |   res |= ((__freading (fp) != 0) != 0 | 
 | 	  || (__fwriting (fp) != 0) != 0); | 
 |   fclose (fp); | 
 |  | 
 |   fp = fopen (fname, "w+"); | 
 |   printf ("Initial state for read-write stream: %d %d\n", | 
 |           __freading (fp) != 0, __fwriting (fp) != 0); | 
 |   res |= ((__freading (fp) != 0) != 0 | 
 | 	  || (__fwriting (fp) != 0) != 0); | 
 |   fclose (fp); | 
 |  | 
 |   return res; | 
 | } | 
 |  | 
 | #define TEST_FUNCTION do_test () | 
 | #include "../test-skeleton.c" |