From 7b063fdc13690972046aa3e7920402fbb5b6f7a7 Mon Sep 17 00:00:00 2001 From: Jerry DeLisle Date: Sat, 28 Jun 2008 21:46:53 +0000 Subject: [PATCH] re PR libfortran/36657 (Namelist reading bug with string constant immediately followed by comment) 2008-06-28 Jerry DeLisle PR fortran/36657 * io/list_read.c (read_character): Check for '!' along with separators. (find_nml_name): Likewise and eat the comment if found. From-SVN: r137236 --- libgfortran/ChangeLog | 6 ++++++ libgfortran/io/list_read.c | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index ac9e2710a28..69a205949bf 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2008-06-28 Jerry DeLisle + + PR fortran/36657 + * io/list_read.c (read_character): Check for '!' along with separators. + (find_nml_name): Likewise and eat the comment if found. + 2008-06-17 Ralf Wildenhues * configure: Regenerate. diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c index ffa23693a86..82c288f6c6e 100644 --- a/libgfortran/io/list_read.c +++ b/libgfortran/io/list_read.c @@ -1083,7 +1083,7 @@ read_character (st_parameter_dt *dtp, int length __attribute__ ((unused))) invalid. */ done: c = next_char (dtp); - if (is_separator (c)) + if (is_separator (c) || c == '!') { unget_char (dtp, c); eat_separator (dtp); @@ -2916,13 +2916,14 @@ find_nml_name: /* A trailing space is required, we give a little lattitude here, 10.9.1. */ c = next_char (dtp); - if (!is_separator(c)) + if (!is_separator(c) && c != '!') { unget_char (dtp, c); goto find_nml_name; } - eat_separator (dtp); + if (c == '!') + eat_line (dtp); /* Ready to read namelist objects. If there is an error in input from stdin, output the error message and continue. */ -- 2.30.2