From 05a278b4cdc8456580e51055ccb89fe4d1cd46ed Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 18 Apr 2009 14:10:06 +0000 Subject: * ext/readline/readline.c: use rb_f_notimplement for methods not implemented. * ext/openssl/ossl_engine.c: ditto. * ext/openssl/ossl_config.c: ditto. * ext/openssl/ossl_cipher.c: ditto. * ext/openssl/ossl_pkcs5.c: ditto. * ext/openssl/ossl_x509ext.c: ditto. * ext/socket/socket.c: ditto. * ext/socket/basicsocket.c: ditto. * ext/socket/ancdata.c: ditto. * ext/socket/unixsocket.c: ditto. * ext/iconv/iconv.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 25 +++++++ ext/iconv/iconv.c | 46 ++++++------ ext/openssl/ossl_cipher.c | 14 ++-- ext/openssl/ossl_config.c | 12 +++- ext/openssl/ossl_engine.c | 12 ++-- ext/openssl/ossl_pkcs5.c | 12 ++-- ext/openssl/ossl_x509ext.c | 6 +- ext/readline/readline.c | 176 ++++++++++++++++++++------------------------- ext/socket/ancdata.c | 82 +++++++++++---------- ext/socket/basicsocket.c | 12 ++-- ext/socket/socket.c | 18 +++-- ext/socket/unixsocket.c | 14 ++-- process.c | 6 +- 13 files changed, 227 insertions(+), 208 deletions(-) diff --git a/ChangeLog b/ChangeLog index 49acda886d..4416b7fb47 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,28 @@ +Sat Apr 18 23:07:18 2009 Tanaka Akira + + * ext/readline/readline.c: use rb_f_notimplement for methods not + implemented. + + * ext/openssl/ossl_engine.c: ditto. + + * ext/openssl/ossl_config.c: ditto. + + * ext/openssl/ossl_cipher.c: ditto. + + * ext/openssl/ossl_pkcs5.c: ditto. + + * ext/openssl/ossl_x509ext.c: ditto. + + * ext/socket/socket.c: ditto. + + * ext/socket/basicsocket.c: ditto. + + * ext/socket/ancdata.c: ditto. + + * ext/socket/unixsocket.c: ditto. + + * ext/iconv/iconv.c: ditto. + Sat Apr 18 21:07:34 2009 Tanaka Akira * ext/curses/curses.c: use rb_f_notimplement for methods not diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c index 6ff49e5b5c..35e5c34634 100644 --- a/ext/iconv/iconv.c +++ b/ext/iconv/iconv.c @@ -791,6 +791,7 @@ list_iconv(unsigned int namescount, const char *const *names, void *data) } #endif +#if defined(HAVE_ICONVLIST) || defined(HAVE___ICONV_FREE_LIST) static VALUE iconv_s_list(void) { @@ -821,11 +822,12 @@ iconv_s_list(void) for (i = 0; i < RARRAY_LEN(ary); i++) { rb_yield(RARRAY_PTR(ary)[i]); } -#else - rb_notimplement(); #endif return Qnil; } +#else +#define iconv_s_list rb_f_notimplement +#endif /* * Document-method: close @@ -944,6 +946,7 @@ iconv_conv(int argc, VALUE *argv, VALUE self) return str; } +#ifdef ICONV_TRIVIALP /* * Document-method: trivial? * call-seq: trivial? @@ -953,16 +956,16 @@ iconv_conv(int argc, VALUE *argv, VALUE self) static VALUE iconv_trivialp(VALUE self) { -#ifdef ICONV_TRIVIALP int trivial = 0; iconv_ctl(self, ICONV_TRIVIALP, trivial); if (trivial) return Qtrue; -#else - rb_notimplement(); -#endif return Qfalse; } +#else +#define iconv_trivialp rb_f_notimplement +#endif +#ifdef ICONV_GET_TRANSLITERATE /* * Document-method: transliterate? * call-seq: transliterate? @@ -972,16 +975,16 @@ iconv_trivialp(VALUE self) static VALUE iconv_get_transliterate(VALUE self) { -#ifdef ICONV_GET_TRANSLITERATE int trans = 0; iconv_ctl(self, ICONV_GET_TRANSLITERATE, trans); if (trans) return Qtrue; -#else - rb_notimplement(); -#endif return Qfalse; } +#else +#define iconv_get_transliterate rb_f_notimplement +#endif +#ifdef ICONV_SET_TRANSLITERATE /* * Document-method: transliterate= * call-seq: cd.transliterate = flag @@ -991,15 +994,15 @@ iconv_get_transliterate(VALUE self) static VALUE iconv_set_transliterate(VALUE self, VALUE transliterate) { -#ifdef ICONV_SET_TRANSLITERATE int trans = RTEST(transliterate); iconv_ctl(self, ICONV_SET_TRANSLITERATE, trans); -#else - rb_notimplement(); -#endif return self; } +#else +#define iconv_set_transliterate rb_f_notimplement +#endif +#ifdef ICONV_GET_DISCARD_ILSEQ /* * Document-method: discard_ilseq? * call-seq: discard_ilseq? @@ -1009,16 +1012,16 @@ iconv_set_transliterate(VALUE self, VALUE transliterate) static VALUE iconv_get_discard_ilseq(VALUE self) { -#ifdef ICONV_GET_DISCARD_ILSEQ int dis = 0; iconv_ctl(self, ICONV_GET_DISCARD_ILSEQ, dis); if (dis) return Qtrue; -#else - rb_notimplement(); -#endif return Qfalse; } +#else +#define iconv_get_discard_ilseq rb_f_notimplement +#endif +#ifdef ICONV_SET_DISCARD_ILSEQ /* * Document-method: discard_ilseq= * call-seq: cd.discard_ilseq = flag @@ -1028,14 +1031,13 @@ iconv_get_discard_ilseq(VALUE self) static VALUE iconv_set_discard_ilseq(VALUE self, VALUE discard_ilseq) { -#ifdef ICONV_SET_DISCARD_ILSEQ int dis = RTEST(discard_ilseq); iconv_ctl(self, ICONV_SET_DISCARD_ILSEQ, dis); -#else - rb_notimplement(); -#endif return self; } +#else +#define iconv_set_discard_ilseq rb_f_notimplement +#endif /* * Document-method: ctlmethods diff --git a/ext/openssl/ossl_cipher.c b/ext/openssl/ossl_cipher.c index 27d152a61a..df7856b6f0 100644 --- a/ext/openssl/ossl_cipher.c +++ b/ext/openssl/ossl_cipher.c @@ -133,6 +133,7 @@ add_cipher_name_to_ary(const OBJ_NAME *name, VALUE ary) } #endif +#ifdef HAVE_OBJ_NAME_DO_ALL_SORTED /* * call-seq: * Cipher.ciphers -> array[string...] @@ -142,7 +143,6 @@ add_cipher_name_to_ary(const OBJ_NAME *name, VALUE ary) static VALUE ossl_s_ciphers(VALUE self) { -#ifdef HAVE_OBJ_NAME_DO_ALL_SORTED VALUE ary; ary = rb_ary_new(); @@ -151,10 +151,10 @@ ossl_s_ciphers(VALUE self) (void*)ary); return ary; +} #else - rb_notimplement(); +#define ossl_s_ciphers rb_f_notimplement #endif -} /* * call-seq: @@ -453,6 +453,7 @@ ossl_cipher_set_key_length(VALUE self, VALUE key_length) return key_length; } +#if defined(HAVE_EVP_CIPHER_CTX_SET_PADDING) /* * call-seq: * cipher.padding = integer -> integer @@ -466,18 +467,17 @@ ossl_cipher_set_key_length(VALUE self, VALUE key_length) static VALUE ossl_cipher_set_padding(VALUE self, VALUE padding) { -#if defined(HAVE_EVP_CIPHER_CTX_SET_PADDING) EVP_CIPHER_CTX *ctx; int pad = NUM2INT(padding); GetCipher(self, ctx); if (EVP_CIPHER_CTX_set_padding(ctx, pad) != 1) ossl_raise(eCipherError, NULL); -#else - rb_notimplement(); -#endif return padding; } +#else +#define ossl_cipher_set_padding rb_f_notimplement +#endif #define CIPHER_0ARG_INT(func) \ static VALUE \ diff --git a/ext/openssl/ossl_config.c b/ext/openssl/ossl_config.c index e0c714977d..bbd4975031 100644 --- a/ext/openssl/ossl_config.c +++ b/ext/openssl/ossl_config.c @@ -192,6 +192,16 @@ ossl_config_add_value(VALUE self, VALUE section, VALUE name, VALUE value) #endif } +#if !defined(OSSL_NO_CONF_API) +static VALUE +ossl_config_add_value_m(VALUE self, VALUE section, VALUE name, VALUE value) +{ + return ossl_config_add_value(self, section, name, value); +} +#else +#define ossl_config_add_value_m rb_f_notimplement +#endif + static VALUE ossl_config_get_value(VALUE self, VALUE section, VALUE name) { @@ -456,7 +466,7 @@ Init_ossl_config() rb_define_method(cConfig, "initialize", ossl_config_initialize, -1); rb_define_method(cConfig, "get_value", ossl_config_get_value, 2); rb_define_method(cConfig, "value", ossl_config_get_value_old, -1); - rb_define_method(cConfig, "add_value", ossl_config_add_value, 3); + rb_define_method(cConfig, "add_value", ossl_config_add_value_m, 3); rb_define_method(cConfig, "[]", ossl_config_get_section, 1); rb_define_method(cConfig, "section", ossl_config_get_section_old, 1); rb_define_method(cConfig, "[]=", ossl_config_set_section, 2); diff --git a/ext/openssl/ossl_engine.c b/ext/openssl/ossl_engine.c index 2dfed654f4..ec6f7fdf96 100644 --- a/ext/openssl/ossl_engine.c +++ b/ext/openssl/ossl_engine.c @@ -166,10 +166,10 @@ ossl_engine_finish(VALUE self) return Qnil; } +#if defined(HAVE_ENGINE_GET_CIPHER) static VALUE ossl_engine_get_cipher(VALUE self, VALUE name) { -#if defined(HAVE_ENGINE_GET_CIPHER) ENGINE *e; const EVP_CIPHER *ciph, *tmp; char *s; @@ -184,15 +184,15 @@ ossl_engine_get_cipher(VALUE self, VALUE name) if(!ciph) ossl_raise(eEngineError, NULL); return ossl_cipher_new(ciph); +} #else - rb_notimplement(); +#define ossl_engine_get_cipher rb_f_notimplement #endif -} +#if defined(HAVE_ENGINE_GET_DIGEST) static VALUE ossl_engine_get_digest(VALUE self, VALUE name) { -#if defined(HAVE_ENGINE_GET_DIGEST) ENGINE *e; const EVP_MD *md, *tmp; char *s; @@ -207,10 +207,10 @@ ossl_engine_get_digest(VALUE self, VALUE name) if(!md) ossl_raise(eEngineError, NULL); return ossl_digest_new(md); +} #else - rb_notimplement(); +#define ossl_engine_get_digest rb_f_notimplement #endif -} static VALUE ossl_engine_load_privkey(int argc, VALUE *argv, VALUE self) diff --git a/ext/openssl/ossl_pkcs5.c b/ext/openssl/ossl_pkcs5.c index c4476dae38..18d166d1ca 100644 --- a/ext/openssl/ossl_pkcs5.c +++ b/ext/openssl/ossl_pkcs5.c @@ -7,6 +7,7 @@ VALUE mPKCS5; VALUE ePKCS5; +#ifdef HAVE_PKCS5_PBKDF2_HMAC /* * call-seq: * PKCS5.pbkdf2_hmac(pass, salt, iter, keylen, digest) => string @@ -25,7 +26,6 @@ VALUE ePKCS5; static VALUE ossl_pkcs5_pbkdf2_hmac(VALUE self, VALUE pass, VALUE salt, VALUE iter, VALUE keylen, VALUE digest) { -#ifdef HAVE_PKCS5_PBKDF2_HMAC VALUE str; const EVP_MD *md; int len = NUM2INT(keylen); @@ -40,12 +40,13 @@ ossl_pkcs5_pbkdf2_hmac(VALUE self, VALUE pass, VALUE salt, VALUE iter, VALUE key ossl_raise(ePKCS5, "PKCS5_PBKDF2_HMAC"); return str; +} #else - rb_notimplement(); +#define ossl_pkcs5_pbkdf2_hmac rb_f_notimplement #endif -} +#ifdef HAVE_PKCS5_PBKDF2_HMAC_SHA1 /* * call-seq: * PKCS5.pbkdf2_hmac_sha1(pass, salt, iter, keylen) => string @@ -63,7 +64,6 @@ ossl_pkcs5_pbkdf2_hmac(VALUE self, VALUE pass, VALUE salt, VALUE iter, VALUE key static VALUE ossl_pkcs5_pbkdf2_hmac_sha1(VALUE self, VALUE pass, VALUE salt, VALUE iter, VALUE keylen) { -#ifdef HAVE_PKCS5_PBKDF2_HMAC_SHA1 VALUE str; int len = NUM2INT(keylen); @@ -78,10 +78,10 @@ ossl_pkcs5_pbkdf2_hmac_sha1(VALUE self, VALUE pass, VALUE salt, VALUE iter, VALU ossl_raise(ePKCS5, "PKCS5_PBKDF2_HMAC_SHA1"); return str; +} #else - rb_notimplement(); +#define ossl_pkcs5_pbkdf2_hmac_sha1 rb_f_notimplement #endif -} void Init_ossl_pkcs5() diff --git a/ext/openssl/ossl_x509ext.c b/ext/openssl/ossl_x509ext.c index 87210700ae..d79615499b 100644 --- a/ext/openssl/ossl_x509ext.c +++ b/ext/openssl/ossl_x509ext.c @@ -163,10 +163,10 @@ ossl_x509extfactory_set_crl(VALUE self, VALUE crl) return crl; } +#ifdef HAVE_X509V3_SET_NCONF static VALUE ossl_x509extfactory_set_config(VALUE self, VALUE config) { -#ifdef HAVE_X509V3_SET_NCONF X509V3_CTX *ctx; CONF *conf; @@ -176,10 +176,10 @@ ossl_x509extfactory_set_config(VALUE self, VALUE config) X509V3_set_nconf(ctx, conf); return config; +} #else - rb_notimplement(); +#define rb_f_fork rb_f_notimplement #endif -} static VALUE ossl_x509extfactory_initialize(int argc, VALUE *argv, VALUE self) diff --git a/ext/readline/readline.c b/ext/readline/readline.c index d8f540e026..5f920113d7 100644 --- a/ext/readline/readline.c +++ b/ext/readline/readline.c @@ -436,6 +436,7 @@ readline_attempted_completion_function(const char *text, int start, int end) return result; } +#ifdef HAVE_RL_SET_SCREEN_SIZE /* * call-seq: * Readline.set_screen_size(rows, columns) -> self @@ -451,16 +452,15 @@ readline_attempted_completion_function(const char *text, int start, int end) static VALUE readline_s_set_screen_size(VALUE self, VALUE rows, VALUE columns) { -#ifdef HAVE_RL_SET_SCREEN_SIZE rb_secure(4); rl_set_screen_size(NUM2INT(rows), NUM2INT(columns)); return self; -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_SET_SCREEN_SIZE */ } +#else +#define readline_s_set_screen_size rb_f_notimplement +#endif +#ifdef HAVE_RL_GET_SCREEN_SIZE /* * call-seq: * Readline.get_screen_size -> [rows, columns] @@ -476,7 +476,6 @@ readline_s_set_screen_size(VALUE self, VALUE rows, VALUE columns) static VALUE readline_s_get_screen_size(VALUE self) { -#ifdef HAVE_RL_GET_SCREEN_SIZE int rows, columns; VALUE res; @@ -486,12 +485,12 @@ readline_s_get_screen_size(VALUE self) rb_ary_push(res, INT2NUM(rows)); rb_ary_push(res, INT2NUM(columns)); return res; -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_GET_SCREEN_SIZE */ } +#else +#define readline_s_get_screen_size rb_f_notimplement +#endif +#ifdef HAVE_RL_VI_EDITING_MODE /* * call-seq: * Readline.vi_editing_mode -> nil @@ -506,16 +505,15 @@ readline_s_get_screen_size(VALUE self) static VALUE readline_s_vi_editing_mode(VALUE self) { -#ifdef HAVE_RL_VI_EDITING_MODE rb_secure(4); rl_vi_editing_mode(1,0); return Qnil; -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_VI_EDITING_MODE */ } +#else +#define readline_s_vi_editing_mode rb_f_notimplement +#endif +#ifdef HAVE_RL_EDITING_MODE /* * call-seq: * Readline.vi_editing_mode? -> bool @@ -529,15 +527,14 @@ readline_s_vi_editing_mode(VALUE self) static VALUE readline_s_vi_editing_mode_p(VALUE self) { -#ifdef HAVE_RL_EDITING_MODE rb_secure(4); return rl_editing_mode == 0 ? Qtrue : Qfalse; -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_EDITING_MODE */ } +#else +#define readline_s_vi_editing_mode_p rb_f_notimplement +#endif +#ifdef HAVE_RL_EMACS_EDITING_MODE /* * call-seq: * Readline.emacs_editing_mode -> nil @@ -552,16 +549,15 @@ readline_s_vi_editing_mode_p(VALUE self) static VALUE readline_s_emacs_editing_mode(VALUE self) { -#ifdef HAVE_RL_EMACS_EDITING_MODE rb_secure(4); rl_emacs_editing_mode(1,0); return Qnil; -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_EMACS_EDITING_MODE */ } +#else +#define readline_s_emacs_editing_mode rb_f_notimplement +#endif +#ifdef HAVE_RL_EDITING_MODE /* * call-seq: * Readline.emacs_editing_mode? -> bool @@ -575,15 +571,14 @@ readline_s_emacs_editing_mode(VALUE self) static VALUE readline_s_emacs_editing_mode_p(VALUE self) { -#ifdef HAVE_RL_EDITING_MODE rb_secure(4); return rl_editing_mode == 1 ? Qtrue : Qfalse; -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_EDITING_MODE */ } +#else +#define readline_s_emacs_editing_mode_p rb_f_notimplement +#endif +#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER /* * call-seq: * Readline.completion_append_character = char @@ -625,7 +620,6 @@ readline_s_emacs_editing_mode_p(VALUE self) static VALUE readline_s_set_completion_append_character(VALUE self, VALUE str) { -#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER rb_secure(4); if (NIL_P(str)) { rl_completion_append_character = '\0'; @@ -639,12 +633,12 @@ readline_s_set_completion_append_character(VALUE self, VALUE str) } } return self; -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_COMPLETION_APPEND_CHARACTER */ } +#else +#define readline_s_set_completion_append_character rb_f_notimplement +#endif +#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER /* * call-seq: * Readline.completion_append_character -> char @@ -659,7 +653,6 @@ readline_s_set_completion_append_character(VALUE self, VALUE str) static VALUE readline_s_get_completion_append_character(VALUE self) { -#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER char buf[1]; rb_secure(4); @@ -668,12 +661,12 @@ readline_s_get_completion_append_character(VALUE self) buf[0] = (char) rl_completion_append_character; return rb_locale_str_new(buf, 1); -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_COMPLETION_APPEND_CHARACTER */ } +#else +#define readline_s_get_completion_append_character rb_f_notimplement +#endif +#ifdef HAVE_RL_BASIC_WORD_BREAK_CHARACTERS /* * call-seq: * Readline.basic_word_break_characters = string @@ -689,7 +682,6 @@ readline_s_get_completion_append_character(VALUE self) static VALUE readline_s_set_basic_word_break_characters(VALUE self, VALUE str) { -#ifdef HAVE_RL_BASIC_WORD_BREAK_CHARACTERS static char *basic_word_break_characters = NULL; rb_secure(4); @@ -706,12 +698,12 @@ readline_s_set_basic_word_break_characters(VALUE self, VALUE str) basic_word_break_characters[RSTRING_LEN(str)] = '\0'; rl_basic_word_break_characters = basic_word_break_characters; return self; -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_BASIC_WORD_BREAK_CHARACTERS */ } +#else +#define readline_s_set_basic_word_break_characters rb_f_notimplement +#endif +#ifdef HAVE_RL_BASIC_WORD_BREAK_CHARACTERS /* * call-seq: * Readline.basic_word_break_characters -> string @@ -726,17 +718,16 @@ readline_s_set_basic_word_break_characters(VALUE self, VALUE str) static VALUE readline_s_get_basic_word_break_characters(VALUE self, VALUE str) { -#ifdef HAVE_RL_BASIC_WORD_BREAK_CHARACTERS rb_secure(4); if (rl_basic_word_break_characters == NULL) return Qnil; return rb_locale_str_new_cstr(rl_basic_word_break_characters); -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_BASIC_WORD_BREAK_CHARACTERS */ } +#else +#define readline_s_get_basic_word_break_characters rb_f_notimplement +#endif +#ifdef HAVE_RL_COMPLETER_WORD_BREAK_CHARACTERS /* * call-seq: * Readline.completer_word_break_characters = string @@ -752,7 +743,6 @@ readline_s_get_basic_word_break_characters(VALUE self, VALUE str) static VALUE readline_s_set_completer_word_break_characters(VALUE self, VALUE str) { -#ifdef HAVE_RL_COMPLETER_WORD_BREAK_CHARACTERS static char *completer_word_break_characters = NULL; rb_secure(4); @@ -769,12 +759,12 @@ readline_s_set_completer_word_break_characters(VALUE self, VALUE str) completer_word_break_characters[RSTRING_LEN(str)] = '\0'; rl_completer_word_break_characters = completer_word_break_characters; return self; -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_COMPLETER_WORD_BREAK_CHARACTERS */ } +#else +#define readline_s_set_completer_word_break_characters rb_f_notimplement +#endif +#ifdef HAVE_RL_COMPLETER_WORD_BREAK_CHARACTERS /* * call-seq: * Readline.completer_word_break_characters -> string @@ -789,17 +779,16 @@ readline_s_set_completer_word_break_characters(VALUE self, VALUE str) static VALUE readline_s_get_completer_word_break_characters(VALUE self, VALUE str) { -#ifdef HAVE_RL_COMPLETER_WORD_BREAK_CHARACTERS rb_secure(4); if (rl_completer_word_break_characters == NULL) return Qnil; return rb_locale_str_new_cstr(rl_completer_word_break_characters); -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_COMPLETER_WORD_BREAK_CHARACTERS */ } +#else +#define readline_s_get_completer_word_break_characters rb_f_notimplement +#endif +#ifdef HAVE_RL_BASIC_QUOTE_CHARACTERS /* * call-seq: * Readline.basic_quote_characters = string @@ -813,7 +802,6 @@ readline_s_get_completer_word_break_characters(VALUE self, VALUE str) static VALUE readline_s_set_basic_quote_characters(VALUE self, VALUE str) { -#ifdef HAVE_RL_BASIC_QUOTE_CHARACTERS static char *basic_quote_characters = NULL; rb_secure(4); @@ -831,12 +819,12 @@ readline_s_set_basic_quote_characters(VALUE self, VALUE str) rl_basic_quote_characters = basic_quote_characters; return self; -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_BASIC_QUOTE_CHARACTERS */ } +#else +#define readline_s_set_basic_quote_characters rb_f_notimplement +#endif +#ifdef HAVE_RL_BASIC_QUOTE_CHARACTERS /* * call-seq: * Readline.basic_quote_characters -> string @@ -850,17 +838,16 @@ readline_s_set_basic_quote_characters(VALUE self, VALUE str) static VALUE readline_s_get_basic_quote_characters(VALUE self, VALUE str) { -#ifdef HAVE_RL_BASIC_QUOTE_CHARACTERS rb_secure(4); if (rl_basic_quote_characters == NULL) return Qnil; return rb_locale_str_new_cstr(rl_basic_quote_characters); -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_BASIC_QUOTE_CHARACTERS */ } +#else +#define readline_s_get_basic_quote_characters rb_f_notimplement +#endif +#ifdef HAVE_RL_COMPLETER_QUOTE_CHARACTERS /* * call-seq: * Readline.completer_quote_characters = string @@ -877,7 +864,6 @@ readline_s_get_basic_quote_characters(VALUE self, VALUE str) static VALUE readline_s_set_completer_quote_characters(VALUE self, VALUE str) { -#ifdef HAVE_RL_COMPLETER_QUOTE_CHARACTERS static char *completer_quote_characters = NULL; rb_secure(4); @@ -894,12 +880,12 @@ readline_s_set_completer_quote_characters(VALUE self, VALUE str) rl_completer_quote_characters = completer_quote_characters; return self; -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_COMPLETER_QUOTE_CHARACTERS */ } +#else +#define readline_s_set_completer_quote_characters rb_f_notimplement +#endif +#ifdef HAVE_RL_COMPLETER_QUOTE_CHARACTERS /* * call-seq: * Readline.completer_quote_characters -> string @@ -914,17 +900,16 @@ readline_s_set_completer_quote_characters(VALUE self, VALUE str) static VALUE readline_s_get_completer_quote_characters(VALUE self, VALUE str) { -#ifdef HAVE_RL_COMPLETER_QUOTE_CHARACTERS rb_secure(4); if (rl_completer_quote_characters == NULL) return Qnil; return rb_locale_str_new_cstr(rl_completer_quote_characters); -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_COMPLETER_QUOTE_CHARACTERS */ } +#else +#define readline_s_get_completer_quote_characters rb_f_notimplement +#endif +#ifdef HAVE_RL_FILENAME_QUOTE_CHARACTERS /* * call-seq: * Readline.filename_quote_characters = string @@ -939,7 +924,6 @@ readline_s_get_completer_quote_characters(VALUE self, VALUE str) static VALUE readline_s_set_filename_quote_characters(VALUE self, VALUE str) { -#ifdef HAVE_RL_FILENAME_QUOTE_CHARACTERS static char *filename_quote_characters = NULL; rb_secure(4); @@ -956,12 +940,12 @@ readline_s_set_filename_quote_characters(VALUE self, VALUE str) rl_filename_quote_characters = filename_quote_characters; return self; -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_FILENAME_QUOTE_CHARACTERS */ } +#else +#define readline_s_set_filename_quote_characters rb_f_notimplement +#endif +#ifdef HAVE_RL_FILENAME_QUOTE_CHARACTERS /* * call-seq: * Readline.filename_quote_characters -> string @@ -976,16 +960,14 @@ readline_s_set_filename_quote_characters(VALUE self, VALUE str) static VALUE readline_s_get_filename_quote_characters(VALUE self, VALUE str) { -#ifdef HAVE_RL_FILENAME_QUOTE_CHARACTERS rb_secure(4); if (rl_filename_quote_characters == NULL) return Qnil; return rb_locale_str_new_cstr(rl_filename_quote_characters); -#else - rb_notimplement(); - return Qnil; /* not reached */ -#endif /* HAVE_RL_FILENAME_QUOTE_CHARACTERS */ } +#else +#define readline_s_get_filename_quote_characters rb_f_notimplement +#endif static VALUE hist_to_s(VALUE self) @@ -1025,10 +1007,10 @@ hist_get(VALUE self, VALUE index) return rb_locale_str_new_cstr(entry->line); } +#ifdef HAVE_REPLACE_HISTORY_ENTRY static VALUE hist_set(VALUE self, VALUE index, VALUE str) { -#ifdef HAVE_REPLACE_HISTORY_ENTRY HIST_ENTRY *entry = NULL; int i; @@ -1045,11 +1027,10 @@ hist_set(VALUE self, VALUE index, VALUE str) rb_raise(rb_eIndexError, "invalid index"); } return str; +} #else - rb_notimplement(); - return Qnil; /* not reached */ +#define hist_set rb_f_notimplement #endif -} static VALUE hist_push(VALUE self, VALUE str) @@ -1165,18 +1146,17 @@ hist_delete_at(VALUE self, VALUE index) return rb_remove_history(i); } +#ifdef HAVE_CLEAR_HISTORY static VALUE hist_clear(VALUE self) { -#ifdef HAVE_CLEAR_HISTORY rb_secure(4); clear_history(); return self; +} #else - rb_notimplement(); - return Qnil; /* not reached */ +#define hist_clear rb_f_notimplement #endif -} static VALUE filename_completion_proc_call(VALUE self, VALUE str) diff --git a/ext/socket/ancdata.c b/ext/socket/ancdata.c index b50959c847..d30ddf6e7c 100644 --- a/ext/socket/ancdata.c +++ b/ext/socket/ancdata.c @@ -176,6 +176,7 @@ ancillary_data(VALUE self) return v; } +#ifdef SCM_RIGHTS /* * call-seq: * Socket::AncillaryData.unix_rights(io1, io2, ...) => ancillarydata @@ -188,7 +189,6 @@ ancillary_data(VALUE self) static VALUE ancillary_s_unix_rights(int argc, VALUE *argv, VALUE klass) { -#ifdef SCM_RIGHTS VALUE result, str, ary; int i; @@ -216,11 +216,12 @@ ancillary_s_unix_rights(int argc, VALUE *argv, VALUE klass) result = ancdata_new(AF_UNIX, SOL_SOCKET, SCM_RIGHTS, str); rb_ivar_set(result, rb_intern("unix_rights"), ary); return result; +} #else - rb_notimplement(); +#define ancillary_s_unix_rights rb_f_notimplement #endif -} +#ifdef SCM_RIGHTS /* * call-seq: * ancillarydata.unix_rights => array-of-IOs or nil @@ -253,7 +254,6 @@ ancillary_s_unix_rights(int argc, VALUE *argv, VALUE klass) static VALUE ancillary_unix_rights(VALUE self) { -#ifdef SCM_RIGHTS int level, type; level = ancillary_level(self); @@ -264,11 +264,12 @@ ancillary_unix_rights(VALUE self) VALUE v = rb_attr_get(self, rb_intern("unix_rights")); return v; +} #else - rb_notimplement(); +#define ancillary_unix_rights rb_f_notimplement #endif -} +#if defined(SCM_TIMESTAMP) || defined(SCM_TIMESTAMPNS) || defined(SCM_BINTIME) /* * call-seq: * ancillarydata.timestamp => time @@ -300,7 +301,6 @@ ancillary_unix_rights(VALUE self) static VALUE ancillary_timestamp(VALUE self) { -#if defined(SCM_TIMESTAMP) || defined(SCM_TIMESTAMPNS) || defined(SCM_BINTIME) int level, type; VALUE data; VALUE result = Qnil; @@ -342,10 +342,10 @@ ancillary_timestamp(VALUE self) rb_raise(rb_eTypeError, "timestamp ancillary data expected"); return result; +} #else - rb_notimplement(); +#define ancillary_timestamp rb_f_notimplement #endif -} /* * call-seq: @@ -391,6 +391,7 @@ ancillary_int(VALUE self) return INT2NUM(i); } +#if defined(IPPROTO_IP) && defined(IP_PKTINFO) && defined(HAVE_TYPE_STRUCT_IN_PKTINFO) && defined(HAVE_IPI_SPEC_DST) /* GNU/Linux */ /* * call-seq: * Socket::AncillaryData.ip_pktinfo(addr, ifindex) => ancdata @@ -414,7 +415,6 @@ ancillary_int(VALUE self) static VALUE ancillary_s_ip_pktinfo(int argc, VALUE *argv, VALUE self) { -#if defined(IPPROTO_IP) && defined(IP_PKTINFO) && defined(HAVE_TYPE_STRUCT_IN_PKTINFO) && defined(HAVE_IPI_SPEC_DST) /* GNU/Linux */ VALUE v_addr, v_ifindex, v_spec_dst; unsigned int ifindex; struct sockaddr_in sa; @@ -450,11 +450,12 @@ ancillary_s_ip_pktinfo(int argc, VALUE *argv, VALUE self) memcpy(&pktinfo.ipi_spec_dst, &sa.sin_addr, sizeof(pktinfo.ipi_spec_dst)); return ancdata_new(AF_INET, IPPROTO_IP, IP_PKTINFO, rb_str_new((char *)&pktinfo, sizeof(pktinfo))); +} #else - rb_notimplement(); +#define ancillary_s_ip_pktinfo rb_f_notimplement #endif -} +#if defined(IPPROTO_IP) && defined(IP_PKTINFO) && defined(HAVE_TYPE_STRUCT_IN_PKTINFO) && defined(HAVE_IPI_SPEC_DST) /* GNU/Linux */ /* * call-seq: * ancdata.ip_pktinfo => [addr, ifindex, spec_dst] @@ -477,7 +478,6 @@ ancillary_s_ip_pktinfo(int argc, VALUE *argv, VALUE self) static VALUE ancillary_ip_pktinfo(VALUE self) { -#if defined(IPPROTO_IP) && defined(IP_PKTINFO) && defined(HAVE_TYPE_STRUCT_IN_PKTINFO) && defined(HAVE_IPI_SPEC_DST) /* GNU/Linux */ int level, type; VALUE data; struct in_pktinfo pktinfo; @@ -505,11 +505,12 @@ ancillary_ip_pktinfo(VALUE self) v_spec_dst = rsock_addrinfo_new((struct sockaddr *)&sa, sizeof(sa), PF_INET, 0, 0, Qnil, Qnil); return rb_ary_new3(3, v_addr, UINT2NUM(pktinfo.ipi_ifindex), v_spec_dst); +} #else - rb_notimplement(); +#define ancillary_ip_pktinfo rb_f_notimplement #endif -} +#if defined(IPPROTO_IPV6) && defined(IPV6_PKTINFO) /* IPv6 RFC3542 */ /* * call-seq: * Socket::AncillaryData.ipv6_pktinfo(addr, ifindex) => ancdata @@ -527,7 +528,6 @@ ancillary_ip_pktinfo(VALUE self) static VALUE ancillary_s_ipv6_pktinfo(VALUE self, VALUE v_addr, VALUE v_ifindex) { -#if defined(IPPROTO_IPV6) && defined(IPV6_PKTINFO) /* IPv6 RFC3542 */ unsigned int ifindex; struct sockaddr_in6 sa; struct in6_pktinfo pktinfo; @@ -548,10 +548,10 @@ ancillary_s_ipv6_pktinfo(VALUE self, VALUE v_addr, VALUE v_ifindex) pktinfo.ipi6_ifindex = ifindex; return ancdata_new(AF_INET6, IPPROTO_IPV6, IPV6_PKTINFO, rb_str_new((char *)&pktinfo, sizeof(pktinfo))); +} #else - rb_notimplement(); +#define ancillary_s_ipv6_pktinfo rb_f_notimplement #endif -} #if defined(IPPROTO_IPV6) && defined(IPV6_PKTINFO) /* IPv6 RFC3542 */ static void @@ -580,6 +580,7 @@ extract_ipv6_pktinfo(VALUE self, struct in6_pktinfo *pktinfo_ptr, struct sockadd } #endif +#if defined(IPPROTO_IPV6) && defined(IPV6_PKTINFO) /* IPv6 RFC3542 */ /* * call-seq: * ancdata.ipv6_pktinfo => [addr, ifindex] @@ -597,7 +598,6 @@ extract_ipv6_pktinfo(VALUE self, struct in6_pktinfo *pktinfo_ptr, struct sockadd static VALUE ancillary_ipv6_pktinfo(VALUE self) { -#if defined(IPPROTO_IPV6) && defined(IPV6_PKTINFO) /* IPv6 RFC3542 */ struct in6_pktinfo pktinfo; struct sockaddr_in6 sa; VALUE v_addr; @@ -605,11 +605,12 @@ ancillary_ipv6_pktinfo(VALUE self) extract_ipv6_pktinfo(self, &pktinfo, &sa); v_addr = rsock_addrinfo_new((struct sockaddr *)&sa, sizeof(sa), PF_INET6, 0, 0, Qnil, Qnil); return rb_ary_new3(2, v_addr, UINT2NUM(pktinfo.ipi6_ifindex)); +} #else - rb_notimplement(); +#define ancillary_ipv6_pktinfo rb_f_notimplement #endif -} +#if defined(IPPROTO_IPV6) && defined(IPV6_PKTINFO) /* IPv6 RFC3542 */ /* * call-seq: * ancdata.ipv6_pktinfo_addr => addr @@ -627,16 +628,16 @@ ancillary_ipv6_pktinfo(VALUE self) static VALUE ancillary_ipv6_pktinfo_addr(VALUE self) { -#if defined(IPPROTO_IPV6) && defined(IPV6_PKTINFO) /* IPv6 RFC3542 */ struct in6_pktinfo pktinfo; struct sockaddr_in6 sa; extract_ipv6_pktinfo(self, &pktinfo, &sa); return rsock_addrinfo_new((struct sockaddr *)&sa, sizeof(sa), PF_INET6, 0, 0, Qnil, Qnil); +} #else - rb_notimplement(); +#define ancillary_ipv6_pktinfo_addr rb_f_notimplement #endif -} +#if defined(IPPROTO_IPV6) && defined(IPV6_PKTINFO) /* IPv6 RFC3542 */ /* * call-seq: * ancdata.ipv6_pktinfo_ifindex => addr @@ -654,15 +655,14 @@ ancillary_ipv6_pktinfo_addr(VALUE self) static VALUE ancillary_ipv6_pktinfo_ifindex(VALUE self) { -#if defined(IPPROTO_IPV6) && defined(IPV6_PKTINFO) /* IPv6 RFC3542 */ struct in6_pktinfo pktinfo; struct sockaddr_in6 sa; extract_ipv6_pktinfo(self, &pktinfo, &sa); return UINT2NUM(pktinfo.ipi6_ifindex); +} #else - rb_notimplement(); +#define ancillary_ipv6_pktinfo_ifindex rb_f_notimplement #endif -} #if defined(SOL_SOCKET) && defined(SCM_RIGHTS) /* 4.4BSD */ static int @@ -1286,14 +1286,9 @@ bsock_sendmsg_internal(int argc, VALUE *argv, VALUE sock, int nonblock) return SSIZET2NUM(ss); } -#else -static VALUE -bsock_sendmsg_internal(int argc, VALUE *argv, VALUE sock, int nonblock) -{ - rb_notimplement(); -} #endif +#if defined(HAVE_SENDMSG) /* * call-seq: * basicsocket.sendmsg(mesg, flags=0, dest_sockaddr=nil, *controls) => numbytes_sent @@ -1331,7 +1326,11 @@ bsock_sendmsg(int argc, VALUE *argv, VALUE sock) { return bsock_sendmsg_internal(argc, argv, sock, 0); } +#else +#define bsock_sendmsg rb_f_notimplement +#endif +#if defined(HAVE_SENDMSG) /* * call-seq: * basicsocket.sendmsg_nonblock(mesg, flags=0, dest_sockaddr=nil, *controls) => numbytes_sent @@ -1348,6 +1347,9 @@ bsock_sendmsg_nonblock(int argc, VALUE *argv, VALUE sock) { return bsock_sendmsg_internal(argc, argv, sock, 1); } +#else +#define bsock_sendmsg_nonblock rb_f_notimplement +#endif #if defined(HAVE_RECVMSG) struct recvmsg_args_struct { @@ -1675,14 +1677,9 @@ bsock_recvmsg_internal(int argc, VALUE *argv, VALUE sock, int nonblock) return ret; } -#else -static VALUE -bsock_recvmsg_internal(int argc, VALUE *argv, VALUE sock, int nonblock) -{ - rb_notimplement(); -} #endif +#if defined(HAVE_RECVMSG) /* * call-seq: * basicsocket.recvmsg(maxmesglen=nil, flags=0, maxcontrollen=nil, opts={}) => [mesg, sender_addrinfo, rflags, *controls] @@ -1741,7 +1738,11 @@ bsock_recvmsg(int argc, VALUE *argv, VALUE sock) { return bsock_recvmsg_internal(argc, argv, sock, 0); } +#else +#define bsock_recvmsg rb_f_notimplement +#endif +#if defined(HAVE_RECVMSG) /* * call-seq: * basicsocket.recvmsg_nonblock(maxdatalen=nil, flags=0, maxcontrollen=nil, opts={}) => [data, sender_addrinfo, rflags, *controls] @@ -1758,6 +1759,9 @@ bsock_recvmsg_nonblock(int argc, VALUE *argv, VALUE sock) { return bsock_recvmsg_internal(argc, argv, sock, 1); } +#else +#define bsock_recvmsg_nonblock rb_f_notimplement +#endif void Init_ancdata(void) diff --git a/ext/socket/basicsocket.c b/ext/socket/basicsocket.c index 78e675c0d3..4ffbd497bf 100644 --- a/ext/socket/basicsocket.c +++ b/ext/socket/basicsocket.c @@ -244,6 +244,7 @@ bsock_setsockopt(int argc, VALUE *argv, VALUE sock) return INT2FIX(0); } +#if !defined(__BEOS__) /* * Document-method: getsockopt * call-seq: getsockopt(level, optname) @@ -287,7 +288,6 @@ bsock_setsockopt(int argc, VALUE *argv, VALUE sock) static VALUE bsock_getsockopt(VALUE sock, VALUE lev, VALUE optname) { -#if !defined(__BEOS__) int level, option; socklen_t len; char *buf; @@ -307,10 +307,10 @@ bsock_getsockopt(VALUE sock, VALUE lev, VALUE optname) rb_sys_fail_path(fptr->pathv); return rsock_sockopt_new(family, level, option, rb_str_new(buf, len)); +} #else - rb_notimplement(); +#define bsock_getsockopt rb_f_notimplement #endif -} /* * call-seq: @@ -361,6 +361,7 @@ bsock_getpeername(VALUE sock) return rb_str_new((char*)&buf, len); } +#if defined(HAVE_GETPEEREID) || defined(SO_PEERCRED) || defined(HAVE_GETPEERUCRED) /* * call-seq: * basicsocket.getpeereid => [euid, egid] @@ -412,10 +413,11 @@ bsock_getpeereid(VALUE self) ret = rb_assoc_new(UIDT2NUM(ucred_geteuid(uc)), GIDT2NUM(ucred_getegid(uc))); ucred_free(uc); return ret; -#else - rb_notimplement(); #endif } +#else +#define bsock_getpeereid rb_f_notimplement +#endif /* * call-seq: diff --git a/ext/socket/socket.c b/ext/socket/socket.c index 8b3d681d08..d041293a68 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -75,6 +75,7 @@ pair_yield(VALUE pair) } #endif +#if defined HAVE_SOCKETPAIR /* * call-seq: * Socket.pair(domain, type, protocol) => [socket1, socket2] @@ -99,7 +100,6 @@ pair_yield(VALUE pair) VALUE rsock_sock_s_socketpair(int argc, VALUE *argv, VALUE klass) { -#if defined HAVE_SOCKETPAIR VALUE domain, type, protocol; int d, t, p, sp[2]; int ret; @@ -127,10 +127,10 @@ rsock_sock_s_socketpair(int argc, VALUE *argv, VALUE klass) return rb_ensure(pair_yield, r, io_close, s1); } return r; +} #else - rb_notimplement(); +#define rsock_sock_s_socketpair rb_f_notimplement #endif -} /* * call-seq: @@ -867,11 +867,7 @@ sock_gethostname(VALUE obj) return rb_str_new2(un.nodename); } #else -static VALUE -sock_gethostname(VALUE obj) -{ - rb_notimplement(); -} +#define sock_gethostname rb_f_notimplement #endif #endif @@ -1470,6 +1466,7 @@ sockaddr_obj(struct sockaddr *addr) } #endif +#if defined(HAVE_GETIFADDRS) || (defined(SIOCGLIFCONF) && defined(SIOCGLIFNUM) && !defined(__hpux)) || defined(SIOCGIFCONF) || defined(_WIN32) /* * call-seq: * Socket.ip_address_list => array @@ -1748,10 +1745,11 @@ socket_s_ip_address_list(VALUE self) CloseHandle(h); return list; -#else - rb_notimplement(); #endif } +#else +#define socket_s_ip_address_list rb_f_notimplement +#endif /* * Class +Socket+ provides access to the underlying operating system diff --git a/ext/socket/unixsocket.c b/ext/socket/unixsocket.c index d3ebbf343d..df1a11d094 100644 --- a/ext/socket/unixsocket.c +++ b/ext/socket/unixsocket.c @@ -171,6 +171,7 @@ sendmsg_blocking(void *data) return sendmsg(arg->fd, &arg->msg, 0); } +#if defined(HAVE_SENDMSG) && (FD_PASSING_BY_MSG_CONTROL || FD_PASSING_BY_MSG_ACCRIGHTS) /* * call-seq: * unixsocket.send_io(io) => nil @@ -190,7 +191,6 @@ sendmsg_blocking(void *data) static VALUE unix_send_io(VALUE sock, VALUE val) { -#if defined(HAVE_SENDMSG) && (FD_PASSING_BY_MSG_CONTROL || FD_PASSING_BY_MSG_ACCRIGHTS) int fd; rb_io_t *fptr; struct iomsg_arg arg; @@ -248,11 +248,10 @@ unix_send_io(VALUE sock, VALUE val) rb_sys_fail("sendmsg(2)"); return Qnil; +} #else - rb_notimplement(); - return Qnil; /* not reached */ +#define unix_send_io rb_f_notimplement #endif -} static VALUE recvmsg_blocking(void *data) @@ -261,6 +260,7 @@ recvmsg_blocking(void *data) return recvmsg(arg->fd, &arg->msg, 0); } +#if defined(HAVE_RECVMSG) && (FD_PASSING_BY_MSG_CONTROL || FD_PASSING_BY_MSG_ACCRIGHTS) /* * call-seq: * unixsocket.recv_io([klass [, mode]]) => io @@ -283,7 +283,6 @@ recvmsg_blocking(void *data) static VALUE unix_recv_io(int argc, VALUE *argv, VALUE sock) { -#if defined(HAVE_RECVMSG) && (FD_PASSING_BY_MSG_CONTROL || FD_PASSING_BY_MSG_ACCRIGHTS) VALUE klass, mode; rb_io_t *fptr; struct iomsg_arg arg; @@ -390,11 +389,10 @@ unix_recv_io(int argc, VALUE *argv, VALUE sock) ff_argv[1] = mode; return rb_funcall2(klass, for_fd, ff_argc, ff_argv); } +} #else - rb_notimplement(); - return Qnil; /* not reached */ +#define unix_recv_io rb_f_notimplement #endif -} /* * call-seq: diff --git a/process.c b/process.c index 27682133de..a44a9b511f 100644 --- a/process.c +++ b/process.c @@ -3304,7 +3304,7 @@ proc_setpgrp(void) /* this confusion. */ #ifdef HAVE_SETPGID if (setpgid(0,0) < 0) rb_sys_fail(0); -#else /* defined(HAVE_SETPGRP) && defined(SETPGRP_VOID) */ +#elif defined(HAVE_SETPGRP) && defined(SETPGRP_VOID) if (setpgrp() < 0) rb_sys_fail(0); #endif return INT2FIX(0); @@ -3388,7 +3388,7 @@ proc_setsid(void) pid = setsid(); if (pid < 0) rb_sys_fail(0); return PIDT2NUM(pid); -#else /* defined(HAVE_SETPGRP) && defined(TIOCNOTTY) */ +#elif defined(HAVE_SETPGRP) && defined(TIOCNOTTY) rb_pid_t pid; int ret; @@ -4538,7 +4538,7 @@ proc_daemon(int argc, VALUE *argv) after_fork(); if (n < 0) rb_sys_fail("daemon"); return INT2FIX(n); -#else /* defined(HAVE_FORK) */ +#elif defined(HAVE_FORK) switch (rb_fork(0, 0, 0, Qnil)) { case -1: return (-1); -- cgit v1.2.3