summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-06-11 10:03:21 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-06-11 10:03:21 +0000
commit1bc6f594d3de8dbfb5c165835eaec99bd49327c8 (patch)
treed535a84c63a5cf779aa1ae83f89ed64f22040471 /string.c
parent3f5b1ec9cb657375a0c467ac70fdd6fbdc97f018 (diff)
1.1b9_25
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r--string.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/string.c b/string.c
index 5229236f3b..90787cdb40 100644
--- a/string.c
+++ b/string.c
@@ -2002,7 +2002,7 @@ str_split_method(argc, argv, str)
extern VALUE FS;
VALUE spat;
VALUE limit;
- char char_sep = 0;
+ int char_sep = -1;
int beg, end, lim, i;
VALUE result, tmp;
@@ -2026,7 +2026,7 @@ str_split_method(argc, argv, str)
case T_STRING:
fs_set:
if (STRLEN(spat) == 1) {
- char_sep = RSTRING(spat)->ptr[0];
+ char_sep = (unsigned char)RSTRING(spat)->ptr[0];
}
else {
spat = reg_regcomp(spat);
@@ -2041,7 +2041,7 @@ str_split_method(argc, argv, str)
result = ary_new();
beg = 0;
- if (char_sep != 0) {
+ if (char_sep >= 0) {
char *ptr = RSTRING(str)->ptr;
int len = RSTRING(str)->len;
char *eptr = ptr + len;
@@ -2074,7 +2074,7 @@ str_split_method(argc, argv, str)
}
else {
for (end = beg = 0; ptr<eptr; ptr++) {
- if (*ptr == char_sep) {
+ if (*ptr == (char)char_sep) {
ary_push(result, str_substr(str, beg, end-beg));
beg = end + 1;
if (!NIL_P(limit) && lim <= ++i) break;