]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2008-10-22 Jerry DeLisle <jvdelisle@gcc.gnu.org
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Oct 2008 02:31:00 +0000 (02:31 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Oct 2008 02:31:00 +0000 (02:31 +0000)
PR libfortran/37707
* io/list_read.c (read_character): Remove code to look ahead in namelist
reads to descriminate non-delimited strings from namelist objects.
* io/write.c (namelist_write): Delimit character strings with quote or
apostrophe, defaulting to quote.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141317 138bc75d-0d04-0410-961f-82ee72b054a4

libgfortran/ChangeLog
libgfortran/io/list_read.c
libgfortran/io/write.c

index 3802d69e96962650e8669cf8213e5de50de7376e..be62b198ee4e05956e6e82a250c422313edd17a5 100644 (file)
@@ -1,3 +1,11 @@
+2008-10-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org
+
+       PR libfortran/37707
+       * io/list_read.c (read_character): Remove code to look ahead in namelist
+       reads to descriminate non-delimited strings from namelist objects.
+       * io/write.c (namelist_write): Delimit character strings with quote or
+       apostrophe, defaulting to quote.
+
 2008-10-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR libfortran/34670
index 00cd841df245029977517903ee48ea5b78bdd66e..1f1023c10d22defdf6d03d3b34a218b0d6d37f06 100644 (file)
@@ -929,52 +929,8 @@ read_character (st_parameter_dt *dtp, int length __attribute__ ((unused)))
     default:
       if (dtp->u.p.namelist_mode)
        {
-         if (dtp->u.p.current_unit->delim_status == DELIM_APOSTROPHE
-             || dtp->u.p.current_unit->delim_status == DELIM_QUOTE
-             || c == '&' || c == '$' || c == '/')
-           {
-             unget_char (dtp, c);
-             return;
-           }
-
-         /* Check to see if we are seeing a namelist object name by using the
-            line buffer and looking ahead for an '=' or '('.  */
-         l_push_char (dtp, c);
-
-         int i;
-         for(i = 0; i < 63; i++)
-           {
-             c = next_char (dtp);
-             if (is_separator(c))
-               {
-                 unget_char (dtp, c);
-                 eat_separator (dtp);
-                 c = next_char (dtp);
-                 if (c != '=')
-                   {
-                     l_push_char (dtp, c);
-                     dtp->u.p.item_count = 0;
-                     dtp->u.p.line_buffer_enabled = 1;
-                     goto get_string;
-                   }
-               }
-
-             l_push_char (dtp, c);
-
-             if (c == '=' || c == '(')
-               {
-                 dtp->u.p.item_count = 0;
-                 dtp->u.p.nml_read_error = 1;
-                 dtp->u.p.line_buffer_enabled = 1;
-                 return;
-               }
-           }
-
-         /* The string is too long to be a valid object name so assume that it
-            is a string to be read in as a value.  */
-         dtp->u.p.item_count = 0;
-         dtp->u.p.line_buffer_enabled = 1;
-         goto get_string;
+         unget_char (dtp, c);
+         return;
        }
 
       push_char (dtp, c);
index 020f473da7ff5e07326443769570913ef3ba50a7..12ff2953c6215903328741c92c4485d51c2ece7b 100644 (file)
@@ -1442,20 +1442,8 @@ namelist_write (st_parameter_dt *dtp)
 
   /* Set the delimiter for namelist output.  */
   tmp_delim = dtp->u.p.current_unit->delim_status;
-  switch (tmp_delim)
-    {
-    case (DELIM_QUOTE):
-      dtp->u.p.nml_delim = '"';
-      break;
-
-    case (DELIM_APOSTROPHE):
-      dtp->u.p.nml_delim = '\'';
-      break;
 
-    default:
-      dtp->u.p.nml_delim = '\0';
-      break;
-    }
+  dtp->u.p.nml_delim = tmp_delim == DELIM_APOSTROPHE ? '\'' : '"';
 
   /* Temporarily disable namelist delimters.  */
   dtp->u.p.current_unit->delim_status = DELIM_NONE;