changeset 28733:3234d64a07bf

(end_of_file_error): New function. (read1): Call it instead of signaling `end-of-file' directly.
author Gerd Moellmann <gerd@gnu.org>
date Thu, 27 Apr 2000 10:48:11 +0000
parents e5694cf2ac01
children 24e50bfa830e
files src/lread.c
diffstat 1 files changed, 21 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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