diff mbox

[libgfortran] Bug 65541 - [5 Regression] namelist regression

Message ID 551373D9.3060806@charter.net
State New
Headers show

Commit Message

Jerry DeLisle March 26, 2015, 2:50 a.m. UTC
Committed as obvious and simple.

revision 221682.

Regards,

Jerry

2015-03-25 Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/65541
	* io/write.c (nml_write_obj): Convert '+' to '%' before emitting
	object names in namelists.
diff mbox

Patch

Index: io/write.c
===================================================================
--- io/write.c	(revision 221681)
+++ io/write.c	(working copy)
@@ -1704,10 +1704,11 @@ 
    size_t clen;
    index_type elem_ctr;
    size_t obj_name_len;
-  void * p ;
+  void * p;
    char cup;
    char * obj_name;
    char * ext_name;
+  char * q;
    size_t ext_name_len;
    char rep_buff[NML_DIGITS];
    namelist_info * cmp;
@@ -1745,6 +1746,8 @@ 
        for (dim_i = len; dim_i < clen; dim_i++)
  	{
  	  cup = toupper ((int) obj->var_name[dim_i]);
+	  if (cup == '+')
+	    cup = '%';
  	  write_character (dtp, &cup, 1, 1, NODELIM);
  	}
        write_character (dtp, "=", 1, 1, NODELIM);
@@ -1894,6 +1897,9 @@ 
  		}

  	      ext_name[tot_len] = '\0';
+	      for (q = ext_name; *q; q++)
+		if (*q == '+')
+		  *q = '%';

  	      /* Now obj_name.  */