# HG changeset patch # User Gerd Moellmann # Date 956832491 0 # Node ID 3234d64a07bf551a70e5d72306d830f64674e911 # Parent e5694cf2ac01f0c40eee215739344c745e07b499 (end_of_file_error): New function. (read1): Call it instead of signaling `end-of-file' directly. diff -r e5694cf2ac01 -r 3234d64a07bf src/lread.c --- a/src/lread.c Thu Apr 27 10:47:45 2000 +0000 +++ b/src/lread.c Thu Apr 27 10:48:11 2000 +0000 @@ -1111,6 +1111,22 @@ return Qnil; } +/* Signal an `end-of-file' error, if possible with file name + information. */ + +static void +end_of_file_error () +{ + Lisp_Object data; + + if (STRINGP (Vload_file_name)) + data = Fcons (Vload_file_name, Qnil); + else + data = Qnil; + + Fsignal (Qend_of_file, data); +} + /* UNIBYTE specifies how to set load_convert_to_unibyte for this invocation. READFUN, if non-nil, is used instead of `read'. */ @@ -1691,7 +1707,8 @@ retry: c = READCHAR; - if (c < 0) return Fsignal (Qend_of_file, Qnil); + if (c < 0) + end_of_file_error (); switch (c) { @@ -2009,7 +2026,8 @@ case '?': { c = READCHAR; - if (c < 0) return Fsignal (Qend_of_file, Qnil); + if (c < 0) + end_of_file_error (); if (c == '\\') c = read_escape (readcharfun, 0); @@ -2097,7 +2115,7 @@ } } if (c < 0) - return Fsignal (Qend_of_file, Qnil); + end_of_file_error (); /* If purifying, and string starts with \ newline, return zero instead. This is for doc strings