summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/parse.y4
-rw-r--r--tasks/mrbgems.rake3
-rw-r--r--tools/mirb/mirb.c6
3 files changed, 8 insertions, 5 deletions
diff --git a/src/parse.y b/src/parse.y
index 35bc18cd5..7972e87c4 100644
--- a/src/parse.y
+++ b/src/parse.y
@@ -38,6 +38,10 @@ static void yywarn(parser_state *p, const char *s);
static void yywarning(parser_state *p, const char *s);
static void backref_error(parser_state *p, node *n);
+#ifndef isascii
+#define isascii(c) (((c) & ~0x7f) == 0)
+#endif
+
#define identchar(c) (isalnum(c) || (c) == '_' || !isascii(c))
typedef unsigned int stack_type;
diff --git a/tasks/mrbgems.rake b/tasks/mrbgems.rake
index 1f3aa0811..c18a9a181 100644
--- a/tasks/mrbgems.rake
+++ b/tasks/mrbgems.rake
@@ -8,7 +8,7 @@ MRuby.each_target do
# loader all gems
self.libmruby << objfile("#{build_dir}/mrbgems/gem_init")
- file objfile("#{build_dir}/mrbgems/gem_init") => "#{build_dir}/mrbgems/gem_init.c"
+ file objfile("#{build_dir}/mrbgems/gem_init") => ["#{build_dir}/mrbgems/gem_init.c", "#{build_dir}/LEGAL"]
file "#{build_dir}/mrbgems/gem_init.c" => [MRUBY_CONFIG] do |t|
FileUtils.mkdir_p "#{build_dir}/mrbgems"
open(t.name, 'w') do |f|
@@ -42,7 +42,6 @@ MRuby.each_target do
end
# legal documents
- self.libmruby << "#{build_dir}/LEGAL"
file "#{build_dir}/LEGAL" => [MRUBY_CONFIG] do |t|
open(t.name, 'w+') do |f|
f.puts <<LEGAL
diff --git a/tools/mirb/mirb.c b/tools/mirb/mirb.c
index ed3b105b6..ba400bf95 100644
--- a/tools/mirb/mirb.c
+++ b/tools/mirb/mirb.c
@@ -38,9 +38,6 @@ is_code_block_open(struct mrb_parser_state *parser)
{
int code_block_open = FALSE;
- /* check for unterminated string */
- if (parser->lex_strterm) return TRUE;
-
/* check for heredoc */
if (parser->heredoc_starts_nextline) return TRUE;
if (parser->heredoc_end_now) {
@@ -70,6 +67,9 @@ is_code_block_open(struct mrb_parser_state *parser)
return code_block_open;
}
+ /* check for unterminated string */
+ if (parser->lex_strterm) return TRUE;
+
switch (parser->lstate) {
/* all states which need more code */