From 29d84a163508b6246d6ebb3fe088bb73682c07e7 Mon Sep 17 00:00:00 2001 From: Masaki Muranaka Date: Sun, 24 Mar 2013 13:47:54 +0900 Subject: Separate FILE dependencies with ENABLE_STDIO. --- src/parse.y | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/parse.y b/src/parse.y index 29ea34c59..bdb646799 100644 --- a/src/parse.y +++ b/src/parse.y @@ -3241,12 +3241,15 @@ nextc(parser_state *p) cons_free(tmp); } else { +#ifdef ENABLE_STDIO if (p->f) { if (feof(p->f)) return -1; c = fgetc(p->f); if (c == EOF) return -1; } - else if (!p->s || p->s >= p->send) { + else +#endif + if (!p->s || p->s >= p->send) { return -1; } else { @@ -3304,6 +3307,7 @@ peeks(parser_state *p, const char *s) { int len = strlen(s); +#ifdef ENABLE_STDIO if (p->f) { int n = 0; while (*s) { @@ -3311,7 +3315,9 @@ peeks(parser_state *p, const char *s) } return TRUE; } - else if (p->s && p->s + len >= p->send) { + else +#endif + if (p->s && p->s + len >= p->send) { if (memcmp(p->s, s, len) == 0) return TRUE; } return FALSE; @@ -5079,7 +5085,9 @@ mrb_parser_new(mrb_state *mrb) p->in_def = p->in_single = 0; p->s = p->send = NULL; +#ifdef ENABLE_STDIO p->f = NULL; +#endif p->cmd_start = TRUE; p->in_def = p->in_single = FALSE; @@ -5132,6 +5140,7 @@ mrbc_filename(mrb_state *mrb, mrbc_context *c, const char *s) return c->filename; } +#ifdef ENABLE_STDIO parser_state* mrb_parse_file(mrb_state *mrb, FILE *f, mrbc_context *c) { @@ -5145,6 +5154,7 @@ mrb_parse_file(mrb_state *mrb, FILE *f, mrbc_context *c) mrb_parser_parse(p, c); return p; } +#endif parser_state* mrb_parse_nstring(mrb_state *mrb, const char *s, int len, mrbc_context *c) @@ -5208,6 +5218,7 @@ load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c) return v; } +#ifdef ENABLE_STDIO mrb_value mrb_load_file_cxt(mrb_state *mrb, FILE *f, mrbc_context *c) { @@ -5219,6 +5230,7 @@ mrb_load_file(mrb_state *mrb, FILE *f) { return mrb_load_file_cxt(mrb, f, NULL); } +#endif mrb_value mrb_load_nstring_cxt(mrb_state *mrb, const char *s, int len, mrbc_context *c) -- cgit v1.2.3 From 3401ed7bab639f6c3b820cf7d15b1c7417d4b585 Mon Sep 17 00:00:00 2001 From: Masaki Muranaka Date: Sun, 24 Mar 2013 13:49:19 +0900 Subject: Reduce using snprintf(). They can replace by mruby API. --- src/codegen.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/codegen.c b/src/codegen.c index 5b86c90a9..e8fcce5c2 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -1848,12 +1848,13 @@ codegen(codegen_scope *s, node *tree, int val) case NODE_BACK_REF: { - char buf[4]; - int len; + char buf[2] = { '$' }; + mrb_value str; int sym; - len = snprintf(buf, sizeof(buf), "$%c", (int)(intptr_t)tree); - sym = new_sym(s, mrb_intern2(s->mrb, buf, len)); + buf[1] = (char)(intptr_t)tree; + str = mrb_str_new(s->mrb, buf, 2); + sym = new_sym(s, mrb_intern_str(s->mrb, str)); genop(s, MKOP_ABx(OP_GETGLOBAL, cursp(), sym)); push(); } @@ -1861,12 +1862,14 @@ codegen(codegen_scope *s, node *tree, int val) case NODE_NTH_REF: { - char buf[4]; - int len; int sym; + mrb_state *mrb = s->mrb; + mrb_value fix = mrb_fixnum_value((intptr_t)tree); + mrb_value str = mrb_str_buf_new(mrb, 4); - len = snprintf(buf, sizeof(buf), "$%d", (int)(intptr_t)tree); - sym = new_sym(s, mrb_intern2(s->mrb, buf, len)); + mrb_str_buf_cat(mrb, str, "$", 1); + mrb_str_buf_append(mrb, str, mrb_fix2str(mrb, fix, 10)); + sym = new_sym(s, mrb_intern_str(mrb, str)); genop(s, MKOP_ABx(OP_GETGLOBAL, cursp(), sym)); push(); } -- cgit v1.2.3