mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* eval.c (rb_thread_restore_context): save current value of
lastline and lastmatch in the thread struct for later restore. * eval.c (rb_thread_save_context): restore lastline and lastmatch. * numeric.c (flo_to_s): should handle negative float value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
3081543be9
commit
b12951c688
11 changed files with 72 additions and 58 deletions
2
COPYING
2
COPYING
|
@ -1,4 +1,4 @@
|
|||
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@zetabits.com>.
|
||||
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
|
||||
You can redistribute it and/or modify it under either the terms of the GPL
|
||||
(see the file GPL), or the conditions below:
|
||||
|
||||
|
|
11
ChangeLog
11
ChangeLog
|
@ -3,6 +3,17 @@ Sat Sep 8 07:13:42 2001 Wakou Aoyama <wakou@fsinet.or.jp>
|
|||
* lib/net/telnet.rb: waitfor(): improvement. thanks to
|
||||
nobu.nakada@nifty.ne.jp
|
||||
|
||||
Sat Sep 8 04:34:17 2001 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||
|
||||
* eval.c (rb_thread_restore_context): save current value of
|
||||
lastline and lastmatch in the thread struct for later restore.
|
||||
|
||||
* eval.c (rb_thread_save_context): restore lastline and lastmatch.
|
||||
|
||||
Fri Sep 7 11:27:56 2001 akira yamada <akira@ruby-lang.org>
|
||||
|
||||
* numeric.c (flo_to_s): should handle negative float value.
|
||||
|
||||
Fri Sep 7 09:44:44 2001 Wakou Aoyama <wakou@fsinet.or.jp>
|
||||
|
||||
* lib/net/telnet.rb: waitfor(): bug fix.
|
||||
|
|
|
@ -121,7 +121,7 @@ realclean: distclean
|
|||
@rm -f parse.c
|
||||
@rm -f lex.c
|
||||
|
||||
test: miniruby$(EXEEXT)
|
||||
test: miniruby$(EXEEXT) rbconfig.rb
|
||||
@./miniruby$(EXEEXT) $(srcdir)/rubytest.rb
|
||||
|
||||
rbconfig.rb: miniruby$(EXEEXT) $(srcdir)/mkconfig.rb config.status
|
||||
|
|
2
README
2
README
|
@ -97,7 +97,7 @@ See the file COPYING.
|
|||
Feel free to send comments and bug reports to the author. Here is the
|
||||
author's latest mail address:
|
||||
|
||||
matz@zetabits.com
|
||||
matz@netlab.jp
|
||||
|
||||
-------------------------------------------------------
|
||||
created at: Thu Aug 3 11:57:36 JST 1995
|
||||
|
|
|
@ -145,7 +145,7 @@ COPYING.ja
|
|||
|
||||
* Ãø¼Ô
|
||||
|
||||
コメント,バグレポートその他は matz@zetabits.com まで.
|
||||
コメント,バグレポートその他は matz@netlab.jp まで.
|
||||
-------------------------------------------------------
|
||||
created at: Thu Aug 3 11:57:36 JST 1995
|
||||
Local variables:
|
||||
|
|
14
eval.c
14
eval.c
|
@ -7154,6 +7154,7 @@ rb_thread_save_context(th)
|
|||
{
|
||||
VALUE *pos;
|
||||
int len;
|
||||
static VALUE tval;
|
||||
|
||||
len = stack_length(&pos);
|
||||
th->stk_len = 0;
|
||||
|
@ -7181,8 +7182,12 @@ rb_thread_save_context(th)
|
|||
th->tracing = tracing;
|
||||
th->errinfo = ruby_errinfo;
|
||||
th->last_status = rb_last_status;
|
||||
th->last_line = rb_lastline_get();
|
||||
th->last_match = rb_backref_get();
|
||||
tval = rb_lastline_get();
|
||||
rb_lastline_set(th->last_line);
|
||||
th->last_line = tval;
|
||||
tval = rb_backref_get();
|
||||
rb_backref_set(th->last_match);
|
||||
th->last_match = tval;
|
||||
th->safe = ruby_safe_level;
|
||||
|
||||
th->file = ruby_sourcefile;
|
||||
|
@ -7246,6 +7251,7 @@ rb_thread_restore_context(th, exit)
|
|||
VALUE v;
|
||||
static rb_thread_t tmp;
|
||||
static int ex;
|
||||
static VALUE tval;
|
||||
|
||||
if (!th->stk_ptr) rb_bug("unsaved context");
|
||||
|
||||
|
@ -7282,8 +7288,12 @@ rb_thread_restore_context(th, exit)
|
|||
FLUSH_REGISTER_WINDOWS;
|
||||
MEMCPY(tmp->stk_pos, tmp->stk_ptr, VALUE, tmp->stk_len);
|
||||
|
||||
tval = rb_lastline_get();
|
||||
rb_lastline_set(tmp->last_line);
|
||||
tmp->last_line = tval;
|
||||
tval = rb_backref_get();
|
||||
rb_backref_set(tmp->last_match);
|
||||
tmp->last_match = tval;
|
||||
|
||||
longjmp(tmp->context, ex);
|
||||
}
|
||||
|
|
|
@ -7,24 +7,5 @@ digest.txt.ja
|
|||
extconf.rb
|
||||
lib/md5.rb
|
||||
lib/sha1.rb
|
||||
md5/extconf.rb
|
||||
md5/md5.c
|
||||
md5/md5.h
|
||||
md5/md5init.c
|
||||
rmd160/extconf.rb
|
||||
rmd160/rmd160.c
|
||||
rmd160/rmd160.h
|
||||
rmd160/rmd160hl.c
|
||||
rmd160/rmd160init.c
|
||||
sha1/extconf.rb
|
||||
sha1/sha1.c
|
||||
sha1/sha1.h
|
||||
sha1/sha1hl.c
|
||||
sha1/sha1init.c
|
||||
sha2/extconf.rb
|
||||
sha2/sha2.c
|
||||
sha2/sha2.h
|
||||
sha2/sha2hl.c
|
||||
sha2/sha2init.c
|
||||
test.rb
|
||||
test.sh
|
||||
|
|
14
numeric.c
14
numeric.c
|
@ -210,21 +210,25 @@ flo_to_s(flt)
|
|||
char buf[24];
|
||||
char *fmt = "%.10g";
|
||||
double value = RFLOAT(flt)->value;
|
||||
double d1, d2;
|
||||
double avalue, d1, d2;
|
||||
|
||||
if (isinf(value))
|
||||
return rb_str_new2(value < 0 ? "-Infinity" : "Infinity");
|
||||
else if(isnan(value))
|
||||
return rb_str_new2("NaN");
|
||||
|
||||
if (value < 1.0e-3) {
|
||||
d1 = value;
|
||||
avalue = fabs(value);
|
||||
if (avalue == 0.0) {
|
||||
fmt = "%.1f";
|
||||
}
|
||||
else if (avalue < 1.0e-3) {
|
||||
d1 = avalue;
|
||||
while (d1 < 1.0) d1 *= 10.0;
|
||||
d1 = modf(d1, &d2);
|
||||
if (d1 == 0) fmt = "%.1e";
|
||||
}
|
||||
else if (value >= 1.0e10) {
|
||||
d1 = value;
|
||||
else if (avalue >= 1.0e10) {
|
||||
d1 = avalue;
|
||||
while (d1 > 10.0) d1 /= 10.0;
|
||||
d1 = modf(d1, &d2);
|
||||
if (d1 == 0) fmt = "%.1e";
|
||||
|
|
56
process.c
56
process.c
|
@ -953,16 +953,18 @@ proc_setuid(obj, id)
|
|||
|
||||
uid = NUM2INT(id);
|
||||
#ifdef HAVE_SETREUID
|
||||
setreuid(uid, -1);
|
||||
if (setreuid(uid, -1) < 0) rb_sys_fail(0);
|
||||
#else
|
||||
#ifdef HAVE_SETRUID
|
||||
setruid(uid);
|
||||
if (setruid(uid) < 0) rb_sys_fail(0);
|
||||
#else
|
||||
{
|
||||
if (geteuid() == uid)
|
||||
setuid(uid);
|
||||
else
|
||||
if (geteuid() == uid) {
|
||||
if (setuid(uid) < 0) rb_sys_fail(0);
|
||||
}
|
||||
else {
|
||||
rb_notimplement();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
@ -984,17 +986,19 @@ proc_setgid(obj, id)
|
|||
int gid;
|
||||
|
||||
gid = NUM2INT(id);
|
||||
#ifdef HAS_SETRGID
|
||||
setrgid((GIDTYPE)gid);
|
||||
#else
|
||||
#ifdef HAVE_SETREGID
|
||||
setregid(gid, -1);
|
||||
if (setregid(gid, -1) < 0) rb_sys_fail(0);
|
||||
#else
|
||||
#ifdef HAS_SETRGID
|
||||
if (setrgid((GIDTYPE)gid) < 0) rb_sys_fail(0);
|
||||
#else
|
||||
{
|
||||
if (getegid() == gid)
|
||||
setgid(gid);
|
||||
else
|
||||
if (getegid() == gid) {
|
||||
if (setgid(gid) < 0) rb_sys_fail(0);
|
||||
}
|
||||
else {
|
||||
rb_notimplement();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
@ -1013,17 +1017,19 @@ static VALUE
|
|||
proc_seteuid(obj, euid)
|
||||
VALUE obj, euid;
|
||||
{
|
||||
#ifdef HAVE_SETEUID
|
||||
if (seteuid(NUM2INT(euid)) < 0) rb_sys_fail(0);
|
||||
#else
|
||||
#ifdef HAVE_SETREUID
|
||||
if (setreuid(-1, NUM2INT(euid)) < 0) rb_sys_fail(0);
|
||||
#else
|
||||
#ifdef HAVE_SETEUID
|
||||
if (seteuid(NUM2INT(euid)) < 0) rb_sys_fail(0);
|
||||
#else
|
||||
euid = NUM2INT(euid);
|
||||
if (euid == getuid())
|
||||
setuid(euid);
|
||||
else
|
||||
if (euid == getuid()) {
|
||||
if (setuid(euid) < 0) rb_sys_fail(0);
|
||||
}
|
||||
else {
|
||||
rb_notimplement();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
return euid;
|
||||
|
@ -1042,17 +1048,19 @@ proc_setegid(obj, egid)
|
|||
VALUE obj, egid;
|
||||
{
|
||||
rb_secure(2);
|
||||
#ifdef HAVE_SETEGID
|
||||
if (setegid(NUM2INT(egid)) < 0) rb_sys_fail(0);
|
||||
#else
|
||||
#ifdef HAVE_SETREGID
|
||||
if (setregid(-1, NUM2INT(egid)) < 0) rb_sys_fail(0);
|
||||
#else
|
||||
#ifdef HAVE_SETEGID
|
||||
if (setegid(NUM2INT(egid)) < 0) rb_sys_fail(0);
|
||||
#else
|
||||
egid = NUM2INT(egid);
|
||||
if (egid == getgid())
|
||||
setgid(egid);
|
||||
else
|
||||
if (egid == getgid()) {
|
||||
if (setgid(egid) < 0) rb_sys_fail(0);
|
||||
}
|
||||
else {
|
||||
rb_notimplement();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
return egid;
|
||||
|
|
4
ruby.1
4
ruby.1
|
@ -1,4 +1,4 @@
|
|||
.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@zetabits.com>.
|
||||
.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>.
|
||||
.na
|
||||
.TH RUBY 1 "ruby 1.6" "2000-09-11" "Ruby Programmers Reference Guide"
|
||||
.SH NAME
|
||||
|
@ -288,4 +288,4 @@ state messages during compiling scripts. You don't have to specify
|
|||
this switch, unless you are going to debug the Ruby interpreter.
|
||||
.PP
|
||||
.SH AUTHOR
|
||||
Ruby is designed and implemented by Yukihiro Matsumoto <matz@zetabits.com>.
|
||||
Ruby is designed and implemented by Yukihiro Matsumoto <matz@netlab.jp>.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#define RUBY_VERSION "1.6.5"
|
||||
#define RUBY_RELEASE_DATE "2001-09-06"
|
||||
#define RUBY_RELEASE_DATE "2001-09-08"
|
||||
#define RUBY_VERSION_CODE 165
|
||||
#define RUBY_RELEASE_CODE 20010906
|
||||
#define RUBY_RELEASE_CODE 20010908
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue