summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/class.c10
-rw-r--r--src/hash.c4
-rw-r--r--src/re.c18
-rw-r--r--src/sprintf.c22
-rw-r--r--src/string.c6
5 files changed, 29 insertions, 31 deletions
diff --git a/src/class.c b/src/class.c
index 599db9da5..b53c18590 100644
--- a/src/class.c
+++ b/src/class.c
@@ -1141,25 +1141,25 @@ mrb_mod_to_s(mrb_state *mrb, mrb_value klass)
}
else {
struct RClass *c = mrb_class_ptr(klass);
- const char *cn = mrb_class_name(mrb, c);
+ const char *cn = mrb_class_name(mrb, c);
if (!cn) {
char buf[256];
-
+ int n = 0;
switch (mrb_type(klass)) {
case MRB_TT_CLASS:
- snprintf(buf, sizeof(buf), "#<Class:%p>", c);
+ n = snprintf(buf, sizeof(buf), "#<Class:%p>", c);
break;
case MRB_TT_MODULE:
- snprintf(buf, sizeof(buf), "#<Module:%p>", c);
+ n = snprintf(buf, sizeof(buf), "#<Module:%p>", c);
break;
default:
break;
}
- return mrb_str_dup(mrb, mrb_str_new_cstr(mrb, buf));
+ return mrb_str_dup(mrb, mrb_str_new(mrb, buf, n));
}
else {
return mrb_str_dup(mrb, mrb_str_new_cstr(mrb, cn));
diff --git a/src/hash.c b/src/hash.c
index a87ca97d4..888a1917e 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -904,14 +904,14 @@ inspect_hash(mrb_state *mrb, mrb_value hash, int recur)
str2 = mrb_inspect(mrb, kh_key(h,k));
mrb_str_append(mrb, str, str2);
- mrb_str_buf_cat(mrb, str, "=>", sizeof("=>"));
+ mrb_str_buf_cat(mrb, str, "=>", 2);
str2 = mrb_inspect(mrb, kh_value(h,k));
mrb_str_append(mrb, str, str2);
mrb_gc_arena_restore(mrb, ai);
}
}
- mrb_str_buf_cat(mrb, str, "}", sizeof("}"));
+ mrb_str_buf_cat(mrb, str, "}", 1);
return str;
}
diff --git a/src/re.c b/src/re.c
index a7552de11..3639a41c6 100644
--- a/src/re.c
+++ b/src/re.c
@@ -364,7 +364,7 @@ mrb_reg_desc(mrb_state *mrb, const char *s, long len, mrb_value re)
if (*option_to_str(opts, RREGEXP(re)->ptr->options))
mrb_str_buf_cat(mrb, str, opts, strlen(opts));//mrb_str_buf_cat2(str, opts);
if (RBASIC(re)->flags & REG_ENCODING_NONE)
- mrb_str_buf_cat(mrb, str, "n", sizeof("n"));
+ mrb_str_buf_cat(mrb, str, "n", 1);
}
return str;
@@ -1797,9 +1797,9 @@ again:
mrb_str_buf_cat(mrb, str, optbuf, strlen(optbuf));
}
- mrb_str_buf_cat(mrb, str, ":", sizeof(":"));
+ mrb_str_buf_cat(mrb, str, ":", 1);
mrb_reg_expr_str(mrb, str, (char*)ptr, len);
- mrb_str_buf_cat(mrb, str, ")", sizeof(")"));
+ mrb_str_buf_cat(mrb, str, ")", 1);
return str;
}
@@ -1925,23 +1925,23 @@ mrb_match_inspect(mrb_state *mrb, mrb_value match)
for (i = 0; i < num_regs; i++) {
char buf[sizeof(num_regs)*3+1];
mrb_value v;
- mrb_str_buf_cat(mrb, str, " ", sizeof(" "));
+ mrb_str_buf_cat(mrb, str, " ", 1);
if (0 < i) {
if (names[i].name)
mrb_str_buf_cat(mrb, str, (const char*)names[i].name, names[i].len);
else {
- sprintf(buf, "%d", i);
- mrb_str_buf_cat(mrb, str, (const char*)buf, strlen(buf));
+ int n = sprintf(buf, "%d", i);
+ mrb_str_buf_cat(mrb, str, (const char*)buf, n);
}
- mrb_str_buf_cat(mrb, str, ":", sizeof(":"));
+ mrb_str_buf_cat(mrb, str, ":", 1);
}
v = mrb_reg_nth_match(mrb, i, match);
if (mrb_nil_p(v))
- mrb_str_buf_cat(mrb, str, "nil", sizeof("nil"));
+ mrb_str_buf_cat(mrb, str, "nil", 3);
else
mrb_str_buf_append(mrb, str, mrb_str_inspect(mrb, v));
}
- mrb_str_buf_cat(mrb, str, ">", sizeof(">"));
+ mrb_str_buf_cat(mrb, str, ">", 1);
return str;
}
diff --git a/src/sprintf.c b/src/sprintf.c
index 68addef89..d6104ad48 100644
--- a/src/sprintf.c
+++ b/src/sprintf.c
@@ -496,7 +496,7 @@ mrb_str_format(mrb_state *mrb, int argc, const mrb_value *argv, mrb_value fmt)
char *buf;
long blen, bsiz;
mrb_value result;
-
+ int n;
int width, prec, flags = FNONE;
int nextarg = 1;
int posarg = 0;
@@ -533,7 +533,6 @@ mrb_str_format(mrb_state *mrb, int argc, const mrb_value *argv, mrb_value fmt)
for (; p < end; p++) {
const char *t;
- int n;
mrb_sym id = 0;
for (t = p; t < end && *t != '%'; t++) ;
@@ -669,7 +668,6 @@ retry:
mrb_value val = GETARG();
mrb_value tmp;
unsigned int c;
- int n;
tmp = mrb_check_string_type(mrb, val);
if (!mrb_nil_p(tmp)) {
@@ -984,6 +982,7 @@ bin_retry:
fval = mrb_float(mrb_Float(mrb, val));
if (isnan(fval) || isinf(fval)) {
const char *expr;
+ const int elen = 3;
if (isnan(fval)) {
expr = "NaN";
@@ -991,14 +990,14 @@ bin_retry:
else {
expr = "Inf";
}
- need = (int)strlen(expr);
+ need = elen;
if ((!isnan(fval) && fval < 0.0) || (flags & FPLUS))
need++;
if ((flags & FWIDTH) && need < width)
need = width;
CHECK(need + 1);
- snprintf(&buf[blen], need + 1, "%*s", need, "");
+ n = snprintf(&buf[blen], need + 1, "%*s", need, "");
if (flags & FMINUS) {
if (!isnan(fval) && fval < 0.0)
buf[blen++] = '-';
@@ -1006,17 +1005,16 @@ bin_retry:
buf[blen++] = '+';
else if (flags & FSPACE)
blen++;
- memcpy(&buf[blen], expr, strlen(expr));
+ memcpy(&buf[blen], expr, elen);
}
else {
if (!isnan(fval) && fval < 0.0)
- buf[blen + need - strlen(expr) - 1] = '-';
+ buf[blen + need - elen - 1] = '-';
else if (flags & FPLUS)
- buf[blen + need - strlen(expr) - 1] = '+';
+ buf[blen + need - elen - 1] = '+';
else if ((flags & FSPACE) && need > width)
blen++;
- memcpy(&buf[blen + need - strlen(expr)], expr,
- strlen(expr));
+ memcpy(&buf[blen + need - elen], expr, elen);
}
blen += strlen(&buf[blen]);
break;
@@ -1036,8 +1034,8 @@ bin_retry:
need += 20;
CHECK(need);
- snprintf(&buf[blen], need, fbuf, fval);
- blen += strlen(&buf[blen]);
+ n = snprintf(&buf[blen], need, fbuf, fval);
+ blen += n;
}
break;
}
diff --git a/src/string.c b/src/string.c
index c74dcedde..8e61e6bb9 100644
--- a/src/string.c
+++ b/src/string.c
@@ -2983,12 +2983,12 @@ mrb_str_inspect(mrb_state *mrb, mrb_value str)
continue;
}
else {
- sprintf(buf, "\\%03o", c & 0377);
- mrb_str_buf_cat(mrb, result, buf, strlen(buf));
+ int n = sprintf(buf, "\\%03o", c & 0377);
+ mrb_str_buf_cat(mrb, result, buf, n);
continue;
}
}
- mrb_str_buf_cat(mrb, result, "\"", sizeof("\""));
+ mrb_str_buf_cat(mrb, result, "\"", 1);
return result;
}