mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* object.c (Init_Object): added Object#object_id, new name for
Object#id. [new] * object.c (rb_obj_id_obsolete): give warning for Object#id. * numeric.c (fix_intern): added Fixnum#to_sym. [new] * object.c (sym_to_sym): rename from Symbol#intern * enum.c (enum_zip): added Enumerable#zip. [new] * array.c (rb_ary_zip): added Array#zip. * error.c (init_syserr): remove sys_nerr dependency. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c960141333
commit
aae36756dc
10 changed files with 174 additions and 167 deletions
26
ChangeLog
26
ChangeLog
|
@ -1,3 +1,29 @@
|
||||||
|
Sat Nov 2 00:38:55 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* object.c (Init_Object): added Object#object_id, new name for
|
||||||
|
Object#id. [new]
|
||||||
|
|
||||||
|
* object.c (rb_obj_id_obsolete): give warning for Object#id.
|
||||||
|
|
||||||
|
* numeric.c (fix_intern): added Fixnum#to_sym. [new]
|
||||||
|
|
||||||
|
* object.c (sym_to_sym): rename from Symbol#intern
|
||||||
|
|
||||||
|
Fri Nov 1 14:21:06 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* enum.c (enum_zip): added Enumerable#zip. [new]
|
||||||
|
|
||||||
|
* array.c (rb_ary_zip): added Array#zip.
|
||||||
|
|
||||||
|
Thu Oct 31 20:10:18 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* error.c (init_syserr): remove sys_nerr dependency.
|
||||||
|
|
||||||
|
Thu Oct 31 09:31:51 2002 K.Kosako <kosako@sofnec.co.jp>
|
||||||
|
|
||||||
|
* eval.c (rb_export_method): undef'ed method visibility should not
|
||||||
|
be changed.
|
||||||
|
|
||||||
Wed Oct 30 17:00:47 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
|
Wed Oct 30 17:00:47 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
* eval.c (rb_mod_public_method_defined, etc.): new methods:
|
* eval.c (rb_mod_public_method_defined, etc.): new methods:
|
||||||
|
|
28
array.c
28
array.c
|
@ -1299,6 +1299,33 @@ rb_ary_delete_if(ary)
|
||||||
return ary;
|
return ary;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
rb_ary_zip(argc, argv, ary)
|
||||||
|
int argc;
|
||||||
|
VALUE *argv;
|
||||||
|
VALUE ary;
|
||||||
|
{
|
||||||
|
int i, j, len;
|
||||||
|
VALUE result;
|
||||||
|
|
||||||
|
len = RARRAY(ary)->len;
|
||||||
|
for (i=0; i<argc; i++) {
|
||||||
|
argv[i] = to_ary(argv[i]);
|
||||||
|
if (RARRAY(argv[i])->len > len) len = RARRAY(argv[i])->len;
|
||||||
|
}
|
||||||
|
result = rb_ary_new2(len);
|
||||||
|
for (i=0; i<len; i++) {
|
||||||
|
VALUE tmp = rb_ary_new2(argc+1);
|
||||||
|
|
||||||
|
rb_ary_push(tmp, rb_ary_entry(ary, i));
|
||||||
|
for (j=0; j<argc; j++) {
|
||||||
|
rb_ary_push(tmp, rb_ary_entry(argv[j], i));
|
||||||
|
}
|
||||||
|
rb_ary_push(result, tmp);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
rb_ary_replace(copy, orig)
|
rb_ary_replace(copy, orig)
|
||||||
VALUE copy, orig;
|
VALUE copy, orig;
|
||||||
|
@ -1865,6 +1892,7 @@ Init_Array()
|
||||||
rb_define_method(rb_cArray, "delete_if", rb_ary_delete_if, 0);
|
rb_define_method(rb_cArray, "delete_if", rb_ary_delete_if, 0);
|
||||||
rb_define_method(rb_cArray, "reject", rb_ary_reject, 0);
|
rb_define_method(rb_cArray, "reject", rb_ary_reject, 0);
|
||||||
rb_define_method(rb_cArray, "reject!", rb_ary_reject_bang, 0);
|
rb_define_method(rb_cArray, "reject!", rb_ary_reject_bang, 0);
|
||||||
|
rb_define_method(rb_cArray, "zip", rb_ary_zip, -1);
|
||||||
rb_define_method(rb_cArray, "replace", rb_ary_replace, 1);
|
rb_define_method(rb_cArray, "replace", rb_ary_replace, 1);
|
||||||
rb_define_method(rb_cArray, "clear", rb_ary_clear, 0);
|
rb_define_method(rb_cArray, "clear", rb_ary_clear, 0);
|
||||||
rb_define_method(rb_cArray, "fill", rb_ary_fill, -1);
|
rb_define_method(rb_cArray, "fill", rb_ary_fill, -1);
|
||||||
|
|
58
enum.c
58
enum.c
|
@ -486,6 +486,63 @@ enum_each_with_index(obj)
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
zip_i(val, memo)
|
||||||
|
VALUE val;
|
||||||
|
NODE *memo;
|
||||||
|
{
|
||||||
|
VALUE ary = memo->u1.value;
|
||||||
|
int i = memo->u3.cnt++;
|
||||||
|
int elen = memo->u2.argc+1;
|
||||||
|
VALUE tmp;
|
||||||
|
|
||||||
|
if (i < RARRAY(ary)->len) {
|
||||||
|
tmp = RARRAY(ary)->ptr[i];
|
||||||
|
RARRAY(tmp)->ptr[0] = val;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tmp = rb_ary_new2(elen);
|
||||||
|
RARRAY(tmp)->ptr[0] = val;
|
||||||
|
for (i=1; i<elen; i++) {
|
||||||
|
RARRAY(tmp)->ptr[i] = Qnil;
|
||||||
|
}
|
||||||
|
RARRAY(tmp)->len = elen;
|
||||||
|
rb_ary_push(ary, tmp);
|
||||||
|
}
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
enum_zip(argc, argv, obj)
|
||||||
|
int argc;
|
||||||
|
VALUE *argv;
|
||||||
|
VALUE obj;
|
||||||
|
{
|
||||||
|
int i, j, len;
|
||||||
|
VALUE result;
|
||||||
|
NODE *memo;
|
||||||
|
|
||||||
|
len = 0;
|
||||||
|
for (i=0; i<argc; i++) {
|
||||||
|
argv[i] = rb_convert_type(argv[i], T_ARRAY, "Array", "to_ary");
|
||||||
|
if (RARRAY(argv[i])->len > len) len = RARRAY(argv[i])->len;
|
||||||
|
}
|
||||||
|
result = rb_ary_new2(len);
|
||||||
|
for (i=0; i<len; i++) {
|
||||||
|
VALUE tmp = rb_ary_new2(argc+1);
|
||||||
|
|
||||||
|
rb_ary_push(tmp, Qnil);
|
||||||
|
for (j=0; j<argc; j++) {
|
||||||
|
rb_ary_push(tmp, rb_ary_entry(argv[j], i));
|
||||||
|
}
|
||||||
|
rb_ary_push(result, tmp);
|
||||||
|
}
|
||||||
|
memo = rb_node_newnode(NODE_MEMO, result, argc, 0);
|
||||||
|
rb_iterate(rb_each, obj, zip_i, (VALUE)memo);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Init_Enumerable()
|
Init_Enumerable()
|
||||||
{
|
{
|
||||||
|
@ -513,6 +570,7 @@ Init_Enumerable()
|
||||||
rb_define_method(rb_mEnumerable,"member?", enum_member, 1);
|
rb_define_method(rb_mEnumerable,"member?", enum_member, 1);
|
||||||
rb_define_method(rb_mEnumerable,"include?", enum_member, 1);
|
rb_define_method(rb_mEnumerable,"include?", enum_member, 1);
|
||||||
rb_define_method(rb_mEnumerable,"each_with_index", enum_each_with_index, 0);
|
rb_define_method(rb_mEnumerable,"each_with_index", enum_each_with_index, 0);
|
||||||
|
rb_define_method(rb_mEnumerable, "zip", enum_zip, -1);
|
||||||
|
|
||||||
id_eqq = rb_intern("===");
|
id_eqq = rb_intern("===");
|
||||||
id_each = rb_intern("each");
|
id_each = rb_intern("each");
|
||||||
|
|
172
error.c
172
error.c
|
@ -13,6 +13,7 @@
|
||||||
#include "ruby.h"
|
#include "ruby.h"
|
||||||
#include "env.h"
|
#include "env.h"
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
|
#include "st.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#ifdef HAVE_STDARG_PROTOTYPES
|
#ifdef HAVE_STDARG_PROTOTYPES
|
||||||
|
@ -23,13 +24,6 @@
|
||||||
#define va_init_list(a,b) va_start(a)
|
#define va_init_list(a,b) va_start(a)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined __CYGWIN__
|
|
||||||
# include <cygwin/version.h>
|
|
||||||
# if (CYGWIN_VERSION_API_MAJOR > 0) || (CYGWIN_VERSION_API_MINOR >= 8)
|
|
||||||
# define sys_nerr _sys_nerr
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int ruby_nerrs;
|
int ruby_nerrs;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -458,99 +452,34 @@ rb_invalid_str(str, type)
|
||||||
rb_raise(rb_eArgError, "invalid value for %s: %s", type, RSTRING(s)->ptr);
|
rb_raise(rb_eArgError, "invalid value for %s: %s", type, RSTRING(s)->ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __BEOS__
|
static st_table *syserr_tbl = 0;
|
||||||
typedef struct {
|
|
||||||
VALUE *list;
|
|
||||||
int n;
|
|
||||||
} syserr_list_entry;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int ix;
|
|
||||||
int n;
|
|
||||||
} syserr_index_entry;
|
|
||||||
|
|
||||||
static VALUE syserr_error;
|
|
||||||
static VALUE syserr_list_b_general[16+1];
|
|
||||||
static VALUE syserr_list_b_os0[2+1];
|
|
||||||
static VALUE syserr_list_b_os1[5+1];
|
|
||||||
static VALUE syserr_list_b_os2[2+1];
|
|
||||||
static VALUE syserr_list_b_os3[3+1];
|
|
||||||
static VALUE syserr_list_b_os4[1+1];
|
|
||||||
static VALUE syserr_list_b_app[15+1];
|
|
||||||
static VALUE syserr_list_b_interface[0+1];
|
|
||||||
static VALUE syserr_list_b_media[8+1];
|
|
||||||
static VALUE syserr_list_b_midi[0+1];
|
|
||||||
static VALUE syserr_list_b_storage[15+1];
|
|
||||||
static VALUE syserr_list_b_posix[38+1];
|
|
||||||
static VALUE syserr_list_b_mail[8+1];
|
|
||||||
static VALUE syserr_list_b_print[1+1];
|
|
||||||
static VALUE syserr_list_b_device[14+1];
|
|
||||||
|
|
||||||
# define SYSERR_LIST_B(n) {(n), sizeof(n)/sizeof(VALUE)}
|
|
||||||
static const syserr_list_entry syserr_list[] = {
|
|
||||||
SYSERR_LIST_B(syserr_list_b_general),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_os0),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_os1),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_os2),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_os3),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_os4),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_app),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_interface),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_media),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_midi),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_storage),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_posix),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_mail),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_print),
|
|
||||||
SYSERR_LIST_B(syserr_list_b_device),
|
|
||||||
};
|
|
||||||
# undef SYSERR_LIST_B
|
|
||||||
|
|
||||||
static const syserr_index_entry syserr_index[]= {
|
|
||||||
{0, 1}, {1, 5}, {6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1}, {11, 1},
|
|
||||||
{12, 1}, {13, 1}, {14, 1}, {0, 0},
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
static VALUE *syserr_list;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !HAVE_DECL_SYS_NERR
|
|
||||||
extern int sys_nerr;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
set_syserr(i, name)
|
set_syserr(n, name)
|
||||||
int i;
|
int n;
|
||||||
const char *name;
|
const char *name;
|
||||||
{
|
{
|
||||||
#ifdef __BEOS__
|
VALUE error;
|
||||||
VALUE *list;
|
|
||||||
int ix, offset;
|
if (!st_lookup(syserr_tbl, n, &error)) {
|
||||||
#endif
|
error = rb_define_class_under(rb_mErrno, name, rb_eSystemCallError);;
|
||||||
VALUE error = rb_define_class_under(rb_mErrno, name, rb_eSystemCallError);
|
rb_define_const(error, "Errno", INT2NUM(n));
|
||||||
rb_define_const(error, "Errno", INT2NUM(i));
|
st_add_direct(syserr_tbl, n, error);
|
||||||
#ifdef __BEOS__
|
}
|
||||||
if (i == B_ERROR) {
|
|
||||||
syserr_error = error;
|
|
||||||
rb_global_variable(&syserr_error);
|
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
i -= B_GENERAL_ERROR_BASE;
|
|
||||||
ix = (i >> 12) & 0xf;
|
static VALUE
|
||||||
offset = (i >> 8) & 0xf;
|
get_syserr(int n)
|
||||||
if (offset < syserr_index[ix].n) {
|
{
|
||||||
ix = syserr_index[ix].ix;
|
VALUE error;
|
||||||
if ((i & 0xff) < syserr_list[ix + offset].n) {
|
|
||||||
list = syserr_list[ix + offset].list;
|
if (!st_lookup(syserr_tbl, n, &error)) {
|
||||||
list[i & 0xff] = error;
|
char name[6];
|
||||||
rb_global_variable(&list[i & 0xff]);
|
|
||||||
|
sprintf(name, "E%03d", n);
|
||||||
|
error = set_syserr(n, name);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#else
|
|
||||||
if (i <= sys_nerr) {
|
|
||||||
syserr_list[i] = error;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -584,28 +513,6 @@ syserr_eqq(self, exc)
|
||||||
return Qfalse;
|
return Qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __BEOS__
|
|
||||||
static VALUE
|
|
||||||
get_syserr(int i)
|
|
||||||
{
|
|
||||||
VALUE *list;
|
|
||||||
int ix, offset;
|
|
||||||
|
|
||||||
if (i == B_ERROR) return syserr_error;
|
|
||||||
i -= B_GENERAL_ERROR_BASE;
|
|
||||||
ix = (i >> 12) & 0xf;
|
|
||||||
offset = (i >> 8) & 0xf;
|
|
||||||
if (offset < syserr_index[ix].n) {
|
|
||||||
ix = syserr_index[ix].ix;
|
|
||||||
if ((i & 0xff) < syserr_list[ix + offset].n) {
|
|
||||||
list = syserr_list[ix + offset].list;
|
|
||||||
return list[i & 0xff];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif /* __BEOS__ */
|
|
||||||
|
|
||||||
static void init_syserr _((void));
|
static void init_syserr _((void));
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -746,25 +653,7 @@ rb_sys_fail(mesg)
|
||||||
}
|
}
|
||||||
|
|
||||||
errno = 0;
|
errno = 0;
|
||||||
#ifdef __BEOS__
|
|
||||||
ee = get_syserr(n);
|
ee = get_syserr(n);
|
||||||
if (!ee) {
|
|
||||||
char name[12];
|
|
||||||
|
|
||||||
sprintf(name, "E%03d", n);
|
|
||||||
ee = set_syserr(n, name);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
if (n > sys_nerr || !syserr_list[n]) {
|
|
||||||
char name[12];
|
|
||||||
|
|
||||||
sprintf(name, "E%03d", n);
|
|
||||||
ee = set_syserr(n, name);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ee = syserr_list[n];
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
ee = rb_exc_new2(ee, buf);
|
ee = rb_exc_new2(ee, buf);
|
||||||
rb_iv_set(ee, "errno", INT2NUM(n));
|
rb_iv_set(ee, "errno", INT2NUM(n));
|
||||||
rb_exc_raise(ee);
|
rb_exc_raise(ee);
|
||||||
|
@ -820,27 +709,12 @@ rb_check_frozen(obj)
|
||||||
static void
|
static void
|
||||||
init_syserr()
|
init_syserr()
|
||||||
{
|
{
|
||||||
#ifdef __BEOS__
|
syserr_tbl = st_init_numtable();
|
||||||
int i, ix, offset;
|
|
||||||
#endif
|
|
||||||
rb_eSystemCallError = rb_define_class("SystemCallError", rb_eStandardError);
|
rb_eSystemCallError = rb_define_class("SystemCallError", rb_eStandardError);
|
||||||
rb_define_method(rb_eSystemCallError, "errno", syserr_errno, 0);
|
rb_define_method(rb_eSystemCallError, "errno", syserr_errno, 0);
|
||||||
rb_define_singleton_method(rb_eSystemCallError, "===", syserr_eqq, 1);
|
rb_define_singleton_method(rb_eSystemCallError, "===", syserr_eqq, 1);
|
||||||
|
|
||||||
rb_mErrno = rb_define_module("Errno");
|
rb_mErrno = rb_define_module("Errno");
|
||||||
#ifdef __BEOS__
|
|
||||||
for (i = 0; syserr_index[i].n != 0; i++) {
|
|
||||||
ix = syserr_index[i].ix;
|
|
||||||
for (offset = 0; offset < syserr_index[i].n; offset++) {
|
|
||||||
MEMZERO(syserr_list[ix + offset].list, VALUE, syserr_list[ix + offset].n);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
set_syserr(B_ERROR, "ERROR");
|
|
||||||
#else
|
|
||||||
syserr_list = ALLOC_N(VALUE, sys_nerr+1);
|
|
||||||
MEMZERO(syserr_list, VALUE, sys_nerr+1);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef EPERM
|
#ifdef EPERM
|
||||||
set_syserr(EPERM, "EPERM");
|
set_syserr(EPERM, "EPERM");
|
||||||
#endif
|
#endif
|
||||||
|
|
4
eval.c
4
eval.c
|
@ -428,7 +428,7 @@ rb_export_method(klass, name, noex)
|
||||||
if (!body && TYPE(klass) == T_MODULE) {
|
if (!body && TYPE(klass) == T_MODULE) {
|
||||||
body = search_method(rb_cObject, name, &origin);
|
body = search_method(rb_cObject, name, &origin);
|
||||||
}
|
}
|
||||||
if (!body) {
|
if (!body || !body->nd_body) {
|
||||||
print_undef(klass, name);
|
print_undef(klass, name);
|
||||||
}
|
}
|
||||||
if (body->nd_noex != noex) {
|
if (body->nd_noex != noex) {
|
||||||
|
@ -9367,7 +9367,7 @@ rb_cont_call(argc, argv, cont)
|
||||||
th->result = Qnil;
|
th->result = Qnil;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
th->result = *argv;
|
th->result = argv[0];
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
th->result = rb_ary_new4(argc, argv);
|
th->result = rb_ary_new4(argc, argv);
|
||||||
|
|
|
@ -13,7 +13,7 @@ class OpenStruct
|
||||||
@table = {}
|
@table = {}
|
||||||
if hash
|
if hash
|
||||||
for k,v in hash
|
for k,v in hash
|
||||||
@table[k] = v
|
@table[k] = v.to_sym
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -26,19 +26,16 @@ class OpenStruct
|
||||||
raise ArgumentError, "wrong # of arguments (#{len} for 1)", caller(1)
|
raise ArgumentError, "wrong # of arguments (#{len} for 1)", caller(1)
|
||||||
end
|
end
|
||||||
mname.chop!
|
mname.chop!
|
||||||
@table[mname] = args[0]
|
@table[mname.intern] = args[0]
|
||||||
elsif args.length == 0
|
elsif args.length == 0
|
||||||
@table[mname]
|
@table[mid]
|
||||||
else
|
else
|
||||||
raise NameError, "undefined method `#{mname}'", caller(1)
|
raise NameError, "undefined method `#{mname}'", caller(1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete_field(name)
|
def delete_field(name)
|
||||||
if name.class == Fixnum
|
@table.delete name.to_sym
|
||||||
name = name.id2name
|
|
||||||
end
|
|
||||||
@table.delete name
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def inspect
|
def inspect
|
||||||
|
|
|
@ -866,6 +866,10 @@ An end of a defun is found by moving forward from the beginning of one."
|
||||||
|
|
||||||
(defvar ruby-font-lock-keywords
|
(defvar ruby-font-lock-keywords
|
||||||
(list
|
(list
|
||||||
|
;; functions
|
||||||
|
'("^\\s *def\\s +\\([^( ]+\\)"
|
||||||
|
1 font-lock-function-name-face)
|
||||||
|
;; keywords
|
||||||
(cons (concat
|
(cons (concat
|
||||||
"\\(^\\|[^_:.@$]\\|\\.\\.\\)\\b\\("
|
"\\(^\\|[^_:.@$]\\|\\.\\.\\)\\b\\("
|
||||||
(mapconcat
|
(mapconcat
|
||||||
|
@ -925,9 +929,6 @@ An end of a defun is found by moving forward from the beginning of one."
|
||||||
;; constants
|
;; constants
|
||||||
'("\\(^\\|[^_]\\)\\b\\([A-Z]+\\(\\w\\|_\\)*\\)"
|
'("\\(^\\|[^_]\\)\\b\\([A-Z]+\\(\\w\\|_\\)*\\)"
|
||||||
2 font-lock-type-face)
|
2 font-lock-type-face)
|
||||||
;; functions
|
|
||||||
'("^\\s *def\\s +\\([^( ]+\\)"
|
|
||||||
1 font-lock-function-name-face)
|
|
||||||
;; symbols
|
;; symbols
|
||||||
'("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|\\[\\]=?\\|\\(\\w\\|_\\)+\\([!?=]\\|\\b_*\\)\\|#{[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\)\\)"
|
'("\\(^\\|[^:]\\)\\(:\\([-+~]@?\\|[/%&|^`]\\|\\*\\*?\\|<\\(<\\|=>?\\)?\\|>[>=]?\\|===?\\|=~\\|\\[\\]=?\\|\\(\\w\\|_\\)+\\([!?=]\\|\\b_*\\)\\|#{[^}\n\\\\]*\\(\\\\.[^}\n\\\\]*\\)*}\\)\\)"
|
||||||
2 font-lock-reference-face)
|
2 font-lock-reference-face)
|
||||||
|
|
13
numeric.c
13
numeric.c
|
@ -1524,6 +1524,18 @@ fix_id2name(fix)
|
||||||
return Qnil;
|
return Qnil;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
fix_to_sym(fix)
|
||||||
|
VALUE fix;
|
||||||
|
{
|
||||||
|
ID id = FIX2UINT(fix);
|
||||||
|
|
||||||
|
if (rb_id2name(id)) {
|
||||||
|
return ID2SYM(id);
|
||||||
|
}
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
fix_size(fix)
|
fix_size(fix)
|
||||||
VALUE fix;
|
VALUE fix;
|
||||||
|
@ -1680,6 +1692,7 @@ Init_Numeric()
|
||||||
rb_define_method(rb_cFixnum, "to_s", fix_to_s, -1);
|
rb_define_method(rb_cFixnum, "to_s", fix_to_s, -1);
|
||||||
|
|
||||||
rb_define_method(rb_cFixnum, "id2name", fix_id2name, 0);
|
rb_define_method(rb_cFixnum, "id2name", fix_id2name, 0);
|
||||||
|
rb_define_method(rb_cFixnum, "to_sym", fix_to_sym, 0);
|
||||||
|
|
||||||
rb_define_method(rb_cFixnum, "-@", fix_uminus, 0);
|
rb_define_method(rb_cFixnum, "-@", fix_uminus, 0);
|
||||||
rb_define_method(rb_cFixnum, "+", fix_plus, 1);
|
rb_define_method(rb_cFixnum, "+", fix_plus, 1);
|
||||||
|
|
15
object.c
15
object.c
|
@ -73,6 +73,14 @@ rb_obj_id(obj)
|
||||||
return (VALUE)((long)obj|FIXNUM_FLAG);
|
return (VALUE)((long)obj|FIXNUM_FLAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VALUE
|
||||||
|
rb_obj_id_obsolete(obj)
|
||||||
|
VALUE obj;
|
||||||
|
{
|
||||||
|
rb_warning("Object#id will be deprecated; use Object#object_id");
|
||||||
|
return rb_obj_id(obj);
|
||||||
|
}
|
||||||
|
|
||||||
VALUE
|
VALUE
|
||||||
rb_class_real(cl)
|
rb_class_real(cl)
|
||||||
VALUE cl;
|
VALUE cl;
|
||||||
|
@ -540,7 +548,7 @@ sym_to_s(sym)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
sym_intern(sym)
|
sym_to_sym(sym)
|
||||||
VALUE sym;
|
VALUE sym;
|
||||||
{
|
{
|
||||||
return sym;
|
return sym;
|
||||||
|
@ -1316,8 +1324,9 @@ Init_Object()
|
||||||
rb_define_method(rb_mKernel, "eql?", rb_obj_equal, 1);
|
rb_define_method(rb_mKernel, "eql?", rb_obj_equal, 1);
|
||||||
|
|
||||||
rb_define_method(rb_mKernel, "hash", rb_obj_id, 0);
|
rb_define_method(rb_mKernel, "hash", rb_obj_id, 0);
|
||||||
rb_define_method(rb_mKernel, "id", rb_obj_id, 0);
|
rb_define_method(rb_mKernel, "id", rb_obj_id_obsolete, 0);
|
||||||
rb_define_method(rb_mKernel, "__id__", rb_obj_id, 0);
|
rb_define_method(rb_mKernel, "__id__", rb_obj_id, 0);
|
||||||
|
rb_define_method(rb_mKernel, "object_id", rb_obj_id, 0);
|
||||||
rb_define_method(rb_mKernel, "type", rb_obj_type, 0);
|
rb_define_method(rb_mKernel, "type", rb_obj_type, 0);
|
||||||
rb_define_method(rb_mKernel, "class", rb_obj_class, 0);
|
rb_define_method(rb_mKernel, "class", rb_obj_class, 0);
|
||||||
|
|
||||||
|
@ -1386,7 +1395,7 @@ Init_Object()
|
||||||
rb_define_method(rb_cSymbol, "inspect", sym_inspect, 0);
|
rb_define_method(rb_cSymbol, "inspect", sym_inspect, 0);
|
||||||
rb_define_method(rb_cSymbol, "to_s", sym_to_s, 0);
|
rb_define_method(rb_cSymbol, "to_s", sym_to_s, 0);
|
||||||
rb_define_method(rb_cSymbol, "id2name", sym_to_s, 0);
|
rb_define_method(rb_cSymbol, "id2name", sym_to_s, 0);
|
||||||
rb_define_method(rb_cSymbol, "intern", sym_intern, 0);
|
rb_define_method(rb_cSymbol, "to_sym", sym_to_sym, 0);
|
||||||
|
|
||||||
rb_define_method(rb_cModule, "===", rb_mod_eqq, 1);
|
rb_define_method(rb_cModule, "===", rb_mod_eqq, 1);
|
||||||
rb_define_method(rb_cModule, "==", rb_obj_equal, 1);
|
rb_define_method(rb_cModule, "==", rb_obj_equal, 1);
|
||||||
|
|
1
string.c
1
string.c
|
@ -3208,6 +3208,7 @@ Init_String()
|
||||||
rb_define_method(rb_cString, "<<", rb_str_concat, 1);
|
rb_define_method(rb_cString, "<<", rb_str_concat, 1);
|
||||||
rb_define_method(rb_cString, "crypt", rb_str_crypt, 1);
|
rb_define_method(rb_cString, "crypt", rb_str_crypt, 1);
|
||||||
rb_define_method(rb_cString, "intern", rb_str_intern, 0);
|
rb_define_method(rb_cString, "intern", rb_str_intern, 0);
|
||||||
|
rb_define_method(rb_cString, "to_sym", rb_str_intern, 0);
|
||||||
|
|
||||||
rb_define_method(rb_cString, "include?", rb_str_include, 1);
|
rb_define_method(rb_cString, "include?", rb_str_include, 1);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue