diff --git a/src/parse.cpp b/src/parse.cpp --- a/src/parse.cpp +++ b/src/parse.cpp @@ -37,39 +37,38 @@ char *ParsePar(FILE *fp, char *parameter { char *line,*token; char *value; - + line=SearchToken(fp,parameter, wrapflag); if (line==NULL) { warning("Warning: Token %s not found.",parameter); value=0; return value; } - + /* parse the line on = sign */ token=strtok(line,"="); if (token==NULL) { - error("Parse error: no '=' sign found next to token %s, in line: \n %s.", - parameter,line); - } + error("Parse error: no '=' sign found next to token %s, in line: \n %s.", + parameter,line); + } // warning("Reading value for token %s...",token); fprintf(stderr, "[%s = ",token); - + token=strtok(NULL,"="); if (token==NULL) - error("\nParse error: no value found after '=' sign, in line: \n %s", - line); + error("\nParse error: no value found after '=' sign, in line: \n %s", + line); value=strdup(token); free(line); - + return value; - } int igetpar(FILE *fp,char *parameter, bool wrapflag) { - + // overloaded compatibility function. Doesn't need default parameter return igetpar(fp, parameter, 0, wrapflag); @@ -79,7 +78,7 @@ int igetpar(FILE *fp,char *parameter, in { char *token; int value; - + /* Get token representing the value */ token=ParsePar(fp,parameter, wrapflag); @@ -91,15 +90,14 @@ int igetpar(FILE *fp,char *parameter, in /* read it */ sscanf(token,"%d",&value); fprintf(stderr, "%d]\n",value); - + free(token); return value; - } float fgetpar(FILE *fp,char *parameter, bool wrapflag) { - + // overloaded compatibility function. Doesn't need default parameter return fgetpar(fp, parameter, 0., wrapflag); } @@ -120,13 +118,9 @@ float fgetpar(FILE *fp, char *parameter, /* read it */ sscanf(token,"%e",&value); - fprintf(stderr,"%e]\n",value); - free(token); - return value; - } @@ -139,48 +133,47 @@ double *dgetparlist(FILE *fp,char *param int i; value=(double *)malloc(n*sizeof(double)); - + /* Get token representing the value */ token=ParsePar(fp,parameter, wrapflag); - + if (token==0) { error("No token %s found.\n", parameter); } /* parse it */ number=strtok(token,","); /* make a pointer to "token" */ - + i=0; while (number!=NULL) { - + if (i>=n) { error("\nToo many values found for parameterlist '%s' (%d expected).",parameter,n); } - + sscanf(number,"%le",&value[i]); fprintf(stderr,"[%f]",value[i]); - + /* next value */ number=strtok(NULL,","); i++; } - + fprintf(stderr,"]\n"); - + if (i=initial_position)) { /* As long as the search was not wrapped and we are not * back to where we were, continue searching */ - + /* Read a line, and check whether an EOF was found */ if ((line=ReadLine(fp))==NULL) { /* Yes? wrapflag on? => Wrap. */ @@ -328,10 +317,10 @@ char *SearchToken(FILE *fp, char *token, int pos=strspn(line," \t\n"); if (line[pos]=='#') { - + continue; } - + len=strlen(line); if (strlen(tokenplusspace)<=len) { @@ -343,10 +332,8 @@ char *SearchToken(FILE *fp, char *token, return line; } } - free(line); - } free(tokenplusspace); return NULL; /* Token Not Found in the file */ @@ -362,30 +349,29 @@ int TokenInLineP(char *line,char *token) void SkipLine(FILE *fp) { - + /* Just skips a line in FILE *fp */ char *tmpstring; tmpstring=ReadLine(fp); free(tmpstring); - } void SkipToken(FILE *fp,char *token, bool wrapflag) { /* A very simple function: - call SearchToken() and get rid of the memory returned by + call SearchToken() and get rid of the memory returned by it. - Also, return an error if the desired token was not found in the file. + Also, return an error if the desired token was not found in the file. */ char *tmppointer; tmppointer=SearchToken(fp,token, wrapflag); if (tmppointer==NULL) { - error("Token `%s' not found by function SkipToken.\n",token); + error("Token `%s' not found by function SkipToken.\n",token); } free(tmppointer); - } +/* finis */