diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-02-25 07:22:01 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-02-25 07:22:01 +0000 |
commit | aa40518b44deb13484a2adb80407b6d7f0e19c16 (patch) | |
tree | dfb21670e4daf37418beb65b70ea228b76a5a254 /eval_error.c | |
parent | 06751e43a3acf727a76f1de38a9b42d85ec5917b (diff) |
eval_error.c: error position format
* eval_error.c (error_print): use same error position format when
no backtrace too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval_error.c')
-rw-r--r-- | eval_error.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/eval_error.c b/eval_error.c index b21394914d..5d203d69a8 100644 --- a/eval_error.c +++ b/eval_error.c @@ -87,6 +87,7 @@ error_print(void) volatile VALUE eclass = Qundef, e = Qundef; const char *volatile einfo; volatile long elen; + VALUE mesg; if (NIL_P(errinfo)) return; @@ -105,28 +106,13 @@ error_print(void) else { goto no_message; } - if (NIL_P(errat)) { - int line; - const char *file = rb_source_loc(&line); - if (!file) - warn_printf("%d: ", line); - else if (!line) - warn_printf("%s: ", file); - else - warn_printf("%s:%d: ", file, line); - } - else if (RARRAY_LEN(errat) == 0) { + if (NIL_P(errat) || RARRAY_LEN(errat) == 0 || + NIL_P(mesg = RARRAY_AREF(errat, 0))) { error_pos(); } else { - VALUE mesg = RARRAY_AREF(errat, 0); - - if (NIL_P(mesg)) - error_pos(); - else { - warn_print_str(mesg); - warn_print(": "); - } + warn_print_str(mesg); + warn_print(": "); } eclass = CLASS_OF(errinfo); |