From: Jarkko Hietaniemi Date: Wed, 3 Apr 2002 20:27:49 +0000 (+0000) Subject: EPOC tweaks from Olaf Flebbe. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=eccd403f7f94e536c86d76b08601e70486b1f6c3;p=p5sagit%2Fp5-mst-13.2.git EPOC tweaks from Olaf Flebbe. p4raw-id: //depot/perl@15718 --- diff --git a/README.epoc b/README.epoc index a235f01..8ce93fe 100644 --- a/README.epoc +++ b/README.epoc @@ -68,6 +68,12 @@ EPOC: =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 diff --git a/epoc/epoc.c b/epoc/epoc.c index 61c8d28..6a463c6 100644 --- a/epoc/epoc.c +++ b/epoc/epoc.c @@ -124,8 +124,3 @@ Perl_init_os_extras(void) newXS("EPOC::getcwd", epoc_getcwd, file); } -void -Perl_my_setenv(pTHX_ char *nam,char *val) { - - setenv( nam, val, 1); -} diff --git a/epoc/epocish.h b/epoc/epocish.h index a98faa0..b955675 100644 --- a/epoc/epocish.h +++ b/epoc/epocish.h @@ -105,9 +105,10 @@ #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 @@ -122,11 +123,15 @@ #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 @@ -140,9 +145,12 @@ #define init_os_extras Perl_init_os_extras -#define NO_ENVIRON_ARRAY - #define ARG_MAX 4096 #define ECONNABORTED 0xdead +/* For environ */ +#include +#define PERL_USE_SAFE_PUTENV + + diff --git a/util.c b/util.c index d4a775b..4642031 100644 --- a/util.c +++ b/util.c @@ -1584,7 +1584,7 @@ Perl_vwarner(pTHX_ U32 err, const char* pat, va_list* args) *(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) @@ -1632,7 +1632,7 @@ 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;