mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* array.c, class.c, eval.c, file.c, gc.c, node.h, numeric.c,
object.c, parse.y, range.c, re.c, string.c, struct.c, util.c, ext/socket/socket.c: merge from 1.7: treat long values as long instead of int. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@3003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
19de515b93
commit
0861cbd901
16 changed files with 45 additions and 39 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
Sun Oct 27 00:55:21 2002 Akinori MUSHA <knu@iDaemons.org>
|
||||||
|
|
||||||
|
* array.c, class.c, eval.c, file.c, gc.c, node.h, numeric.c,
|
||||||
|
object.c, parse.y, range.c, re.c, string.c, struct.c, util.c,
|
||||||
|
ext/socket/socket.c: merge from 1.7: treat long values as long
|
||||||
|
instead of int.
|
||||||
|
|
||||||
Sat Oct 26 04:39:48 2002 Akinori MUSHA <knu@iDaemons.org>
|
Sat Oct 26 04:39:48 2002 Akinori MUSHA <knu@iDaemons.org>
|
||||||
|
|
||||||
* parse.y (str_extend): pushback() takes one argument, so properly
|
* parse.y (str_extend): pushback() takes one argument, so properly
|
||||||
|
|
8
array.c
8
array.c
|
@ -120,7 +120,7 @@ rb_ary_new3(n, va_alist)
|
||||||
long i;
|
long i;
|
||||||
|
|
||||||
if (n < 0) {
|
if (n < 0) {
|
||||||
rb_raise(rb_eIndexError, "negative number of items(%d)", n);
|
rb_raise(rb_eIndexError, "negative number of items(%ld)", n);
|
||||||
}
|
}
|
||||||
ary = rb_ary_new2(n<ARY_DEFAULT_SIZE?ARY_DEFAULT_SIZE:n);
|
ary = rb_ary_new2(n<ARY_DEFAULT_SIZE?ARY_DEFAULT_SIZE:n);
|
||||||
|
|
||||||
|
@ -240,7 +240,7 @@ rb_ary_store(ary, idx, val)
|
||||||
if (idx < 0) {
|
if (idx < 0) {
|
||||||
idx += RARRAY(ary)->len;
|
idx += RARRAY(ary)->len;
|
||||||
if (idx < 0) {
|
if (idx < 0) {
|
||||||
rb_raise(rb_eIndexError, "index %d out of array",
|
rb_raise(rb_eIndexError, "index %ld out of array",
|
||||||
idx - RARRAY(ary)->len);
|
idx - RARRAY(ary)->len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -533,13 +533,13 @@ rb_ary_replace(ary, beg, len, rpl)
|
||||||
{
|
{
|
||||||
long rlen;
|
long rlen;
|
||||||
|
|
||||||
if (len < 0) rb_raise(rb_eIndexError, "negative length %d", len);
|
if (len < 0) rb_raise(rb_eIndexError, "negative length %ld", len);
|
||||||
if (beg < 0) {
|
if (beg < 0) {
|
||||||
beg += RARRAY(ary)->len;
|
beg += RARRAY(ary)->len;
|
||||||
}
|
}
|
||||||
if (beg < 0) {
|
if (beg < 0) {
|
||||||
beg -= RARRAY(ary)->len;
|
beg -= RARRAY(ary)->len;
|
||||||
rb_raise(rb_eIndexError, "index %d out of array", beg);
|
rb_raise(rb_eIndexError, "index %ld out of array", beg);
|
||||||
}
|
}
|
||||||
if (beg + len > RARRAY(ary)->len) {
|
if (beg + len > RARRAY(ary)->len) {
|
||||||
len = RARRAY(ary)->len - beg;
|
len = RARRAY(ary)->len - beg;
|
||||||
|
|
2
class.c
2
class.c
|
@ -633,7 +633,7 @@ rb_singleton_class(obj)
|
||||||
SPECIAL_SINGLETON(Qnil, rb_cNilClass);
|
SPECIAL_SINGLETON(Qnil, rb_cNilClass);
|
||||||
SPECIAL_SINGLETON(Qfalse, rb_cFalseClass);
|
SPECIAL_SINGLETON(Qfalse, rb_cFalseClass);
|
||||||
SPECIAL_SINGLETON(Qtrue, rb_cTrueClass);
|
SPECIAL_SINGLETON(Qtrue, rb_cTrueClass);
|
||||||
rb_bug("unknown immediate %d", obj);
|
rb_bug("unknown immediate %ld", (long)obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFER_INTS;
|
DEFER_INTS;
|
||||||
|
|
18
eval.c
18
eval.c
|
@ -1905,14 +1905,14 @@ is_defined(self, node, buf)
|
||||||
|
|
||||||
case NODE_NTH_REF:
|
case NODE_NTH_REF:
|
||||||
if (RTEST(rb_reg_nth_defined(node->nd_nth, MATCH_DATA))) {
|
if (RTEST(rb_reg_nth_defined(node->nd_nth, MATCH_DATA))) {
|
||||||
sprintf(buf, "$%d", node->nd_nth);
|
sprintf(buf, "$%d", (int)node->nd_nth);
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NODE_BACK_REF:
|
case NODE_BACK_REF:
|
||||||
if (RTEST(rb_reg_nth_defined(0, MATCH_DATA))) {
|
if (RTEST(rb_reg_nth_defined(0, MATCH_DATA))) {
|
||||||
sprintf(buf, "$%c", node->nd_nth);
|
sprintf(buf, "$%c", (int)node->nd_nth);
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -3606,7 +3606,7 @@ rb_yield_0(val, self, klass, acheck)
|
||||||
if (block->var == (NODE*)1) {
|
if (block->var == (NODE*)1) {
|
||||||
if (acheck && val != Qundef &&
|
if (acheck && val != Qundef &&
|
||||||
TYPE(val) == T_ARRAY && RARRAY(val)->len != 0) {
|
TYPE(val) == T_ARRAY && RARRAY(val)->len != 0) {
|
||||||
rb_raise(rb_eArgError, "wrong # of arguments (%d for 0)",
|
rb_raise(rb_eArgError, "wrong # of arguments (%ld for 0)",
|
||||||
RARRAY(val)->len);
|
RARRAY(val)->len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6528,7 +6528,7 @@ proc_to_s(self, other)
|
||||||
|
|
||||||
Data_Get_Struct(self, struct BLOCK, data);
|
Data_Get_Struct(self, struct BLOCK, data);
|
||||||
str = rb_str_new(0, strlen(cname)+6+16+1); /* 6:tags 16:addr 1:eos */
|
str = rb_str_new(0, strlen(cname)+6+16+1); /* 6:tags 16:addr 1:eos */
|
||||||
sprintf(RSTRING(str)->ptr, "#<%s:0x%lx>", cname, data->tag);
|
sprintf(RSTRING(str)->ptr, "#<%s:0x%lx>", cname, (unsigned long)data->tag);
|
||||||
RSTRING(str)->len = strlen(RSTRING(str)->ptr);
|
RSTRING(str)->len = strlen(RSTRING(str)->ptr);
|
||||||
if (OBJ_TAINTED(self)) OBJ_TAINT(str);
|
if (OBJ_TAINTED(self)) OBJ_TAINT(str);
|
||||||
|
|
||||||
|
@ -7887,7 +7887,7 @@ rb_thread_schedule()
|
||||||
curr_thread->line = ruby_sourceline;
|
curr_thread->line = ruby_sourceline;
|
||||||
FOREACH_THREAD_FROM(curr, th) {
|
FOREACH_THREAD_FROM(curr, th) {
|
||||||
fprintf(stderr, "deadlock 0x%lx: %d:%d %s - %s:%d\n",
|
fprintf(stderr, "deadlock 0x%lx: %d:%d %s - %s:%d\n",
|
||||||
th->thread, th->status,
|
(unsigned long)th->thread, th->status,
|
||||||
th->wait_for, th==main_thread?"(main)":"",
|
th->wait_for, th==main_thread?"(main)":"",
|
||||||
th->file, th->line);
|
th->file, th->line);
|
||||||
}
|
}
|
||||||
|
@ -9193,9 +9193,9 @@ rb_f_throw(argc, argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (tt->tag == PROT_THREAD) {
|
if (tt->tag == PROT_THREAD) {
|
||||||
rb_raise(rb_eThreadError, "uncaught throw `%s' in thread 0x%x",
|
rb_raise(rb_eThreadError, "uncaught throw `%s' in thread 0x%lx",
|
||||||
rb_id2name(t),
|
rb_id2name(t),
|
||||||
curr_thread);
|
(unsigned long)curr_thread);
|
||||||
}
|
}
|
||||||
tt = tt->prev;
|
tt = tt->prev;
|
||||||
}
|
}
|
||||||
|
@ -9230,8 +9230,8 @@ return_check()
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (tt->tag == PROT_THREAD) {
|
if (tt->tag == PROT_THREAD) {
|
||||||
rb_raise(rb_eThreadError, "return from within thread 0x%x",
|
rb_raise(rb_eThreadError, "return from within thread 0x%lx",
|
||||||
curr_thread);
|
(unsigned long)curr_thread);
|
||||||
}
|
}
|
||||||
tt = tt->prev;
|
tt = tt->prev;
|
||||||
}
|
}
|
||||||
|
|
|
@ -815,7 +815,7 @@ open_inet_internal(arg)
|
||||||
else {
|
else {
|
||||||
Check_SafeStr(arg->serv);
|
Check_SafeStr(arg->serv);
|
||||||
if (RSTRING(arg->serv)->len >= sizeof(pbuf))
|
if (RSTRING(arg->serv)->len >= sizeof(pbuf))
|
||||||
rb_raise(rb_eArgError, "servicename too long (%d)", RSTRING(arg->serv)->len);
|
rb_raise(rb_eArgError, "servicename too long (%ld)", RSTRING(arg->serv)->len);
|
||||||
strcpy(pbuf, RSTRING(arg->serv)->ptr);
|
strcpy(pbuf, RSTRING(arg->serv)->ptr);
|
||||||
portp = pbuf;
|
portp = pbuf;
|
||||||
}
|
}
|
||||||
|
@ -1981,7 +1981,7 @@ sock_s_getnameinfo(argc, argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
rb_raise(rb_eArgError, "array size should be 3 or 4, %d given",
|
rb_raise(rb_eArgError, "array size should be 3 or 4, %ld given",
|
||||||
RARRAY(sa)->len);
|
RARRAY(sa)->len);
|
||||||
}
|
}
|
||||||
/* host */
|
/* host */
|
||||||
|
|
2
file.c
2
file.c
|
@ -1359,7 +1359,7 @@ rb_file_s_expand_path(argc, argv)
|
||||||
return fname;
|
return fname;
|
||||||
|
|
||||||
toolong:
|
toolong:
|
||||||
rb_raise(rb_eArgError, "argument too long (size=%d)", RSTRING(fname)->len);
|
rb_raise(rb_eArgError, "argument too long (size=%ld)", RSTRING(fname)->len);
|
||||||
return Qnil; /* not reached */
|
return Qnil; /* not reached */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
8
gc.c
8
gc.c
|
@ -723,8 +723,8 @@ rb_gc_mark(ptr)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
rb_bug("rb_gc_mark(): unknown data type 0x%x(0x%x) %s",
|
rb_bug("rb_gc_mark(): unknown data type 0x%lx(0x%lx) %s",
|
||||||
obj->as.basic.flags & T_MASK, obj,
|
obj->as.basic.flags & T_MASK, (unsigned long)obj,
|
||||||
is_pointer_to_heap(obj) ? "corrupted object" : "non object");
|
is_pointer_to_heap(obj) ? "corrupted object" : "non object");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1363,10 +1363,10 @@ id2ref(obj, id)
|
||||||
|
|
||||||
ptr = id ^ FIXNUM_FLAG; /* unset FIXNUM_FLAG */
|
ptr = id ^ FIXNUM_FLAG; /* unset FIXNUM_FLAG */
|
||||||
if (!is_pointer_to_heap((void *)ptr)) {
|
if (!is_pointer_to_heap((void *)ptr)) {
|
||||||
rb_raise(rb_eRangeError, "0x%x is not id value", p0);
|
rb_raise(rb_eRangeError, "0x%lx is not id value", p0);
|
||||||
}
|
}
|
||||||
if (BUILTIN_TYPE(ptr) == 0) {
|
if (BUILTIN_TYPE(ptr) == 0) {
|
||||||
rb_raise(rb_eRangeError, "0x%x is recycled object", p0);
|
rb_raise(rb_eRangeError, "0x%lx is recycled object", p0);
|
||||||
}
|
}
|
||||||
return (VALUE)ptr;
|
return (VALUE)ptr;
|
||||||
}
|
}
|
||||||
|
|
2
node.h
2
node.h
|
@ -152,7 +152,7 @@ typedef struct RNode {
|
||||||
|
|
||||||
#define RNODE(obj) (R_CAST(RNode)(obj))
|
#define RNODE(obj) (R_CAST(RNode)(obj))
|
||||||
|
|
||||||
#define nd_type(n) (((RNODE(n))->flags>>FL_USHIFT)&0xff)
|
#define nd_type(n) ((int)(((RNODE(n))->flags>>FL_USHIFT)&0xff))
|
||||||
#define nd_set_type(n,t) \
|
#define nd_set_type(n,t) \
|
||||||
RNODE(n)->flags=((RNODE(n)->flags&~FL_UMASK)|(((t)<<FL_USHIFT)&FL_UMASK))
|
RNODE(n)->flags=((RNODE(n)->flags&~FL_UMASK)|(((t)<<FL_USHIFT)&FL_UMASK))
|
||||||
|
|
||||||
|
|
|
@ -815,7 +815,7 @@ rb_num2int(val)
|
||||||
long num = rb_num2long(val);
|
long num = rb_num2long(val);
|
||||||
|
|
||||||
if (num < INT_MIN || INT_MAX < num) {
|
if (num < INT_MIN || INT_MAX < num) {
|
||||||
rb_raise(rb_eRangeError, "integer %d too big to convert to `int'", num);
|
rb_raise(rb_eRangeError, "integer %ld too big to convert to `int'", num);
|
||||||
}
|
}
|
||||||
return (int)num;
|
return (int)num;
|
||||||
}
|
}
|
||||||
|
@ -827,7 +827,7 @@ rb_fix2int(val)
|
||||||
long num = FIXNUM_P(val)?FIX2LONG(val):rb_num2long(val);
|
long num = FIXNUM_P(val)?FIX2LONG(val):rb_num2long(val);
|
||||||
|
|
||||||
if (num < INT_MIN || INT_MAX < num) {
|
if (num < INT_MIN || INT_MAX < num) {
|
||||||
rb_raise(rb_eRangeError, "integer %d too big to convert to `int'", num);
|
rb_raise(rb_eRangeError, "integer %ld too big to convert to `int'", num);
|
||||||
}
|
}
|
||||||
return (int)num;
|
return (int)num;
|
||||||
}
|
}
|
||||||
|
@ -857,7 +857,7 @@ rb_num2fix(val)
|
||||||
|
|
||||||
v = rb_num2long(val);
|
v = rb_num2long(val);
|
||||||
if (!FIXABLE(v))
|
if (!FIXABLE(v))
|
||||||
rb_raise(rb_eRangeError, "integer %d out of range of fixnum", v);
|
rb_raise(rb_eRangeError, "integer %ld out of range of fixnum", v);
|
||||||
return INT2FIX(v);
|
return INT2FIX(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -890,7 +890,7 @@ int_chr(num)
|
||||||
long i = NUM2LONG(num);
|
long i = NUM2LONG(num);
|
||||||
|
|
||||||
if (i < 0 || 0xff < i)
|
if (i < 0 || 0xff < i)
|
||||||
rb_raise(rb_eRangeError, "%d out of char range", i);
|
rb_raise(rb_eRangeError, "%ld out of char range", i);
|
||||||
c = i;
|
c = i;
|
||||||
return rb_str_new(&c, 1);
|
return rb_str_new(&c, 1);
|
||||||
}
|
}
|
||||||
|
|
2
object.c
2
object.c
|
@ -666,7 +666,7 @@ rb_to_id(name)
|
||||||
case T_FIXNUM:
|
case T_FIXNUM:
|
||||||
id = FIX2INT(name);
|
id = FIX2INT(name);
|
||||||
if (!rb_id2name(id)) {
|
if (!rb_id2name(id)) {
|
||||||
rb_raise(rb_eArgError, "%d is not a symbol", id);
|
rb_raise(rb_eArgError, "%lu is not a symbol", id);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case T_SYMBOL:
|
case T_SYMBOL:
|
||||||
|
|
6
parse.y
6
parse.y
|
@ -331,7 +331,7 @@ stmt : kALIAS fitem {lex_state = EXPR_FNAME;} fitem
|
||||||
|
|
||||||
if (in_def || in_single)
|
if (in_def || in_single)
|
||||||
yyerror("alias within method");
|
yyerror("alias within method");
|
||||||
sprintf(buf, "$%c", $3->nd_nth);
|
sprintf(buf, "$%c", (int)$3->nd_nth);
|
||||||
$$ = NEW_VALIAS($2, rb_intern(buf));
|
$$ = NEW_VALIAS($2, rb_intern(buf));
|
||||||
}
|
}
|
||||||
| kALIAS tGVAR tNTH_REF
|
| kALIAS tGVAR tNTH_REF
|
||||||
|
@ -4475,10 +4475,10 @@ rb_backref_error(node)
|
||||||
{
|
{
|
||||||
switch (nd_type(node)) {
|
switch (nd_type(node)) {
|
||||||
case NODE_NTH_REF:
|
case NODE_NTH_REF:
|
||||||
rb_compile_error("Can't set variable $%d", node->nd_nth);
|
rb_compile_error("Can't set variable $%d", (int)node->nd_nth);
|
||||||
break;
|
break;
|
||||||
case NODE_BACK_REF:
|
case NODE_BACK_REF:
|
||||||
rb_compile_error("Can't set variable $%c", node->nd_nth);
|
rb_compile_error("Can't set variable $%c", (int)node->nd_nth);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
2
range.c
2
range.c
|
@ -288,7 +288,7 @@ rb_range_beg_len(range, begp, lenp, len, err)
|
||||||
|
|
||||||
out_of_range:
|
out_of_range:
|
||||||
if (err) {
|
if (err) {
|
||||||
rb_raise(rb_eRangeError, "%d..%s%d out of range",
|
rb_raise(rb_eRangeError, "%ld..%s%ld out of range",
|
||||||
b, EXCL(range) ? "." : "", e);
|
b, EXCL(range) ? "." : "", e);
|
||||||
}
|
}
|
||||||
return Qnil;
|
return Qnil;
|
||||||
|
|
1
re.c
1
re.c
|
@ -785,7 +785,6 @@ match_aref(argc, argv, match)
|
||||||
VALUE match;
|
VALUE match;
|
||||||
{
|
{
|
||||||
VALUE idx, rest;
|
VALUE idx, rest;
|
||||||
struct re_registers *regs;
|
|
||||||
char *ptr;
|
char *ptr;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
|
4
string.c
4
string.c
|
@ -1072,10 +1072,10 @@ rb_str_aset_m(argc, argv, str)
|
||||||
if (TYPE(argv[2]) != T_STRING) argv[2] = rb_str_to_str(argv[2]);
|
if (TYPE(argv[2]) != T_STRING) argv[2] = rb_str_to_str(argv[2]);
|
||||||
beg = NUM2INT(argv[0]);
|
beg = NUM2INT(argv[0]);
|
||||||
len = NUM2INT(argv[1]);
|
len = NUM2INT(argv[1]);
|
||||||
if (len < 0) rb_raise(rb_eIndexError, "negative length %d", len);
|
if (len < 0) rb_raise(rb_eIndexError, "negative length %ld", len);
|
||||||
if (RSTRING(str)->len < beg) {
|
if (RSTRING(str)->len < beg) {
|
||||||
out_of_range:
|
out_of_range:
|
||||||
rb_raise(rb_eIndexError, "index %d out of string", beg);
|
rb_raise(rb_eIndexError, "index %ld out of string", beg);
|
||||||
}
|
}
|
||||||
if (beg < 0) {
|
if (beg < 0) {
|
||||||
if (-beg > RSTRING(str)->len) {
|
if (-beg > RSTRING(str)->len) {
|
||||||
|
|
8
struct.c
8
struct.c
|
@ -464,10 +464,10 @@ rb_struct_aref(s, idx)
|
||||||
i = NUM2LONG(idx);
|
i = NUM2LONG(idx);
|
||||||
if (i < 0) i = RSTRUCT(s)->len + i;
|
if (i < 0) i = RSTRUCT(s)->len + i;
|
||||||
if (i < 0)
|
if (i < 0)
|
||||||
rb_raise(rb_eIndexError, "offset %d too small for struct(size:%d)",
|
rb_raise(rb_eIndexError, "offset %ld too small for struct(size:%ld)",
|
||||||
i, RSTRUCT(s)->len);
|
i, RSTRUCT(s)->len);
|
||||||
if (RSTRUCT(s)->len <= i)
|
if (RSTRUCT(s)->len <= i)
|
||||||
rb_raise(rb_eIndexError, "offset %d too large for struct(size:%d)",
|
rb_raise(rb_eIndexError, "offset %ld too large for struct(size:%ld)",
|
||||||
i, RSTRUCT(s)->len);
|
i, RSTRUCT(s)->len);
|
||||||
return RSTRUCT(s)->ptr[i];
|
return RSTRUCT(s)->ptr[i];
|
||||||
}
|
}
|
||||||
|
@ -509,11 +509,11 @@ rb_struct_aset(s, idx, val)
|
||||||
i = NUM2LONG(idx);
|
i = NUM2LONG(idx);
|
||||||
if (i < 0) i = RSTRUCT(s)->len + i;
|
if (i < 0) i = RSTRUCT(s)->len + i;
|
||||||
if (i < 0) {
|
if (i < 0) {
|
||||||
rb_raise(rb_eIndexError, "offset %d too small for struct(size:%d)",
|
rb_raise(rb_eIndexError, "offset %ld too small for struct(size:%ld)",
|
||||||
i, RSTRUCT(s)->len);
|
i, RSTRUCT(s)->len);
|
||||||
}
|
}
|
||||||
if (RSTRUCT(s)->len <= i) {
|
if (RSTRUCT(s)->len <= i) {
|
||||||
rb_raise(rb_eIndexError, "offset %d too large for struct(size:%d)",
|
rb_raise(rb_eIndexError, "offset %ld too large for struct(size:%ld)",
|
||||||
i, RSTRUCT(s)->len);
|
i, RSTRUCT(s)->len);
|
||||||
}
|
}
|
||||||
rb_struct_modify(s);
|
rb_struct_modify(s);
|
||||||
|
|
2
util.c
2
util.c
|
@ -182,7 +182,7 @@ ruby_add_suffix(str, suffix)
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
|
|
||||||
if (RSTRING(str)->len > 1000)
|
if (RSTRING(str)->len > 1000)
|
||||||
rb_fatal("Cannot do inplace edit on long filename (%d characters)",
|
rb_fatal("Cannot do inplace edit on long filename (%ld characters)",
|
||||||
RSTRING(str)->len);
|
RSTRING(str)->len);
|
||||||
|
|
||||||
#if defined(DJGPP) || defined(__CYGWIN32__) || defined(NT)
|
#if defined(DJGPP) || defined(__CYGWIN32__) || defined(NT)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue