diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2018-09-03 19:41:05 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2018-09-04 11:27:34 +0200 |
commit | d4655ae8882ef601b06d3f6f0e35bc38ebeea763 (patch) | |
tree | 0f39d8c7aed38d6cc78f502aca1110e6fd1ecc4c /jsstate.c | |
parent | 924649a69ecbebbf60339f638e73a0595cfb0732 (diff) |
Show system error message in js_loadfile.
Diffstat (limited to 'jsstate.c')
-rw-r--r-- | jsstate.c | 17 |
1 files changed, 9 insertions, 8 deletions
@@ -130,36 +130,37 @@ void js_loadfile(js_State *J, const char *filename) f = fopen(filename, "rb"); if (!f) { - js_error(J, "cannot open file: '%s'", filename); + js_error(J, "cannot open file '%s': %s", filename, strerror(errno)); } if (fseek(f, 0, SEEK_END) < 0) { fclose(f); - js_error(J, "cannot seek in file: '%s'", filename); + js_error(J, "cannot seek in file '%s': %s", filename, strerror(errno)); } n = ftell(f); if (n < 0) { fclose(f); - js_error(J, "cannot tell in file: '%s'", filename); + js_error(J, "cannot tell in file '%s': %s", filename, strerror(errno)); } if (fseek(f, 0, SEEK_SET) < 0) { fclose(f); - js_error(J, "cannot seek in file: '%s'", filename); + js_error(J, "cannot seek in file '%s': %s", filename, strerror(errno)); } - s = js_malloc(J, n + 1); /* add space for string terminator */ - if (!s) { + if (js_try(J)) { fclose(f); - js_error(J, "cannot allocate storage for file contents: '%s'", filename); + js_throw(J); } + s = js_malloc(J, n + 1); /* add space for string terminator */ + js_endtry(J); t = fread(s, 1, (size_t)n, f); if (t != n) { js_free(J, s); fclose(f); - js_error(J, "cannot read data from file: '%s'", filename); + js_error(J, "cannot read data from file '%s': %s", filename, strerror(errno)); } s[n] = 0; /* zero-terminate string containing file data */ |