summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Koenig <Thomas.Koenig@online.de>2005-04-13 20:48:16 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2005-04-13 20:48:16 +0000
commita6a44da774242d0abbdf0c7367351e7e45ebb7d0 (patch)
treebf078f0d0e3bbed1813c1cd618e4d0abfa83bdd0
parentc431d95462cbaee419c90aae76ba8e436ca0bf63 (diff)
downloadgcc-a6a44da774242d0abbdf0c7367351e7e45ebb7d0.tar.gz
Committed after approval on
http://gcc.gnu.org/ml/gcc/2005-04/msg00613.html. 2005-04-13 Thomas Koenig <Thomas.Koenig@online.de> PR libfortran/20163 * runtime/string.c (compare0): Use fstrlen() to strip trailing blanks from option string. 2005-04-13 Thomas Koenig <Thomas.Koenig@online.de> PR libfortran/20163 * gfortran.dg/open-options-blanks.f: New test. From-SVN: r98112
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--libgfortran/ChangeLog7
-rw-r--r--libgfortran/runtime/string.c14
3 files changed, 16 insertions, 10 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f74483845d0..fcf8adbed89 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-04-13 Thomas Koenig <Thomas.Koenig@online.de>
+
+ PR libfortran/20163
+ * gfortran.dg/open-options-blanks.f: New test.
+
2005-04-12 Ulrich Weigand <uweigand@de.ibm.com>
PR middle-end/20917
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index f10dd589d06..0f182780e53 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,10 @@
+2005-04-13 Thomas Koenig <Thomas.Koenig@online.de>
+
+ PR libfortran/20163
+ * runtime/string.c (compare0): Use fstrlen() to
+ strip trailing blanks from option string.
+
+
2005-04-08 Eric Botcazou <ebotcazou@libertysurf.fr>
* io/backspace.c (unformatted_backspace): Do not dereference
diff --git a/libgfortran/runtime/string.c b/libgfortran/runtime/string.c
index 07ed99bab36..07f374eea04 100644
--- a/libgfortran/runtime/string.c
+++ b/libgfortran/runtime/string.c
@@ -41,17 +41,11 @@ static int
compare0 (const char *s1, int s1_len, const char *s2)
{
int i;
+ int len;
- if (strncasecmp (s1, s2, s1_len) != 0)
- return 0;
-
- /* The rest of s1 needs to be blanks for equality. */
-
- for (i = strlen (s2); i < s1_len; i++)
- if (s1[i] != ' ')
- return 0;
-
- return 1;
+ /* Strip trailing blanks from the Fortran string. */
+ len = fstrlen(s1, s1_len);
+ return strncasecmp(s1,s2,len) == 0;
}