=over 4
+=item *
+
+socket IO is only implemented poorly. You can only use sysread and
+syswrite on them. The commands read, write, print, <> do not work for
+sockets. This may change iff epocemx supports sockets.
+
=item *
kill, alarm and signals. Do not try to use them. This may be
#define Fflush(fp) fflush(fp)
#define Mkdir(path,mode) mkdir((path),(mode))
-/* these should be set in a hint file, not here */
+
+/* epocemx setenv bug workaround */
#ifndef PERL_SYS_INIT
-# define PERL_SYS_INIT(c,v) MALLOC_INIT
+# define PERL_SYS_INIT(c,v) putenv(".dummy=foo"); putenv(".dummy"); MALLOC_INIT
#endif
#ifndef PERL_SYS_TERM
#define BOGUS_GETNAME_RETURN 8
/*
- read() on a socket blocks until buf is filled completly,
- recv() returns each massage
+ read() on a socket is unimplemented in current epocemx
+ use recv() instead
*/
+
#define PERL_SOCK_SYSREAD_IS_RECV
+/* write ditto, use send */
+#define PERL_SOCK_SYSWRITE_IS_SEND
+
/* No /dev/random available*/
#define PERL_NO_DEV_RANDOM
#define init_os_extras Perl_init_os_extras
-#define NO_ENVIRON_ARRAY
-
#define ARG_MAX 4096
#define ECONNABORTED 0xdead
+/* For environ */
+#include <emx.h>
+#define PERL_USE_SAFE_PUTENV
+
+
*(s+(nlen+1+vlen)) = '\0'
#ifdef USE_ENVIRON_ARRAY
- /* VMS' and EPOC's my_setenv() is in vms.c and epoc.c */
+ /* VMS' my_setenv() is in vms.c */
#if !defined(WIN32) && !defined(NETWARE)
void
Perl_my_setenv(pTHX_ char *nam, char *val)
my_setenv_format(environ[i], nam, nlen, val, vlen);
#else /* PERL_USE_SAFE_PUTENV */
-# if defined(__CYGWIN__)
+# if defined(__CYGWIN__) || defined( EPOC)
setenv(nam, val, 1);
# else
char *new_env;