From a7c633eaef3354361d72f73db2220b26344a6649 Mon Sep 17 00:00:00 2001
From: Jerry DeLisle <jvdelisle@gcc.gnu.org>
Date: Sun, 1 Jan 2006 02:45:22 +0000
Subject: [PATCH] re PR libfortran/25594 (LAPACK regression in schkbl.f)

2005-12-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25594
	PR libgfortran/25419
	* io/list_read.c (list_formatted_read_scalar): Test for comma to return
	a null value (default). Revert patch of 25419 on 2005-12-28.

From-SVN: r109211
---
 libgfortran/ChangeLog      |  7 +++++++
 libgfortran/io/list_read.c | 11 ++++++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index d60193afb584..efd38f64cb57 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,10 @@
+2005-12-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR libgfortran/25594
+	PR libgfortran/25419
+	* io/list_read.c (list_formatted_read_scalar): Test for comma to return
+	a null value (default). Revert patch of 25419 on 2005-12-28.  
+
 2005-12-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
 	PR libgfortran/25139
diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c
index 879cf8f3230a..793f0e25d413 100644
--- a/libgfortran/io/list_read.c
+++ b/libgfortran/io/list_read.c
@@ -1353,7 +1353,16 @@ list_formatted_read_scalar (st_parameter_dt *dtp, bt type, void *p, int kind,
 	{			/* Found a null value.  */
 	  eat_separator (dtp);
 	  dtp->u.p.repeat_count = 0;
-	  goto cleanup;
+
+	  /* eat_separator sets this flag if the separator was a comma */
+	  if (dtp->u.p.comma_flag)
+	    goto cleanup;
+
+	  /* eat_separator sets this flag if the separator was a \n or \r */
+	  if (dtp->u.p.at_eol)
+	    finish_separator (dtp);
+	  else
+	    goto cleanup;
 	}
 
     }
-- 
GitLab