PR libfortran/20788
authorfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 10 Apr 2005 10:37:59 +0000 (10:37 +0000)
committerfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 10 Apr 2005 10:37:59 +0000 (10:37 +0000)
* runtime/environ.c (init_unsigned_integer): Function for
environment variables we want to be positive.
(init_integer): Function to allow negative environment
variables (e.g. for GFORTRAN_STDIN_UNIT).

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

libgfortran/ChangeLog
libgfortran/runtime/environ.c

index 1183754..ca2120d 100644 (file)
@@ -1,3 +1,11 @@
+2005-04-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR libfortran/20788
+       * runtime/environ.c (init_unsigned_integer): Function for
+       environment variables we want to be positive.
+       (init_integer): Function to allow negative environment
+       variables (e.g. for GFORTRAN_STDIN_UNIT).
+       
 2005-04-10  Thomas Koenig <Thomas.Koenig@online.de>
 
        PR libfortran/17992
index 8d608ae..c1a71cf 100644 (file)
@@ -97,7 +97,7 @@ var_source (variable * v)
 }
 
 
-/* init_integer()-- Initialize an integer environment variable */
+/* init_integer()-- Initialize an integer environment variable */
 
 static void
 init_integer (variable * v)
@@ -109,6 +109,34 @@ init_integer (variable * v)
     goto set_default;
 
   for (q = p; *q; q++)
+    if (!isdigit (*q) && (p != q || *q != '-'))
+      {
+       v->bad = 1;
+       goto set_default;
+      }
+
+  *v->var = atoi (p);
+  return;
+
+ set_default:
+  *v->var = v->value;
+  return;
+}
+
+
+/* init_unsigned_integer()-- Initialize an integer environment variable
+   which has to be positive.  */
+
+static void
+init_unsigned_integer (variable * v)
+{
+  char *p, *q;
+
+  p = getenv (v->name);
+  if (p == NULL)
+    goto set_default;
+
+  for (q = p; *q; q++)
     if (!isdigit (*q))
       {
        v->bad = 1;
@@ -467,7 +495,7 @@ static variable variable_table[] = {
    "Print optional plus signs in numbers where permitted.  Default FALSE."},
 
   {"GFORTRAN_DEFAULT_RECL", DEFAULT_RECL, &options.default_recl,
-   init_integer, show_integer,
+   init_integer, show_unsigned_integer,
    "Default maximum record length for sequential files.  Most useful for\n"
    "adjusting line length of preconnected units.  Default "
    stringize (DEFAULT_RECL)},