aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libgfortran/ChangeLog6
-rw-r--r--libgfortran/io/list_read.c10
2 files changed, 13 insertions, 3 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index de54f0f..c6f1a8d 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,9 @@
+2004-08-10 Victor Leikehman <lei@il.ibm.com>
+
+ * io/list_read.c (namelist_read): Convert variable names
+ to lower case, so that mixed-case names are recognized.
+ Don't read beyond terminating slash.
+
2004-08-09 Richard Henderson <rth@redhat.com>
Roger Sayle <roger@eyesopen.com>
diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c
index bcfbc83..92ef1e7 100644
--- a/libgfortran/io/list_read.c
+++ b/libgfortran/io/list_read.c
@@ -1453,11 +1453,15 @@ restart:
match_namelist_name(ioparm.namelist_name, ioparm.namelist_name_len);
/* Ready to read namelist elements */
- for (;;)
+ while (!input_complete)
{
c = next_char ();
switch (c)
{
+ case '/':
+ input_complete = 1;
+ next_record (0);
+ break;
case '&':
match_namelist_name("end",3);
return;
@@ -1475,7 +1479,7 @@ restart:
name_matched = 1;
nl = find_nml_node (saved_string);
if (nl == NULL)
- internal_error ("Can not found a valid namelist var!");
+ internal_error ("Can not match a namelist variable");
free_saved();
len = nl->len;
@@ -1528,7 +1532,7 @@ restart:
break;
default :
- push_char(c);
+ push_char(tolower(c));
break;
}
}