At earlier point e_os.h was omitted from a number of headers (in order
to emphasize OS neutrality), but this affected o_fopen.c and randfile.c
which are not OS-neutral, and contain some Win32-specific code.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5676)
#if !defined(OPENSSL_NO_STDIO)
# include <stdio.h>
+# ifdef _WIN32
+# include <windows.h>
+# endif
FILE *openssl_fopen(const char *filename, const char *mode)
{
# include <sys/stat.h>
# include <fcntl.h>
# ifdef _WIN32
+# include <windows.h>
# include <io.h>
+# define stat _stat
+# define chmod _chmod
+# define open _open
+# define fdopen _fdopen
# endif
#endif
# define S_ISREG(m) ((m) & S_IFREG)
# endif
-#ifdef _WIN32
-# define stat _stat
-# define chmod _chmod
-# define open _open
-# define fdopen _fdopen
-#endif
-
#define RAND_FILE_SIZE 1024
#define RFILE ".rnd"