* ext/date/date_{parse,strptime}.c [ruby-dev:45303].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
tadf 2012-03-03 03:14:27 +00:00
parent 85e866978f
commit 9a0cb80252
3 changed files with 19 additions and 14 deletions

View File

@ -1,3 +1,7 @@
Sat Mar 3 12:12:16 2012 Tadayoshi Funaba <tadf@dotrb.org>
* ext/date/date_{parse,strptime}.c [ruby-dev:45303].
Sat Mar 3 10:09:21 2012 Aaron Patterson <aaron@tenderlovemaking.com> Sat Mar 3 10:09:21 2012 Aaron Patterson <aaron@tenderlovemaking.com>
* lib/xmlrpc/client.rb (initialize): net/http defaults to 1_2 in 1.8+, * lib/xmlrpc/client.rb (initialize): net/http defaults to 1_2 in 1.8+,

View File

@ -89,10 +89,10 @@ s3e(VALUE hash, VALUE y, VALUE m, VALUE d, int bc)
size_t l; size_t l;
s = RSTRING_PTR(y); s = RSTRING_PTR(y);
while (!issign(*s) && !isdigit(*s)) while (!issign((unsigned char)*s) && !isdigit((unsigned char)*s))
s++; s++;
bp = s; bp = s;
if (issign(*s)) if (issign((unsigned char)*s))
s++; s++;
l = strspn(s, "0123456789"); l = strspn(s, "0123456789");
ep = s + l; ep = s + l;
@ -138,7 +138,7 @@ s3e(VALUE hash, VALUE y, VALUE m, VALUE d, int bc)
VALUE iy; VALUE iy;
s = RSTRING_PTR(y); s = RSTRING_PTR(y);
while (!issign(*s) && !isdigit(*s)) while (!issign((unsigned char)*s) && !isdigit((unsigned char)*s))
s++; s++;
bp = s; bp = s;
if (issign(*s)) { if (issign(*s)) {
@ -170,7 +170,7 @@ s3e(VALUE hash, VALUE y, VALUE m, VALUE d, int bc)
VALUE im; VALUE im;
s = RSTRING_PTR(m); s = RSTRING_PTR(m);
while (!isdigit(*s)) while (!isdigit((unsigned char)*s))
s++; s++;
bp = s; bp = s;
l = strspn(s, "0123456789"); l = strspn(s, "0123456789");
@ -192,7 +192,7 @@ s3e(VALUE hash, VALUE y, VALUE m, VALUE d, int bc)
VALUE id; VALUE id;
s = RSTRING_PTR(d); s = RSTRING_PTR(d);
while (!isdigit(*s)) while (!isdigit((unsigned char)*s))
s++; s++;
bp = s; bp = s;
l = strspn(s, "0123456789"); l = strspn(s, "0123456789");
@ -381,14 +381,14 @@ date_zone_to_diff(VALUE str)
dest = d = ALLOCA_N(char, l + 1); dest = d = ALLOCA_N(char, l + 1);
for (i = 0; i < l; i++) { for (i = 0; i < l; i++) {
if (isspace(s[i]) || s[i] == '\0') { if (isspace((unsigned char)s[i]) || s[i] == '\0') {
if (!sp) if (!sp)
*d++ = ' '; *d++ = ' ';
sp = 1; sp = 1;
} }
else { else {
if (isalpha(s[i])) if (isalpha((unsigned char)s[i]))
*d++ = tolower(s[i]); *d++ = tolower((unsigned char)s[i]);
else else
*d++ = s[i]; *d++ = s[i];
sp = 0; sp = 0;
@ -1413,7 +1413,7 @@ parse_ddd_cb(VALUE m, VALUE hash)
s3 = s1; s3 = s1;
zone = rb_str_new2(s3); zone = rb_str_new2(s3);
set_hash("zone", zone); set_hash("zone", zone);
if (isdigit(*s1)) if (isdigit((unsigned char)*s1))
*--s1 = '+'; *--s1 = '+';
set_hash("offset", date_zone_to_diff(rb_str_new2(s1))); set_hash("offset", date_zone_to_diff(rb_str_new2(s1)));
} }
@ -1520,9 +1520,9 @@ check_class(VALUE s)
flags = 0; flags = 0;
for (i = 0; i < RSTRING_LEN(s); i++) { for (i = 0; i < RSTRING_LEN(s); i++) {
if (isalpha(RSTRING_PTR(s)[i])) if (isalpha((unsigned char)RSTRING_PTR(s)[i]))
flags |= HAVE_ALPHA; flags |= HAVE_ALPHA;
if (isdigit(RSTRING_PTR(s)[i])) if (isdigit((unsigned char)RSTRING_PTR(s)[i]))
flags |= HAVE_DIGIT; flags |= HAVE_DIGIT;
if (RSTRING_PTR(s)[i] == '-') if (RSTRING_PTR(s)[i] == '-')
flags |= HAVE_DASH; flags |= HAVE_DASH;

View File

@ -58,14 +58,15 @@ static const char *extz_pats[] = {
static int static int
num_pattern_p(const char *s) num_pattern_p(const char *s)
{ {
if (isdigit(*s)) if (isdigit((unsigned char)*s))
return 1; return 1;
if (*s == '%') { if (*s == '%') {
s++; s++;
if (*s == 'E' || *s == 'O') if (*s == 'E' || *s == 'O')
s++; s++;
if (*s && if (*s &&
(strchr("CDdeFGgHIjkLlMmNQRrSsTUuVvWwXxYy", *s) || isdigit(*s))) (strchr("CDdeFGgHIjkLlMmNQRrSsTUuVvWwXxYy", *s) ||
isdigit((unsigned char)*s)))
return 1; return 1;
} }
return 0; return 0;
@ -624,7 +625,7 @@ date__strptime_internal(const char *str, size_t slen,
case '\v': case '\v':
case '\f': case '\f':
case '\r': case '\r':
while (isspace(str[si])) while (isspace((unsigned char)str[si]))
si++; si++;
fi++; fi++;
break; break;