diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-04-20 06:20:35 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-04-20 06:20:35 +0000 |
commit | 4dd5679cbbac110f741a16ad7ca49e985f9fae82 (patch) | |
tree | 3e1e182d71267d83d37a5d3cb2dd924997a956c3 | |
parent | 5a1e96b22aa6759bde56ff9667759b44e9f6fa28 (diff) |
1.1b9_12
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | README | 127 | ||||
-rw-r--r-- | intern.h | 1 | ||||
-rw-r--r-- | lib/base64.rb | 19 | ||||
-rw-r--r-- | marshal.c | 3 | ||||
-rw-r--r-- | object.c | 8 | ||||
-rw-r--r-- | time.c | 16 | ||||
-rw-r--r-- | version.h | 4 |
8 files changed, 36 insertions, 155 deletions
@@ -1,3 +1,12 @@ +Mon Apr 20 14:47:49 1998 Yukihiro Matsumoto <matz@netlab.co.jp> + + * 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 <matz@netlab.co.jp> * variable.c (mod_remove_const): new method. @@ -10,6 +19,10 @@ Sat Apr 18 03:53:27 1998 Yukihiro Matsumoto <matz@netlab.co.jp> * 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 <watanabe@ase.ptg.sony.co.jp> + + * marshal.c (r_long): r_byte() may return signed byte. + Fri Apr 17 11:58:30 1998 NAGAI Hidetoshi <nagai@dumbo.ai.kyutech.ac.jp> * ext/tcltklib/tcltklib.c (lib_mainloop): thread and interrupt check. @@ -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 <matz@netlab.co.jp>. -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: @@ -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) @@ -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) { @@ -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; @@ -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]); } } @@ -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" |