diff options
author | Yukihiro Matsumoto <matz@ruby-lang.org> | 1995-04-03 15:19:41 +0900 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2019-08-17 22:09:32 +0900 |
commit | 4e65eab7abf53838579600e3dcc99a43012c45c2 (patch) | |
tree | 0938fcd2882eca4965a218bbb0c48f25d068a783 /eval.c | |
parent | d349889e770a2078c247d9d28070e86a54b856f4 (diff) |
version 0.71v0_71
https://cache.ruby-lang.org/pub/ruby/1.0/ruby-0.71.tar.gz
Mon Apr 3 15:19:41 1995 Yukihiro Matsumoto (matz@ix-02)
* regexp.c(re_match): バグがあった.match_2を削除した時にenbugして
いたのだった.
Mon Mar 27 15:41:43 1995 Yukihiro Matsumoto (matz@ix-02)
* dict.c: Dict->Hashに全面的に移行.
Thu Mar 23 20:30:00 1995 Yukihiro Matsumoto (matz@ix-02)
* dbm.c,socket.c: extディレクトリに分離.
* configure: dln周りのチェックの強化
* dln.c: initの呼び出しをdlopen()版に合わせた.
Mon Mar 20 17:45:08 1995 Yukihiro Matsumoto (matz@ix-02)
* configure: autoconf 2.2に対応(一部).
Fri Mar 17 15:56:44 1995 Yukihiro Matsumoto (matz@ix-02)
* dln.c: dlopenのあるマシンではそちらを使うように.ただし,ちゃん
と動いているかどうかは自信がない.
* regex.c: virtual concatinationをやめた.
Thu Mar 16 11:32:57 1995 Yukihiro Matsumoto (matz@ix-02)
* version 0.70
* eval.c,regex.c: gccでのコンパイルエラー.
* io.c: inplace-editで拡張子が指定されない場合,もとのファイルを削
除する.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 31 |
1 files changed, 22 insertions, 9 deletions
@@ -18,6 +18,19 @@ #include <stdio.h> #include <setjmp.h> #include "st.h" +#include "dln.h" + +#ifdef HAVE_STRING_H +# include <string.h> +#else +char *strchr(); +#endif + +#ifdef HAVE_STDLIB_H +#include <stdlib.h> +#else +char *getenv(); +#endif static void rb_clear_cache_body(); static void rb_clear_cache_entry(); @@ -1113,7 +1126,7 @@ rb_eval(node) case NODE_HASH: { NODE *list; - VALUE hash = dic_new(); + VALUE hash = hash_new(); VALUE key, val; list = node->nd_head; @@ -1121,10 +1134,10 @@ rb_eval(node) key = rb_eval(list->nd_head); list = list->nd_next; if (list == Qnil) - Bug("odd number list for Dict"); + Bug("odd number list for Hash"); val = rb_eval(list->nd_head); list = list->nd_next; - Fdic_aset(hash, key, val); + Fhash_aset(hash, key, val); } return hash; } @@ -1266,7 +1279,7 @@ rb_eval(node) while (TYPE(tmp) == T_ICLASS) { tmp = RCLASS(tmp)->super; } - if (tmp != super) + if (tmp != RCLASS(super)) Fail("%s's superclass differs", rb_id2name(node->nd_cname)); } @@ -2220,13 +2233,16 @@ Fload(obj, fname) Check_Type(fname, T_STRING); file = find_file(fname->ptr); -#ifdef USE_DLN +#ifdef USE_DL { static int rb_dln_init = 0; extern char *rb_dln_argv0; int len = strlen(file); - if (len > 2 && file[len-1] == 'o' && file[len-2] == '.') { + if (len > 3 + && file[len-1] == 'o' && file[len-2] == '.' + || len > 4 + && file[len-1] == 'o' && file[len-2] == 's' && file[len-3] == '.'){ if (rb_dln_init == 0 && dln_init(rb_dln_argv0) == -1) { Fail("%s: %s", rb_dln_argv0, dln_strerror()); } @@ -2288,9 +2304,6 @@ Frequire(obj, fname) return TRUE; } -char *getenv(); -char *strchr(); - #ifndef RUBY_LIB #define RUBY_LIB "/usr/local/lib/ruby:." #endif |