From 4dd5679cbbac110f741a16ad7ca49e985f9fae82 Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 20 Apr 1998 06:20:35 +0000 Subject: 1.1b9_12 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 13 ++++++ README | 127 ---------------------------------------------------------- intern.h | 1 + lib/base64.rb | 19 +-------- marshal.c | 3 +- object.c | 8 ++++ time.c | 16 ++++---- version.h | 4 +- 8 files changed, 36 insertions(+), 155 deletions(-) diff --git a/ChangeLog b/ChangeLog index 05dfaab21a..a150ab9a90 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Mon Apr 20 14:47:49 1998 Yukihiro Matsumoto + + * experimental release 1.1b9_12. + + * time.c (time_arg): args may be string (support for reduced + implicit type conversion). + + * lib/base64.rb: changed to use pack/unpack with `m' template. + Mon Apr 20 06:23:20 1998 Yukihiro Matsumoto * variable.c (mod_remove_const): new method. @@ -10,6 +19,10 @@ Sat Apr 18 03:53:27 1998 Yukihiro Matsumoto * class.c (rb_include_module): check for super modules, since module's included modules may be changed. +Fri Apr 17 21:50:47 1998 WATANABE Hirofumi + + * marshal.c (r_long): r_byte() may return signed byte. + Fri Apr 17 11:58:30 1998 NAGAI Hidetoshi * ext/tcltklib/tcltklib.c (lib_mainloop): thread and interrupt check. diff --git a/README b/README index d41fb9f79a..e69de29bb2 100644 --- a/README +++ b/README @@ -1,127 +0,0 @@ -* What's Ruby - -Ruby is the interpreted scripting language for quick and -easy object-oriented programming. It has many features to -process text files and to do system management tasks (as in -perl). It is simple, straight-forward, and extensible. - -* Features of Ruby - - + Simple Syntax - + *Normal* Object-Oriented features(ex. class, method calls) - + *Advanced* Object-Oriented features(ex. Mix-in, Singleton-method) - + Operator Overloading - + Exception Handling - + Iterators and Closures - + Garbage Collection - + Dynamic Loading of Object files(on some architecture) - + Highly Portable(works on many UNIX machines) - -* How to get Ruby - -The Ruby distribution can be found on - - ftp://ftp.netlab.co.jp/pub/lang/ruby/ - -* How to compile and install - -This is what you need to do to compile and install Ruby: - - 1. Run ./configure, which will generate config.h and Makefile. - - 2. Edit defines.h if you need. Probably this step will not need. - - 3. Remove comment mark(#) before the module names from ext/Setup, if - you want to link modules statically. - - If you want to link all the extension modules, remove comment - mark from the line "#option nodynamic". - - 4. Run make. - - 5. Optionally, run 'make test' to check that the compiled Ruby - interpreter works well. If you see the message "test succeeded", - your Ruby works as it should (hopefully). - - 6. Run 'make install' - -If you fail to compile Ruby, please send the detailed error report with -the error log and machine/OS type, to help others. - -* Copying - -Ruby is copyrighted free software by Yukihiro Matsumoto . -You can redistribute it and/or modify it under either the terms of the GPL -(see COPYING file), or the conditions below: - - 1. You may make and give away verbatim copies of the source form of the - software without restriction, provided that you duplicate all of the - original copyright notices and associated disclaimers. - - 2. You may modify your copy of the software in any way, provided that - you do at least ONE of the following: - - a) place your modifications in the Public Domain or otherwise make them - Freely Available, such as by posting said modifications to Usenet - or an equivalent medium, or by allowing the author to include your - modifications in the software. - - b) use the modified software only within your corporation or organization. - - c) rename any non-standard executables so the names do not conflict - with standard executables, which must also be provided. - - d) make other distribution arrangements with the author. - - 3. You may distribute the software in object code or executable - form, provided that you do at least ONE of the following: - - a) distribute the executables and library files of the software, - together with instructions (in the manual page or equivalent) - on where to get the original distribution. - - b) accompany the distribution with the machine-readable source of - the software. - - c) give non-standard executables non-standard names, with - instructions on where to get the original software - distribution. - - d) make other distribution arrangements with the author. - - 4. You may modify and include the part of the software into any other - software (possibly commercial). But some files in the distribution - are not written by the author, so that they are not under this terms. - They are gc.c(partly), utils.c(partly), regex.[ch], fnmatch.[ch], - glob.c, st.[ch] and some files under the ./missing directory. See - each files for the copying condition. - - 5. The scripts and library files supplied as input to or produced as - output from the software do not automatically fall under the - copyright of the software, but belong to whomever generated them, - and may be sold commercially, and may be aggregated with this - software. - - 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR - IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - PURPOSE. - -* Ruby home-page - -The URL of the Ruby home-page is: - - http://www.netlab.co.jp/ruby/ - -* The Author - -Feel free to send comments and bug reports to the author. Here is the -author's latest mail address: - - matz@netlab.co.jp - -------------------------------------------------------- -created at: Thu Aug 3 11:57:36 JST 1995 -Local variables: -mode: indented-text -end: diff --git a/intern.h b/intern.h index 2b87408ac7..6654640044 100644 --- a/intern.h +++ b/intern.h @@ -187,6 +187,7 @@ VALUE rb_inspect _((VALUE)); VALUE obj_is_instance_of _((VALUE, VALUE)); VALUE obj_is_kind_of _((VALUE, VALUE)); VALUE obj_alloc _((VALUE)); +int rb_obj2int _((VALUE)); VALUE rb_Integer _((VALUE)); VALUE rb_Float _((VALUE)); VALUE rb_String _((VALUE)); diff --git a/lib/base64.rb b/lib/base64.rb index 8b75ddaa9e..d7461d82e7 100644 --- a/lib/base64.rb +++ b/lib/base64.rb @@ -1,15 +1,7 @@ require "kconv" def decode64(str) - string = '' - for line in str.split("\n") - line.delete!('^A-Za-z0-9+/') # remove non-base64 chars - line.tr!('A-Za-z0-9+/', ' -_') # convert to uuencoded format - len = ["#{32 + line.length * 3 / 4}"].pack("c") - # compute length byte - string += "#{len}#{line}".unpack("u") # uudecode and concatenate - end - return string + str.unpack("m")[0] end def decode_b(str) @@ -27,14 +19,7 @@ def decode_b(str) end def encode64(bin) - encode = "" - pad = 0 - [bin].pack("u").each do |uu| - len = (2 + (uu[0] - 32)* 4) / 3 - encode << uu[1, len].tr('` -_', 'AA-Za-z0-9+/') - pad += uu.length - 2 - len - end - encode + "=" * (pad % 3) + [bin].pack("m") end def b64encode(bin, len = 60) diff --git a/marshal.c b/marshal.c index d5cb1dc68a..1aadcfb4e0 100644 --- a/marshal.c +++ b/marshal.c @@ -494,8 +494,9 @@ static long r_long(arg) struct load_arg *arg; { - int c = r_byte(arg), i; register long x; + int c = (char)r_byte(arg); + int i; if (c == 0) return 0; if (c > 0) { diff --git a/object.c b/object.c index 41acb4d021..88667e66f9 100644 --- a/object.c +++ b/object.c @@ -743,6 +743,14 @@ rb_Integer(val) return f_integer(Qnil, val); } +int +rb_obj2int(obj) + VALUE obj; +{ + VALUE i = f_integer(Qnil, obj); + return NUM2INT(i); +} + static VALUE to_flo(val) VALUE val; diff --git a/time.c b/time.c index bd13cdceb3..93011ff241 100644 --- a/time.c +++ b/time.c @@ -171,10 +171,10 @@ time_arg(argc, argv, args) rb_scan_args(argc, argv, "15", &v[0],&v[1],&v[2],&v[3],&v[4],&v[5]); } - args[0] = NUM2INT(v[0]); + args[0] = rb_obj2int(v[0]); if (args[0] < 70) args[0] += 100; if (args[0] > 1900) args[0] -= 1900; - if (v[1] == Qnil) { + if (NIL_P(v[1])) { args[1] = 0; } else if (TYPE(v[1]) == T_STRING) { @@ -189,25 +189,25 @@ time_arg(argc, argv, args) char c = RSTRING(v[1])->ptr[0]; if ('0' <= c && c <= '9') { - args[1] = NUM2INT(v[1])-1; + args[1] = rb_obj2int(v[1])-1; } } } else { - args[1] = NUM2INT(v[1]) - 1; + args[1] = rb_obj2int(v[1]) - 1; } - if (v[2] == Qnil) { + if (NIL_P(v[2])) { args[2] = 1; } else { - args[2] = NUM2INT(v[2]); + args[2] = rb_obj2int(v[2]); } for (i=3;i<6;i++) { - if (v[i] == Qnil) { + if (NIL_P(v[i])) { args[i] = 0; } else { - args[i] = NUM2INT(v[i]); + args[i] = rb_obj2int(v[i]); } } diff --git a/version.h b/version.h index 3ec1b2da9b..1860e401ee 100644 --- a/version.h +++ b/version.h @@ -1,2 +1,2 @@ -#define RUBY_VERSION "1.1b9_11" -#define VERSION_DATE "98/04/16" +#define RUBY_VERSION "1.1b9_12" +#define VERSION_DATE "98/04/20" -- cgit v1.2.3