diff options
author | Yukihiro Matsumoto <[email protected]> | 1994-11-01 08:27:44 +0900 |
---|---|---|
committer | Takashi Kokubun <[email protected]> | 2019-08-17 22:09:30 +0900 |
commit | c31025779da3020b9d1e9ad4c920e76b6b97d5fd (patch) | |
tree | 0823b3c8ef654b96e495d87933f356192de7d773 | |
parent | 29f237a8b1df650089b54447f070726c75706b6f (diff) |
version 0.55v0_55
https://cache.ruby-lang.org/pub/ruby/1.0/ruby-0.55.tar.gz
-rw-r--r-- | array.c | 2 | ||||
-rw-r--r-- | bignum.c | 2 | ||||
-rw-r--r-- | class.c | 2 | ||||
-rw-r--r-- | defines.h | 2 | ||||
-rw-r--r-- | dict.c | 2 | ||||
-rw-r--r-- | dln.c | 3 | ||||
-rw-r--r-- | env.h | 4 | ||||
-rw-r--r-- | error.c | 2 | ||||
-rw-r--r-- | etc.c | 2 | ||||
-rw-r--r-- | eval.c | 35 | ||||
-rw-r--r-- | file.c | 157 | ||||
-rw-r--r-- | gc.c | 2 | ||||
-rw-r--r-- | glob.c | 2 | ||||
-rw-r--r-- | gnuglob.c | 2 | ||||
-rw-r--r-- | inits.c | 2 | ||||
-rw-r--r-- | io.c | 20 | ||||
-rw-r--r-- | math.c | 2 | ||||
-rw-r--r-- | node.h | 2 | ||||
-rw-r--r-- | numeric.c | 2 | ||||
-rw-r--r-- | object.c | 2 | ||||
-rw-r--r-- | parse.y | 2 | ||||
-rw-r--r-- | process.c | 2 | ||||
-rw-r--r-- | random.c | 2 | ||||
-rw-r--r-- | re.c | 2 | ||||
-rw-r--r-- | ruby.1 | 4 | ||||
-rw-r--r-- | ruby.c | 2 | ||||
-rw-r--r-- | sample/io.rb | 3 | ||||
-rw-r--r-- | socket.c | 2 | ||||
-rw-r--r-- | spec | 73 | ||||
-rw-r--r-- | string.c | 95 | ||||
-rw-r--r-- | time.c | 2 | ||||
-rw-r--r-- | variable.c | 2 | ||||
-rw-r--r-- | version.h | 4 |
33 files changed, 263 insertions, 181 deletions
@@ -3,7 +3,7 @@ array.c - $Author: matz $ - $Date: 1994/10/14 06:19:01 $ + $Date: 1994/11/01 08:27:44 $ created at: Fri Aug 6 09:46:12 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -3,7 +3,7 @@ bignum.c - $Author: matz $ - $Date: 1994/10/14 06:19:03 $ + $Date: 1994/11/01 08:27:46 $ created at: Fri Jun 10 00:48:55 JST 1994 ************************************************/ @@ -3,7 +3,7 @@ class.c - $Author: matz $ - $Date: 1994/10/14 06:19:04 $ + $Date: 1994/11/01 08:27:48 $ created at: Tue Aug 10 15:05:44 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -19,7 +19,7 @@ /* define USE_DLN to load object file(.o). */ #ifdef HAVE_A_OUT_H -#undef USE_DLN +#define USE_DLN #ifdef USE_DLN #define LIBC_NAME "libc.a" #define DLN_DEFAULT_PATH "/lib:/usr/lib:." @@ -3,7 +3,7 @@ dict.c - $Author: matz $ - $Date: 1994/10/14 10:00:52 $ + $Date: 1994/11/01 08:27:49 $ created at: Mon Nov 22 18:51:18 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -172,6 +172,9 @@ dln_find_1(fname, path, exe_flag) #ifndef N_COMM # define N_COMM 0x12 #endif +#ifndef N_MAGIC +# define N_MAGIC(x) (x).a_magic +#endif #define INVALID_OBJECT(h) (N_MAGIC(h) != OMAGIC) @@ -3,8 +3,8 @@ env.h - $Author: matz $ - $Revision: 1.4 $ - $Date: 1994/10/14 06:19:14 $ + $Revision: 1.5 $ + $Date: 1994/11/01 08:27:51 $ created at: Mon Jul 11 11:53:03 JST 1994 ************************************************/ @@ -3,7 +3,7 @@ error.c - $Author: matz $ - $Date: 1994/10/14 06:19:16 $ + $Date: 1994/11/01 08:27:52 $ created at: Mon Aug 9 16:11:34 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -3,7 +3,7 @@ etc.c - $Author: matz $ - $Date: 1994/10/14 06:19:17 $ + $Date: 1994/11/01 08:27:53 $ created at: Tue Mar 22 18:39:19 JST 1994 ************************************************/ @@ -3,7 +3,7 @@ eval.c - $Author: matz $ - $Date: 1994/10/14 10:00:53 $ + $Date: 1994/11/01 08:27:55 $ created at: Thu Jun 10 14:22:17 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -1051,7 +1051,7 @@ rb_eval(node) VALUE str, str2; NODE *list = node->nd_next; - str = node->nd_lit; + str = str_new3(node->nd_lit); while (list) { if (list->nd_head->type == NODE_STR) { str2 = list->nd_head->nd_lit; @@ -1618,16 +1618,22 @@ rb_ensure(b_proc, data1, e_proc, data2) struct st_table *new_idhash(); static void -rb_undefined(obj, id) +rb_undefined(obj, id, noex) VALUE obj; ID id; + int noex; { VALUE desc = obj_as_string(obj); + char *format; if (RSTRING(desc)->len > 160) { desc = Fkrn_to_s(obj); } - Fail("undefined method `%s' for \"%s\"(%s)", + if (noex) + format = "method `%s' not available for \"%s\"(%s)"; + else + format = "undefined method `%s' for \"%s\"(%s)"; + Fail(format, rb_id2name(id), RSTRING(desc)->ptr, rb_class2name(CLASS_OF(obj))); @@ -1646,17 +1652,10 @@ rb_call(class, recv, mid, argc, argv, func) VALUE result; struct cache_entry *ent; - PUSH_ENV(); - Qself = recv; - the_env->last_func = mid; - the_env->argc = argc; - the_env->argv = argv; - iter_level--; - /* is it in the method cache? */ ent = cache + EXPR1(class, mid); if (ent->class == class && ent->mid == mid) { - if (ent->method == Qnil) rb_undefined(recv, mid); + if (ent->method == Qnil) rb_undefined(recv, mid, 0); class = ent->origin; mid = ent->mid; body = ent->method->nd_head; @@ -1666,12 +1665,20 @@ rb_call(class, recv, mid, argc, argv, func) ID id = mid; if ((body = rb_get_method_body(&class, &id, &noex)) == Qnil) { - rb_undefined(recv, mid); + rb_undefined(recv, mid, 0); } mid = id; } - if (!func && noex) rb_undefined(recv, mid); + if (!func && noex) rb_undefined(recv, mid, 1); + + PUSH_ENV(); + Qself = recv; + the_env->last_func = mid; + the_env->argc = argc; + the_env->argv = argv; + iter_level--; + the_env->last_class = class; if (body->type == NODE_CFUNC) { @@ -4,7 +4,7 @@ file.c - $Author: matz $ - $Date: 1994/10/14 06:19:20 $ + $Date: 1994/11/01 08:27:57 $ created at: Mon Nov 15 12:24:34 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -55,6 +55,51 @@ file_open(fname, mode) return port; } +static int +apply2files0(func, args, arg, gl) + void (*func)(); + struct RArray *args; + void *arg; + int gl; +{ + int i, n; + VALUE path; + + for (i=n=0; i<args->len; i++) { + path = args->ptr[i]; + if (TYPE(path) == T_STRING) { + if (gl) { + char *p; + p = RSTRING(path)->ptr; + while (*p) { + switch (*p++) { + case '*': case '?': + case '[': case ']': + case '{': case '}': + path = glob_new(path); + goto glob; + } + } + } + (*func)(path, arg); + n++; + } + else { + extern VALUE C_Glob; + + if (!obj_is_kind_of(path, C_Glob)) { + WrongType(path, T_STRING); + } + glob: + n += apply2files0(func, rb_to_a(path), arg, 0); + } + } + + return n; +} + +#define apply2files(func,args,arg) apply2files0(func,args,arg,1) + static VALUE Ffile_tell(obj) VALUE obj; @@ -772,27 +817,29 @@ Ffile_ctime2(obj) return time_new(st.st_ctime, 0); } +static void +chmod_internal(path, mode) + struct RString *path; + int mode; +{ + if (chmod(path->ptr, mode) == -1) + rb_sys_fail(RSTRING(path)->ptr); +} + static VALUE Ffile_chmod(obj, args) VALUE obj, args; { VALUE vmode; VALUE rest; - int mode, i, len; + int mode, n; VALUE path; rb_scan_args(args, "1*", &vmode, &rest); mode = NUM2INT(vmode); - len = RARRAY(rest)->len; - for (i=0; i<len; i++) { - path = RARRAY(rest)->ptr[i]; - Check_Type(path, T_STRING); - if (chmod(RSTRING(path)->ptr, mode) == -1) - rb_sys_fail(RSTRING(path)->ptr); - } - - return INT2FIX(i); + n = apply2files(chmod_internal, rest, mode); + return INT2FIX(n); } static VALUE @@ -811,39 +858,43 @@ Ffile_chmod2(obj, vmode) return INT2FIX(0); } +struct chown_args { + int owner, group; +}; + +static void +chown_internal(path, args) + struct RString *path; + struct chown_args *args; +{ + if (chown(path->ptr, args->owner, args->group) < 0) + rb_sys_fail(path->ptr); +} + static VALUE Ffile_chown(obj, args) VALUE obj, args; { VALUE o, g, rest; - int owner, group; - int i, len; + struct chown_args arg; + int n; - len = rb_scan_args(args, "2*", &o, &g, &rest); + rb_scan_args(args, "2*", &o, &g, &rest); if (o == Qnil) { - owner = -1; + arg.owner = -1; } else { - owner = NUM2INT(o); + arg.owner = NUM2INT(o); } if (g == Qnil) { - group = -1; + arg.group = -1; } else { - group = NUM2INT(g); - } - - len -= 2; - for (i=0; i<len; i++) { - Check_Type(RARRAY(rest)->ptr[i], T_STRING); - } - - for (i=0; i<len; i++) { - if (chown(RSTRING(RARRAY(rest)->ptr[i])->ptr, owner, group) < 0) - rb_sys_fail(RSTRING(RARRAY(rest)->ptr[i])->ptr); + arg.group = NUM2INT(g); } - return INT2FIX(i); + n = apply2files(chown_internal, rest, &arg); + return INT2FIX(n); } Ffile_chown2(obj, owner, group) @@ -861,30 +912,30 @@ Ffile_chown2(obj, owner, group) struct timeval *time_timeval(); +static void +utime_internal(path, tvp) + struct RString *path; + struct timeval tvp[]; +{ + if (utimes(path->ptr, tvp) < 0) + rb_sys_fail(path->ptr); +} + static VALUE Ffile_utime(obj, args) VALUE obj, args; { VALUE atime, mtime, rest; struct timeval tvp[2]; - int i, len; + int n; - len = rb_scan_args(args, "2*", &atime, &mtime, &rest); + rb_scan_args(args, "2*", &atime, &mtime, &rest); tvp[0] = *time_timeval(atime); tvp[1] = *time_timeval(mtime); - len -= 2; - for (i=0; i<len; i++) { - Check_Type(RARRAY(rest)->ptr[i], T_STRING); - } - - for (i=0; i<len; i++) { - if (utimes(RSTRING(RARRAY(rest)->ptr[i])->ptr, tvp) < 0) - rb_sys_fail(RSTRING(RARRAY(rest)->ptr[i])->ptr); - } - - return INT2FIX(i); + n = apply2files(utime_internal, rest, tvp); + return INT2FIX(n); } static VALUE @@ -928,23 +979,23 @@ Ffile_readlink(obj, path) return str_new(buf, cc); } +static void +unlink_internal(path) + struct RString *path; +{ + if (unlink(path->ptr) < 0) + rb_sys_fail(path->ptr); +} + static VALUE Ffile_unlink(obj, args) VALUE obj; struct RArray *args; { - int i, len; - - len = args->len; - for (i=0; i<len; i++) { - Check_Type(args->ptr[i], T_STRING); - } - for (i=0; i<len; i++) { - if (unlink(RSTRING(args->ptr[i])->ptr) < 0) - rb_sys_fail(RSTRING(args->ptr[i])->ptr); - } + int n; - return INT2FIX(i); + n = apply2files(unlink_internal, args, Qnil); + return INT2FIX(n); } static VALUE @@ -3,7 +3,7 @@ gc.c - $Author: matz $ - $Date: 1994/10/14 06:19:22 $ + $Date: 1994/11/01 08:27:58 $ created at: Tue Oct 5 09:44:46 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -111,7 +111,7 @@ glob_new0(class, str) VALUE glob_new(str) - char *str; + struct RString *str; { return glob_new0(C_Glob, str); } @@ -86,7 +86,7 @@ extern void bcopy (); # endif /* !RISC6000 */ #endif /* USG */ -#if defined(sparc) && !defined(__GNUC__) +#if defined(HAVE_ALLOCA_H) && !defined(__GNUC__) #include <alloca.h> #else char *alloca (); @@ -3,7 +3,7 @@ inits.c - $Author: matz $ - $Date: 1994/10/14 06:19:24 $ + $Date: 1994/11/01 08:28:00 $ created at: Tue Dec 28 16:01:58 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -3,7 +3,7 @@ io.c - $Author: matz $ - $Date: 1994/10/14 10:00:55 $ + $Date: 1994/11/01 08:28:01 $ created at: Fri Oct 15 18:08:59 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -883,13 +883,21 @@ rb_xstring(str) struct timeval *time_timeval(); -#ifdef __linux__ -# define READ_PENDING(fp) ((fp)->_gptr < (fp)->_egptr > 0) -#else +#ifdef STDSTDIO +# define READ_PENDING(fp) ((fp)->_cnt != 0) +#else # ifdef __SLBF -# define READ_PENDING(fp) ((fp)->_r > 0) +# define READ_PENDING(fp) ((fp)->_r > 0) # else -# define READ_PENDING(fp) ((fp)->_cnt != 0) +# ifdef __linux__ +# ifdef _other_gbase +# define READ_PENDING(fp) ((fp)->_IO_read_ptr < (fp)->_IO_read_end) +# else +# define READ_PENDING(fp) ((fp)->_gptr < (fp)->_egptr) +# endif +# else +--------------> You Lose <-------------- +# endif # endif #endif @@ -3,7 +3,7 @@ math.c - $Author: matz $ - $Date: 1994/10/14 06:19:27 $ + $Date: 1994/11/01 08:28:03 $ created at: Tue Jan 25 14:12:56 JST 1994 Copyright (C) 1994 Yukihiro Matsumoto @@ -3,7 +3,7 @@ node.h - $Author: matz $ - $Date: 1994/10/14 06:19:30 $ + $Date: 1994/11/01 08:28:04 $ created at: Fri May 28 15:14:02 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -3,7 +3,7 @@ numeric.c - $Author: matz $ - $Date: 1994/10/14 06:19:31 $ + $Date: 1994/11/01 08:28:06 $ created at: Fri Aug 13 18:33:09 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -3,7 +3,7 @@ object.c - $Author: matz $ - $Date: 1994/10/14 10:00:56 $ + $Date: 1994/11/01 08:28:07 $ created at: Thu Jul 15 12:01:24 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -3,7 +3,7 @@ parse.y - $Author: matz $ - $Date: 1994/10/14 06:19:35 $ + $Date: 1994/11/01 08:28:09 $ created at: Fri May 28 18:02:42 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -3,7 +3,7 @@ process.c - $Author: matz $ - $Date: 1994/10/14 10:00:58 $ + $Date: 1994/11/01 08:28:14 $ created at: Tue Aug 10 14:30:50 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -3,7 +3,7 @@ random.c - $Author: matz $ - $Date: 1994/10/14 10:00:59 $ + $Date: 1994/11/01 08:28:18 $ created at: Fri Dec 24 16:39:21 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -3,7 +3,7 @@ re.c - $Author: matz $ - $Date: 1994/10/14 06:19:40 $ + $Date: 1994/11/01 08:28:21 $ created at: Mon Aug 9 18:24:49 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -97,7 +97,7 @@ ruby \- ���֥������Ȼظ�������ץȸ��� % echo matz > /tmp/junk % cat /tmp/junk matz - % ruby -p -i.bak -e '$_.toupper' /tmp/junk + % ruby -p -i.bak -e '$_.upcase' /tmp/junk % cat /tmp/junk MATZ % cat /tmp/junk.bak @@ -158,7 +158,7 @@ ruby \- ���֥������Ȼظ�������ץȸ��� #! /usr/local/bin/ruby \-s # \-xyz���ץ����Ϳ�������"true"��ɽ������. - if $xyz then print("true\\n") end + print "true\n" if $xyz .fi .TP 5 @@ -3,7 +3,7 @@ ruby.c - $Author: matz $ - $Date: 1994/10/14 06:19:43 $ + $Date: 1994/11/01 08:28:24 $ created at: Tue Aug 10 12:47:31 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto diff --git a/sample/io.rb b/sample/io.rb index b5591af7e4..0b8a537ef4 100644 --- a/sample/io.rb +++ b/sample/io.rb @@ -1,5 +1,6 @@ home = getenv("HOME") -print(home.sub("m", "&&"), home, "\n") +home.sub("m", "&&") +print(home, "\n") print(home.reverse, "\n") if File.s("io.rb") @@ -3,7 +3,7 @@ socket.c - $Author: matz $ - $Date: 1994/10/14 06:19:46 $ + $Date: 1994/11/01 08:28:26 $ created at: Thu Mar 31 12:21:29 JST 1994 ************************************************/ @@ -915,7 +915,8 @@ Ruby�ˤϸ�̩�ʰ�̣�Ǥϴؿ��Ϥʤ���Kernel���饹�δؿ���åɤ�(���Ƥ� �����ƥ��ѿ�`$_'�λؤ�ʸ������Ф����ִ���Ԥʤ�. ʸ������� pattern�˥ޥå�������ʬ������replace���֤�������. String���饹 - ��gsub��åɤβ���ȤΤ���. + ��gsub��åɤβ���ȤΤ���. gsub��åɤ�`$_'���ͤ� + ����. iterator_p() @@ -1035,8 +1036,9 @@ Ruby�ˤϸ�̩�ʰ�̣�Ǥϴؿ��Ϥʤ���Kernel���饹�δؿ���åɤ�(���Ƥ� sub(pattern, replace) �����ƥ��ѿ�`$_'�λؤ�ʸ������Ф����ִ���Ԥʤ�. ʸ������Ǻ� - ���pattern�˥ޥå�������ʬ��replace���֤�������. String���饹 - ��sub��åɤβ���ȤΤ���. + ���pattern�˥ޥå�������ʬ��replace���֤�������. sub��å� + ��`$_'���ͤ�����. ����¾�ξܺ٤˴ؤ��Ƥ�String���饹��sub + ��åɤβ���ȤΤ���. syscall(num, arg...) @@ -1906,13 +1908,14 @@ Single Methods: chmod(mode, path, file...) �ե�����Υѡ��ߥå������ѹ�����(cf chmod(2)). �ѹ������ե� - ��������֤�. + ��������֤�. file�ˤϥ磻��ɥ����ɤ����. chown(owner, group, file...) �ե�����ν�ͭ�Ԥȥ��롼�פ��ѹ�����(cf chown(2)). nil��-1��� �ꤹ�뤳�Ȥˤ�äƽ�ͭ�Ԥ䥰�롼�פߤΤޤ��Ѥ��ʤ��Ǥ����� - �Ȥ��Ǥ���. �ѹ������ե���������֤�. + �Ȥ��Ǥ���. �ѹ������ե���������֤�. file�ˤϥ磻��ɥ����ɤ� + ����. link(old, new) @@ -1952,12 +1955,14 @@ Single Methods: unlink(file...) �ե������������. �ǥ��쥯�ȥ�κ���ˤ�Dir.rmdir��Ȥ�����. + file�ˤϥ磻��ɥ����ɤ����. utime(atime, mtime, file...) �ե�����Υ������������atime��, ���������mtime�����ꤹ��. atime, mtime�Ͽ��ޤ���Time���饹�Υ����Ǥʤ���Фʤ�� - ��. + ��. file�ˤϥ磻��ɥ����ɤ����. + ����ʳ���FileTest�⥸�塼��Υ�åɤ��ðۥ�åɤȤ��ƻ���. @@ -2926,9 +2931,15 @@ Methods: �����ܤ���len�Х���ʬ����ʬʸ�����val�Ȥ���Ϳ����줿ʸ����� �֤�������. + capitalize + + ʸ������κǽ��ʸ����(���줬����ե��٥åȤǤ����), ��ʸ���� + �Ѵ���, �Ĥ�ʸ������Υ���ե��٥åȤ�ʸ�����֤�������. + chop - ʸ����κǸ�ΥХ��Ȥ��ڤ���Ȥ�. + ʸ����κǸ�ΥХ��Ȥ��ڤ���Ȥ�. ����ʸ������ѹ����뤳�Ȥ��� + �դ��뤳��. crypt(salt) @@ -2939,7 +2950,12 @@ Methods: ʸ����Τ���, str�˴ޤޤ��ʸ����������. ʸ����λ����tr�� Ʊ�ͤǤ���, a-b��a����b�ޤǤ��ϰϤ�, ��Ƭ��^��ʸ���������(�� - �ޤ�Ƥʤ���Τ����)���̣����. + �ޤ�Ƥʤ���Τ����)���̣����. ����ʸ������ѹ����뤳�Ȥ��� + �դ��뤳��. + + downcase + + ʸ������Υ���ե��٥åȤ����ƾ�ʸ�����֤�������ʸ������֤�. each @@ -2951,9 +2967,9 @@ Methods: gsub(pattern, replace) - ʸ�������pattern�˥ޥå�������ʬ������replace���֤�������. �� - ��ʸ����replace���&��\0�ϥޥå�����ʸ�����, \1..\9��n���ܤ� - ��̤����Ƥ��֤���������. + ʸ�������pattern�˥ޥå�������ʬ������replace���֤�������. + �ִ�ʸ����replace���&��\0�ϥޥå�����ʸ�����, \1..\9��n���� + �γ�̤����Ƥ��֤���������. hex @@ -2969,11 +2985,6 @@ Methods: ʸ����˰�դ��б������������֤�. ʸ����ϥʥ�ʸ����ޤ�ǤϤ� ��ʤ�. - lcfirst - - ʸ������κǽ��ʸ����(���줬����ե��٥åȤǤ����), ��ʸ���� - �Ѵ�����. - length size @@ -3037,7 +3048,8 @@ Methods: ʸ����Τ���, str�˴ޤޤ��ʸ����Ϣ³���Ƥ������, ��ʸ���˰� �̤���. str����ά���줿���, ���٤Ƥ�ʸ�����оݤȤ���. ʸ���� �λ����tr��Ʊ�ͤǤ���, `a-b'��a����b�ޤǤ��ϰϤ�, ��Ƭ��`^'�� - ʸ���������(�ޤޤ�Ƥʤ���Τ����)���̣����. + ʸ���������(�ޤޤ�Ƥʤ���Τ����)���̣����. ����ʸ������� + �����뤳�Ȥ����դ��뤳��. strip @@ -3046,7 +3058,7 @@ Methods: sub(pattern, replace) ʸ�������pattern�˥ޥå�������ʬ��replace���֤�������. �ִ�ʸ - ����replace���&��\0�ϥޥå�����ʸ�����, \1..\9��n���ܤγ�� + ����replace���&��\0�ϥޥå�����ʸ�����, \1..\9�� n���ܤγ�� �����Ƥ��֤���������. sub()��gsub()�Ȱۤʤ�, �ǽ�Υޥå��� �����ִ�����. @@ -3063,8 +3075,7 @@ Methods: swapcase ʸ������Υ���ե��٥åȤΤ�����ʸ����ʸ����, ��ʸ������ʸ�� - �ˤ��֤�������. ����ʸ����������뤳�Ȥ�����. ư��Ȥ��Ƥ� - tr("a-zA-Z", "A-Za-z")��꾯��®��. + ���֤�������. to_f @@ -3075,18 +3086,14 @@ Methods: ʸ�����10�ʿ���ɽ��ʸ����Ȳ�ᤷ��, �������Ѵ�����. toupper - uc - upcase - ʸ������Υ���ե��٥åȤ�������ʸ�����֤�������. ����ʸ���� - ��������뤳�Ȥ�����. tr("a-z", "A-Z")��꾯��®��. + ʸ������Υ���ե��٥åȤ�������ʸ�����֤�������ʸ������֤�. + tr("a-z", "A-Z")��꾯��®��. tolower - lc - downcase - ʸ������Υ���ե��٥åȤ����ƾ�ʸ�����֤�������. ����ʸ���� - ��������뤳�Ȥ�����. tr("A-Z", "a-z")��꾯��®��. + ʸ������Υ���ե��٥åȤ����ƾ�ʸ�����֤�������ʸ������֤�. + tr("A-Z", "a-z")��꾯��®��. tr(search, replace) @@ -3109,11 +3116,6 @@ Methods: ���ؤΤ���, str.tr(src,repl).squeeze(repl)�����������å� tr_s(src,repl) ������Ƥ���. - ucfirst - - ʸ������κǽ��ʸ����(���줬����ե��٥åȤǤ����), ��ʸ���� - �Ѵ�����. - unpack(template) ʸ�����templateʸ����ˤ������äƥ���ѥå���, ���������Ǥ� @@ -3145,6 +3147,11 @@ Methods: ruby��unpack��perl�Ȱ�äƥ����å�����η���ǽ���ʤ����Ȥ��� �դ��뤳��. + + upcase + + ʸ������Υ���ե��٥åȤ�������ʸ�����֤�������ʸ������֤�. + upto(end) self����Ϥޤä�, end�ޤǡּ��Ρ�ʸ�������Ϳ���륤�ƥ졼��. @@ -3,7 +3,7 @@ string.c - $Author: matz $ - $Date: 1994/10/14 10:01:01 $ + $Date: 1994/11/01 08:28:38 $ created at: Mon Aug 9 17:12:58 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto @@ -29,12 +29,12 @@ str_new(ptr, len) OBJSETUP(str, C_String, T_STRING); str->len = len; + str->orig = Qnil; str->ptr = ALLOC_N(char,len+1); if (ptr) { memcpy(str->ptr, ptr, len); } str->ptr[len] = '\0'; - str->orig = Qnil; return (VALUE)str; } @@ -691,7 +691,7 @@ str_sub(str, pat, val, once) if (once) break; } if (n == 0) return Qnil; - return INT2FIX(n); + return (VALUE)str; } static VALUE @@ -785,8 +785,6 @@ Fstr_sub_internal(str, pat, val, once) VALUE str, pat, val; int once; { - VALUE reg, result; - Check_Type(val, T_STRING); str_modify(str); @@ -795,9 +793,7 @@ Fstr_sub_internal(str, pat, val, once) return str_sub(str, pat, val, once); case T_STRING: - reg = re_regcomp(pat); - result = str_sub(str, reg, val, once); - return result; + return str_sub(str, re_regcomp(pat), val, once); default: /* type failed */ @@ -959,15 +955,14 @@ Fstr_inspect(str) } static VALUE -Fstr_toupper(str) +Fstr_upcase(str) struct RString *str; { - char *s; - int i; + char *s, *send; str_modify(str); - s = str->ptr; - for (i=0; i < str->len; i++) { + s = str->ptr; send = s + str->len; + while (s < send) { if (islower(*s)) { *s = toupper(*s); } @@ -978,15 +973,14 @@ Fstr_toupper(str) } static VALUE -Fstr_tolower(str) +Fstr_downcase(str) struct RString *str; { - char *s; - int i; + char *s, *send; str_modify(str); - s = str->ptr; - for (i=0; i < str->len; i++) { + s = str->ptr; send = s + str->len; + while (s < send) { if (isupper(*s)) { *s = tolower(*s); } @@ -997,43 +991,32 @@ Fstr_tolower(str) } static VALUE -Fstr_ucfirst(str) +Fstr_capitalize(str) struct RString *str; { char *s, *send; - int i; str_modify(str); s = str->ptr; send = s + str->len; if (islower(*s)) *s = toupper(*s); + while (++s < send) { + if (isupper(*s)) { + *s = tolower(*s); + } + } return (VALUE)str; } static VALUE -Fstr_lcfirst(str) +Fstr_swapcase(str) struct RString *str; { char *s, *send; - int i; str_modify(str); s = str->ptr; send = s + str->len; - if (isupper(*s)) - *s = tolower(*s); - return (VALUE)str; -} - -static VALUE -Fstr_swapcase(str) - struct RString *str; -{ - char *s; - int i; - - str_modify(str); - s = str->ptr; - for (i=0; i < str->len; i++) { + while (s < send) { if (isupper(*s)) { *s = tolower(*s); } @@ -1046,6 +1029,20 @@ Fstr_swapcase(str) return (VALUE)str; } +static VALUE +Fstr_toupper(str) + struct RString *str; +{ + return Fstr_upcase(str_new(str_new(str->ptr, str->len))); +} + +static VALUE +Fstr_tolower(str) + struct RString *str; +{ + return Fstr_downcase(str_new(str_new(str->ptr, str->len))); +} + struct tr { int last, max; char *p, *pend; @@ -1474,8 +1471,18 @@ Fstr_strip(str) t++; if (s > str->ptr || t < e) { - str_modify(str); - return str_new(s, t-s); + char *p = str->ptr; + int len = t-s; + + str->ptr = ALLOC_N(char, len+1); + memcpy(str->ptr, p, len); + str->ptr[len] = '\0'; + if (str->orig) { + str->orig = Qnil; + } + else { + free(p); + } } return (VALUE)str; } @@ -1649,13 +1656,11 @@ Init_String() rb_define_method(C_String, "_inspect", Fstr_inspect, 0); rb_define_method(C_String, "toupper", Fstr_toupper, 0); - rb_define_alias(C_String, "upcase", "toupper"); - rb_define_alias(C_String, "uc", "toupper"); rb_define_method(C_String, "tolower", Fstr_tolower, 0); - rb_define_alias(C_String, "downcase", "tolower"); - rb_define_alias(C_String, "lc", "tolower"); - rb_define_method(C_String, "ucfirst", Fstr_ucfirst, 0); - rb_define_method(C_String, "lcfirst", Fstr_lcfirst, 0); + + rb_define_method(C_String, "upcase", Fstr_upcase, 0); + rb_define_method(C_String, "downcase", Fstr_downcase, 0); + rb_define_method(C_String, "capitalize", Fstr_capitalize, 0); rb_define_method(C_String, "swapcase", Fstr_swapcase, 0); rb_define_method(C_String, "hex", Fstr_hex, 0); @@ -3,7 +3,7 @@ time.c - $Author: matz $ - $Date: 1994/08/12 11:06:46 $ + $Date: 1994/11/01 08:28:40 $ created at: Tue Dec 28 14:31:59 JST 1993 Copyright (C) 1994 Yukihiro Matsumoto diff --git a/variable.c b/variable.c index 1a06defe5e..ae3163de19 100644 --- a/variable.c +++ b/variable.c @@ -3,7 +3,7 @@ variable.c - $Author: matz $ - $Date: 1994/08/19 09:32:10 $ + $Date: 1994/11/01 08:28:42 $ created at: Tue Apr 19 23:55:15 JST 1994 ************************************************/ @@ -1,2 +1,2 @@ -#define RUBY_VERSION "0.54" -#define VERSION_DATE "94/10/26" +#define RUBY_VERSION "0.55" +#define VERSION_DATE "94/11/18" |