aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/stdlib/src/epp.erl10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/stdlib/src/epp.erl b/lib/stdlib/src/epp.erl
index d4844b8c1e..e5ccaddbb4 100644
--- a/lib/stdlib/src/epp.erl
+++ b/lib/stdlib/src/epp.erl
@@ -427,7 +427,10 @@ scan_toks(From, St) ->
epp_reply(From, {error,E}),
wait_req_scan(St#epp{location=Cl});
{eof,Cl} ->
- leave_file(From, St#epp{location=Cl})
+ leave_file(From, St#epp{location=Cl});
+ {error,_E} ->
+ epp_reply(From, {error,{St#epp.location,epp,cannot_parse}}),
+ leave_file(wait_request(St), St) %This serious, just exit!
end.
scan_toks([{'-',_Lh},{atom,_Ld,define}=Define|Toks], From, St) ->
@@ -808,7 +811,10 @@ skip_toks(From, St, [I|Sis]) ->
{error,_E,Cl} ->
skip_toks(From, St#epp{location=Cl}, [I|Sis]);
{eof,Cl} ->
- leave_file(From, St#epp{location=Cl,istk=[I|Sis]})
+ leave_file(From, St#epp{location=Cl,istk=[I|Sis]});
+ {error,_E} ->
+ epp_reply(From, {error,{St#epp.location,epp,cannot_parse}}),
+ leave_file(wait_request(St), St) %This serious, just exit!
end;
skip_toks(From, St, []) ->
scan_toks(From, St).