# include <io.h>
# include <fcntl.h>
+# ifdef OPENSSL_SYS_WINCE
+# include <stdio_extras.h>
+# include <stdlib_extras.h>
+# include <string_extras.h>
+# include <winsock_extras.h>
+# endif
+
# define ssize_t long
# if defined (__BORLANDC__)
# endif
# if defined(WIN16) && !defined(MONOLITH) && defined(SSLEAY) && defined(_WINEXITNOPERSIST)
-# define EXIT(n) { if (n == 0) _wsetexit(_WINEXITNOPERSIST); return(n); }
+# define EXIT(n) do { if (n == 0) _wsetexit(_WINEXITNOPERSIST); return(n); } while(0)
# else
-# define EXIT(n) return(n);
+# define EXIT(n) return(n)
# endif
# define LIST_SEPARATOR_CHAR ';'
# ifndef X_OK
# define SSLEAY_CONF OPENSSL_CONF
# define NUL_DEV "nul"
# define RFILE ".rnd"
-# define DEFAULT_HOME "C:"
+# ifdef OPENSSL_SYS_WINCE
+# define DEFAULT_HOME ""
+# else
+# define DEFAULT_HOME "C:"
+# endif
#else /* The non-microsoft world world */
# define LIST_SEPARATOR_CHAR ':'
# define NUL_DEV "/dev/null"
# ifndef MONOLITH
-# define EXIT(n) exit(n); return(n)
+# define EXIT(n) do { exit(n); return(n); } while(0)
# else
# define EXIT(n) return(n)
# endif