Jaromir Capik 8ffdb3
Subject: getdoublearr.stripwhite
Jaromir Capik 8ffdb3
From: Michel Normand <normand@fr.ibm.com>
Jaromir Capik 8ffdb3
Jaromir Capik 8ffdb3
GetDoubleArr must only handle the comma delimited list at string head
Jaromir Capik 8ffdb3
and ignore anything after the first blank character.
Jaromir Capik 8ffdb3
Jaromir Capik 8ffdb3
Signed-off-by: Michel Normand <normand@fr.ibm.com>
Jaromir Capik 8ffdb3
---
Jaromir Capik 8ffdb3
 ATLAS/include/atlas_genparse.h |   16 ++++++++++++++--
Jaromir Capik 8ffdb3
 1 file changed, 14 insertions(+), 2 deletions(-)
Jaromir Capik 8ffdb3
Jaromir Capik 8ffdb3
Index: atlas/ATLAS/include/atlas_genparse.h
Jaromir Capik 8ffdb3
===================================================================
Jaromir Capik 8ffdb3
--- atlas.orig/ATLAS/include/atlas_genparse.h
Jaromir Capik 8ffdb3
+++ atlas/ATLAS/include/atlas_genparse.h
Jaromir Capik 8ffdb3
@@ -149,13 +149,24 @@ static int asmNames2bitfield(char *str)
Jaromir Capik 8ffdb3
 }
Jaromir Capik 8ffdb3
 
Jaromir Capik 8ffdb3
 /* procedure 7 */
Jaromir Capik 8ffdb3
-static int GetDoubleArr(char *str, int N, double *d)
Jaromir Capik 8ffdb3
+static int GetDoubleArr(char *callerstr, int N, double *d)
Jaromir Capik 8ffdb3
 /*
Jaromir Capik 8ffdb3
  * Reads in a list with form "%le,%le...,%le"; N-length d recieves doubles.
Jaromir Capik 8ffdb3
  * RETURNS: the number of doubles found, or N, whichever is less
Jaromir Capik 8ffdb3
  */
Jaromir Capik 8ffdb3
 {
Jaromir Capik 8ffdb3
-   int i=1;
Jaromir Capik 8ffdb3
+   int i;
Jaromir Capik 8ffdb3
+   char *dupstr = DupString(callerstr);
Jaromir Capik 8ffdb3
+   char *str = dupstr;
Jaromir Capik 8ffdb3
+   /* strip the string to end on first white space */
Jaromir Capik 8ffdb3
+   for (i=0; dupstr[i]; i++)
Jaromir Capik 8ffdb3
+   {
Jaromir Capik 8ffdb3
+	if (isspace(dupstr[i])) {
Jaromir Capik 8ffdb3
+		dupstr[i] = '\0';
Jaromir Capik 8ffdb3
+		break;
Jaromir Capik 8ffdb3
+	}
Jaromir Capik 8ffdb3
+   }
Jaromir Capik 8ffdb3
+   i = 1;
Jaromir Capik 8ffdb3
    assert(sscanf(str, "%le", d) == 1);
Jaromir Capik 8ffdb3
    while (i < N)
Jaromir Capik 8ffdb3
    {
Jaromir Capik 8ffdb3
@@ -166,6 +177,7 @@ static int GetDoubleArr(char *str, int N
Jaromir Capik 8ffdb3
	break;
Jaromir Capik 8ffdb3
       i++;
Jaromir Capik 8ffdb3
    }
Jaromir Capik 8ffdb3
+   free(dupstr);
Jaromir Capik 8ffdb3
    return(i);
Jaromir Capik 8ffdb3
 }
Jaromir Capik 8ffdb3