core: Throw instead of segfault on non-existing input file. WIP.

Reported by theruran.

* src/posix.c (open_input_file): Call error instead of failing silently.
This commit is contained in:
Jan Nieuwenhuizen 2019-11-24 23:12:29 +01:00
parent 99a971fe73
commit 34cfd9b850
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
1 changed files with 4 additions and 1 deletions

View File

@ -214,7 +214,10 @@ current_input_port ()
struct scm *
open_input_file (struct scm *file_name)
{
return make_number (mes_open (cell_bytes (file_name->string), O_RDONLY, 0));
int filedes = mes_open (cell_bytes (file_name->string), O_RDONLY, 0);
if (filedes == -1)
error (cell_symbol_system_error, cons (make_string0 ("No such file or directory"), file_name));
return make_number (filedes);
}
struct scm *