/* Test of yesno module.
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007-2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <config.h>
+/* Specification. */
+#include "yesno.h"
+
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "closein.h"
-#include "yesno.h"
+#include "binary-io.h"
char *program_name;
{
int i = 1;
program_name = argv[0];
+
/* yesno recommends that all clients use close_stdin in main. */
atexit (close_stdin);
+ /* But on mingw, close_stdin leaves stdin's file descriptor at the expected
+ position (i.e. where this program left off reading) only if its mode has
+ been set to O_BINARY. If it has been set to O_TEXT, and the file
+ descriptor is seekable, and stdin is buffered, the MSVCRT runtime ends up
+ setting the file descriptor's position to the expected position _minus_
+ the number of LFs not preceded by CR that were read between the expected
+ position and the last filled buffer end position. (I.e. the repositioning
+ from the end-of-buffer to the expected position does not work if the input
+ file contains end-of-line markers in Unix convention.) */
+ SET_BINARY (0);
if (1 < argc)
i = atoi (argv[1]);