diff options
author | IOhannes m zmölnig <zmoelnig@umlautS.umlaeute.mur.at> | 2018-02-23 16:22:29 +0100 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@umlautS.umlaeute.mur.at> | 2018-02-23 16:22:29 +0100 |
commit | b3b583be0f50487d478f02ee6c147848bdfcc73c (patch) | |
tree | 4e12aaceedbde1d991260c3fd9cd17675efec2fd /xen.c | |
parent | 1b3b1b2aeecc34416aa125e24abecda704a5c8ad (diff) |
New upstream version 18.1
Diffstat (limited to 'xen.c')
-rw-r--r-- | xen.c | 24 |
1 files changed, 17 insertions, 7 deletions
@@ -502,13 +502,23 @@ Xen xen_rb_eval_string_with_error(const char *str) } -Xen xen_rb_load_file_with_error(Xen file) -{ - int status = 0; - rb_load_protect(file, 0, &status); - if (status != 0) - return(xen_rb_obj_as_string(rb_gv_get("$!"))); - return(Xen_true); +void xen_rb_load_file_with_error(const char *file) +{ + int status = 0, i; + Xen err, info; + rb_load_protect(C_string_to_Xen_string(file), 0, &status); + if (status == 0) + return; + fprintf(stderr, "Can't load %s", file); + err = rb_gv_get("$!"); + if (err != Qnil) + fprintf(stderr, ": %s", Xen_object_to_C_string(err)); + fprintf(stderr, "\n"); + info = rb_gv_get("$@"); + if (info == Qnil) + return; + for (i = 0; i < Xen_vector_length(info); i++) + fprintf(stderr, "%s\n", Xen_string_to_C_string(Xen_vector_ref(info, i))); } |