From ae2fe781dd4aae16a2f03a4b9fb93514eb9886d4 Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 13 May 1998 07:26:47 +0000 Subject: 1.1b9_19 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/dbm/dbm.c | 5 ++++- ext/etc/etc.c | 2 ++ ext/md5/md5init.c | 3 +++ ext/socket/socket.c | 37 +++++++++++++++++++++++++++++++++++++ ext/tcltklib/tcltklib.c | 20 +++++++++++++++++++- 5 files changed, 65 insertions(+), 2 deletions(-) (limited to 'ext') diff --git a/ext/dbm/dbm.c b/ext/dbm/dbm.c index 2ecc725ecb..9bd981862e 100644 --- a/ext/dbm/dbm.c +++ b/ext/dbm/dbm.c @@ -15,6 +15,9 @@ #include #include #include +#ifdef USE_CWGUSI +# include +#endif VALUE cDBM; @@ -331,7 +334,7 @@ fdbm_store(obj, keystr, valstr) #ifdef HAVE_DBM_CLAERERR dbm_clearerr(dbm); #endif - if (errno == EPERM) rb_sys_fail(Qnil); + if (errno == EPERM) rb_sys_fail(0); Fail("dbm_store failed"); } diff --git a/ext/etc/etc.c b/ext/etc/etc.c index 203df635c1..7bb7796663 100644 --- a/ext/etc/etc.c +++ b/ext/etc/etc.c @@ -52,7 +52,9 @@ setup_passwd(pwd) str_new2(pwd->pw_passwd), INT2FIX(pwd->pw_uid), INT2FIX(pwd->pw_gid), +#ifdef PW_GECOS str_new2(pwd->pw_gecos), +#endif str_new2(pwd->pw_dir), str_new2(pwd->pw_shell), #ifdef PW_CHANGE diff --git a/ext/md5/md5init.c b/ext/md5/md5init.c index 894f52a849..65fd996ca9 100644 --- a/ext/md5/md5init.c +++ b/ext/md5/md5init.c @@ -61,6 +61,9 @@ md5_clone(obj) static VALUE md5_new(argc, argv, class) + int argc; + VALUE* argv; + VALUE class; { int i; VALUE arg, obj; diff --git a/ext/socket/socket.c b/ext/socket/socket.c index 4d7cb0f35c..07de964188 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -22,6 +22,13 @@ #include #endif +#ifdef USE_CWGUSI +extern int fileno(FILE *stream); /* */ +extern int thread_select(int, fd_set*, fd_set*, fd_set*, struct timeval*); /* thread.c */ +# include +# include +#endif + #if defined(THREAD) && defined(HAVE_FCNTL) #ifdef HAVE_SYS_SELECT_H #include @@ -168,6 +175,7 @@ static VALUE bsock_getsockopt(sock, lev, optname) VALUE sock, lev, optname; { +#if !defined(__BEOS__) int level, option, len; char *buf; OpenFile *fptr; @@ -182,6 +190,9 @@ bsock_getsockopt(sock, lev, optname) rb_sys_fail(fptr->path); return str_new(buf, len); +#else + rb_notimplement(); +#endif } static VALUE @@ -401,7 +412,11 @@ thread_connect(fd, sockaddr, len, type) #endif FD_ZERO(&fds); FD_SET(fd, &fds); +#ifndef USE_CWGUSI thread_select(fd+1, 0, &fds, 0, 0, 0); +#else + thread_select(fd+1, 0, &fds, 0, 0); +#endif continue; #endif @@ -446,7 +461,11 @@ open_inet(class, h, serv, type) host = RSTRING(h)->ptr; hostent = gethostbyname(host); if (hostent == NULL) { +#ifndef USE_CWGUSI hostaddr = inet_addr(host); +#else + hostaddr = inet_addr(host).s_addr; +#endif if (hostaddr == -1) { if (type == INET_SERVER && !strlen(host)) hostaddr = INADDR_ANY; @@ -484,12 +503,16 @@ open_inet(class, h, serv, type) _servent.s_proto = "tcp"; servent = &_servent; } +#ifdef __BEOS__ + fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); +#else protoent = getprotobyname(servent->s_proto); if (protoent == NULL) { Raise(eSocket, "no such proto %s", servent->s_proto); } fd = socket(AF_INET, SOCK_STREAM, protoent->p_proto); +#endif memset(&sockaddr, 0, sizeof(sockaddr)); sockaddr.sin_family = AF_INET; @@ -1060,8 +1083,10 @@ setup_domain_and_type(domain, dv, type, tv) else if (strcmp(ptr, "AF_IMPLINK") == 0) *dv = AF_IMPLINK; #endif +#ifdef PF_INET else if (strcmp(ptr, "PF_INET") == 0) *dv = PF_INET; +#endif #ifdef PF_UNIX else if (strcmp(ptr, "PF_UNIX") == 0) *dv = PF_UNIX; @@ -1474,7 +1499,9 @@ Init_socket() mConst = rb_define_module_under(cSocket, "Constants"); sock_define_const("SOCK_STREAM", SOCK_STREAM); sock_define_const("SOCK_DGRAM", SOCK_DGRAM); +#ifdef SOCK_RAW sock_define_const("SOCK_RAW", SOCK_RAW); +#endif #ifdef SOCK_RDM sock_define_const("SOCK_RDM", SOCK_RDM); #endif @@ -1486,7 +1513,9 @@ Init_socket() #endif sock_define_const("AF_INET", AF_INET); +#ifdef PF_INET sock_define_const("PF_INET", PF_INET); +#endif #ifdef AF_UNIX sock_define_const("AF_UNIX", AF_UNIX); sock_define_const("PF_UNIX", PF_UNIX); @@ -1505,8 +1534,12 @@ Init_socket() #endif sock_define_const("MSG_OOB", MSG_OOB); +#ifdef MSG_PEEK sock_define_const("MSG_PEEK", MSG_PEEK); +#endif +#ifdef MSG_DONTROUTE sock_define_const("MSG_DONTROUTE", MSG_DONTROUTE); +#endif sock_define_const("SOL_SOCKET", SOL_SOCKET); #ifdef SOL_IP @@ -1550,7 +1583,9 @@ Init_socket() #ifdef SO_RCVBUF sock_define_const("SO_RCVBUF", SO_RCVBUF); #endif +#ifdef SO_KEEPALIVE sock_define_const("SO_KEEPALIVE", SO_KEEPALIVE); +#endif #ifdef SO_OOBINLINE sock_define_const("SO_OOBINLINE", SO_OOBINLINE); #endif @@ -1560,7 +1595,9 @@ Init_socket() #ifdef SO_PRIORITY sock_define_const("SO_PRIORITY", SO_PRIORITY); #endif +#ifdef SO_LINGER sock_define_const("SO_LINGER", SO_LINGER); +#endif #ifdef SOPRI_INTERACTIVE sock_define_const("SOPRI_INTERACTIVE", SOPRI_INTERACTIVE); diff --git a/ext/tcltklib/tcltklib.c b/ext/tcltklib/tcltklib.c index 6cb017a398..952a9f73c2 100644 --- a/ext/tcltklib/tcltklib.c +++ b/ext/tcltklib/tcltklib.c @@ -11,6 +11,11 @@ #include #include +#ifdef __MACOS__ +# include +# include +#endif + /* for debug */ #define DUMP1(ARG1) if (debug) { fprintf(stderr, "tcltklib: %s\n", ARG1);} @@ -112,7 +117,7 @@ ip_ruby(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) DUMP2("rb_eval_string(%s)", argv[1]); old_trapflg = trap_immediate; trap_immediate = 0; - res = rb_rescue(rb_eval_string, argv[1], ip_eval_rescue, &failed); + res = rb_rescue(rb_eval_string, (VALUE)argv[1], ip_eval_rescue, (VALUE)&failed); trap_immediate = old_trapflg; if (failed) { @@ -253,6 +258,15 @@ ip_retval(VALUE self) return (INT2FIX(ptr->return_value)); } +#ifdef __MACOS__ +static void +_macinit() +{ + tcl_macQdPtr = &qd; /* setup QuickDraw globals */ + Tcl_MacSetEventProc(TkMacConvertEvent); /* setup event handler */ +} +#endif + /*---- initialization ----*/ void Init_tcltklib() { @@ -269,6 +283,10 @@ void Init_tcltklib() rb_define_method(ip, "_return_value", ip_retval, 0); rb_define_method(ip, "mainloop", lib_mainloop, 0); +#ifdef __MACOS__ + _macinit(); +#endif + /*---- initialize tcl/tk libraries ----*/ /* from Tk_Main() */ DUMP1("Tcl_FindExecutable"); -- cgit v1.2.3