* complex.c (read_comp): mathn compliant.

* rational.c (read_num): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
tadf 2012-11-18 00:35:06 +00:00
Родитель 7a1985a969
Коммит 42d38decda
3 изменённых файлов: 16 добавлений и 11 удалений

Просмотреть файл

@ -1,5 +1,10 @@
Sun Nov 18 02:50:12 2012 Luis Lavena <luislavena@gmail.com>
Sun Nov 18 09:31:47 2012 Tadayoshi Funaba <tadf@dotrb.org>
* complex.c (read_comp): mathn compliant.
* rational.c (read_num): ditto.
Sun Nov 18 02:50:12 2012 Luis Lavena <luislavena@gmail.com>
* win32/file.c (replace_to_long_name): correct logic around wildcard
characters detection and ensure wide-chars are used as pattern.
[ruby-core:49451] [Bug #7374]

Просмотреть файл

@ -1646,14 +1646,14 @@ read_comp(const char **s, int strict,
if (isimagunit(**s)) {
(*s)++;
num = INT2FIX((sign == '-') ? -1 : + 1);
*ret = rb_complex_raw2(ZERO, num);
*ret = rb_complex_new2(ZERO, num);
return 1; /* e.g. "i" */
}
if (!read_rat_nos(s, strict, b)) {
**b = '\0';
num = str2num(bb);
*ret = rb_complex_raw2(num, ZERO);
*ret = rb_complex_new2(num, ZERO);
return 0; /* e.g. "1/" */
}
**b = '\0';
@ -1661,7 +1661,7 @@ read_comp(const char **s, int strict,
if (isimagunit(**s)) {
(*s)++;
*ret = rb_complex_raw2(ZERO, num);
*ret = rb_complex_new2(ZERO, num);
return 1; /* e.g. "3i" */
}
@ -1674,7 +1674,7 @@ read_comp(const char **s, int strict,
**b = '\0';
if (strlen(bb) < 1 ||
!isdigit((unsigned char)*(bb + strlen(bb) - 1))) {
*ret = rb_complex_raw2(num, ZERO);
*ret = rb_complex_new2(num, ZERO);
return 0; /* e.g. "1@x" */
}
num2 = str2num(bb);
@ -1692,23 +1692,23 @@ read_comp(const char **s, int strict,
num2 = INT2FIX((sign == '-') ? -1 : + 1);
else {
if (!read_rat_nos(s, strict, b)) {
*ret = rb_complex_raw2(num, ZERO);
*ret = rb_complex_new2(num, ZERO);
return 0; /* e.g. "1+xi" */
}
**b = '\0';
num2 = str2num(bb);
}
if (!isimagunit(**s)) {
*ret = rb_complex_raw2(num, ZERO);
*ret = rb_complex_new2(num, ZERO);
return 0; /* e.g. "1+3x" */
}
(*s)++;
*ret = rb_complex_raw2(num, num2);
*ret = rb_complex_new2(num, num2);
return 1; /* e.g. "1+2i" */
}
/* !(@, - or +) */
{
*ret = rb_complex_raw2(num, ZERO);
*ret = rb_complex_new2(num, ZERO);
return 1; /* e.g. "3" */
}
}

Просмотреть файл

@ -2011,13 +2011,13 @@ read_num(const char **s, int numsign, int strict,
{
VALUE ip, fp, exp;
*num = rb_rational_raw2(ZERO, ONE);
*num = rb_rational_new2(ZERO, ONE);
exp = Qnil;
if (**s != '.') {
if (!read_digits(s, strict, &ip, NULL))
return 0;
*num = rb_rational_raw2(ip, ONE);
*num = rb_rational_new2(ip, ONE);
}
if (**s == '.') {