< :前の番号
^ :番号順リスト
> :次の番号
P :前の記事(スレッド移動)
N :次の記事
|<:前のスレッド
>|:次のスレッド
^ :返事先
_:自分への返事
>:同じ返事先を持つ記事(前)
<:同じ返事先を持つ記事(後)
---:分割してスレッド表示、再表示
| :分割して(縦)スレッド表示、再表示
~ :スレッドのフレーム消去
.:インデックス
..:インデックスのインデックス
Hi,
At Tue, 3 Apr 2007 04:00:24 +0900 (JST),
technorama / ruby-lang.org wrote in [ruby-cvs:19369]:
> * ext/openssl/{ossl_bio.c,ossl_ssl.c,ruby_missing.h} compatibility with 1.8.
I don't recommend to check RUBY_VERSION_CODE in extension
libraries. Per-features checks should be placed in extconf.rb
instead.
Furthermore, I'd rather want to remove RUBY_VERSION_CODE from
version.h, and change RUBY_VERSION object to a particular
object from mere String.
Index: ext/openssl/extconf.rb
===================================================================
--- ext/openssl/extconf.rb (revision 12136)
+++ ext/openssl/extconf.rb (working copy)
@@ -60,4 +60,6 @@ unless have_header("openssl/conf_api.h")
end
+%w"rb_str_set_len rb_block_call".each {|func| have_func(func, "ruby.h")}
+
message "=== Checking for OpenSSL features... ===\n"
have_func("ERR_peek_last_error")
Index: ext/openssl/ruby_missing.h
===================================================================
--- ext/openssl/ruby_missing.h (revision 12136)
+++ ext/openssl/ruby_missing.h (working copy)
@@ -10,7 +10,5 @@
*/
#if !defined(_OSSL_RUBY_MISSING_H_)
-#define _OSS_RUBY_MISSING_H_
-
-#include "version.h"
+#define _OSSL_RUBY_MISSING_H_
#define rb_define_copy_func(klass, func) \
@@ -18,12 +16,15 @@
-#if RUBY_VERSION_CODE >= 190
+#ifndef GetReadFile
#define FPTR_TO_FD(fptr) (fptr->fd)
#else
+#define FPTR_TO_FD(fptr) (fileno(GetReadFile(fptr)))
+#endif
+#ifndef HAVE_RB_IO_T
#define rb_io_t OpenFile
-#define FPTR_TO_FD(fptr) (fileno(fptr->f))
-
+#endif
+#ifndef HAVE_RB_STR_SET_LEN
/* these methods should probably be backported to 1.8 */
#define rb_str_set_len(str, length) do { \
@@ -31,11 +32,10 @@
RSTRING(str)->len = length; \
} while(0)
+#endif /* ! HAVE_RB_STR_SET_LEN */
+#ifndef HAVE_RB_BLOCK_CALL
/* the openssl module doesn't use arg[3-4] and arg2 is always rb_each */
#define rb_block_call(arg1, arg2, arg3, arg4, arg5, arg6) rb_iterate(rb_each, arg1, arg5, arg6)
+#endif /* ! HAVE_RB_BLOCK_CALL */
-#endif /* RUBY_VERSION_CODE >= 190 */
-
-
-#endif /* _OSS_RUBY_MISSING_H_ */
-
+#endif /* _OSSL_RUBY_MISSING_H_ */
--
Nobu Nakada