]> Repositorios git - scryer-prolog.git/commitdiff
check for unexpected EOF in get_to_eof (#1897)
authorMark <[email protected]>
Wed, 19 Jul 2023 23:13:47 +0000 (17:13 -0600)
committerMark <[email protected]>
Wed, 19 Jul 2023 23:13:47 +0000 (17:13 -0600)
src/lib/charsio.pl

index 618416f19bc6f05a730c175fd660e2b113e093a4..d47d3642be8bad2e34747f0d9246ee16fee2b56a 100644 (file)
@@ -323,8 +323,13 @@ get_n_chars(Stream, N, Cs) :-
             '$get_n_chars'(Stream, N, Cs)
         ).
 
+get_n_chars_wrapper(Stream, N, Cs) :-
+        '$get_n_chars'(Stream, N, Cs).
+
 get_to_eof(Stream, Cs) :-
-        '$get_n_chars'(Stream, 512, Cs0),
+        catch(get_n_chars_wrapper(Stream, 512, Cs0),
+              error(syntax_error(unexpected_end_of_file), _),
+              Cs0 = []),
         (   Cs0 == [] -> Cs = []
         ;   partial_string(Cs0, Cs, Rest),
             get_to_eof(Stream, Rest)