From: N. Brouard Date: Thu, 19 Jan 2006 16:20:37 +0000 (+0000) Subject: Test existence of gnuplot in imach path X-Git-Tag: imach-099s7~543 X-Git-Url: https://henry.ined.fr/git/?a=commitdiff_plain;h=311618e08718892ad284538ea8fc59fe72b934e1;p=.git Test existence of gnuplot in imach path --- diff --git a/src/imach.c b/src/imach.c index 74a5f6f..ab782ae 100644 --- a/src/imach.c +++ b/src/imach.c @@ -1,6 +1,9 @@ /* $Id$ $State$ $Log$ + Revision 1.106 2006/01/19 13:24:36 brouard + Some cleaning and links added in html output + Revision 1.105 2006/01/05 20:23:19 lievre *** empty log message *** @@ -224,6 +227,11 @@ #include #include +#include +#include +#include +extern int errno; + /* #include */ #include #include "timeval.h" @@ -254,9 +262,11 @@ #define AGEGOMP 10. /* Minimal age for Gompertz adjustment */ #ifdef UNIX #define DIRSEPARATOR '/' +#define CHARSEPARATOR "/" #define ODIRSEPARATOR '\\' #else #define DIRSEPARATOR '\\' +#define CHARSEPARATOR "\\" #define ODIRSEPARATOR '/' #endif @@ -385,7 +395,7 @@ double ftolhess; /* Tolerance for computing hessian */ /**************** split *************************/ static int split( char *path, char *dirc, char *name, char *ext, char *finame ) { - /* From a file name with full path (either Unix or Windows) we extract the directory (dirc) + /* From a file name with (full) path (either Unix or Windows) we extract the directory (dirc) the name of the file (name), its extension only (ext) and its first part of the name (finame) */ char *ss; /* pointer */ @@ -394,7 +404,8 @@ static int split( char *path, char *dirc, char *name, char *ext, char *finame ) l1 = strlen(path ); /* length of path */ if ( l1 == 0 ) return( GLOCK_ERROR_NOPATH ); ss= strrchr( path, DIRSEPARATOR ); /* find last / */ - if ( ss == NULL ) { /* no directory, so use current */ + if ( ss == NULL ) { /* no directory, so determine current directory */ + strcpy( name, path ); /* we got the fullname name because no directory */ /*if(strrchr(path, ODIRSEPARATOR )==NULL) printf("Warning you should use %s as a separator\n",DIRSEPARATOR);*/ /* get current working directory */ @@ -402,7 +413,8 @@ static int split( char *path, char *dirc, char *name, char *ext, char *finame ) if ( getcwd( dirc, FILENAME_MAX ) == NULL ) { return( GLOCK_ERROR_GETCWD ); } - strcpy( name, path ); /* we've got it */ + /* got dirc from getcwd*/ + printf(" DIRC = %s \n",dirc); } else { /* strip direcotry from path */ ss++; /* after this, the filename */ l2 = strlen( ss ); /* length of filename */ @@ -410,14 +422,15 @@ static int split( char *path, char *dirc, char *name, char *ext, char *finame ) strcpy( name, ss ); /* save file name */ strncpy( dirc, path, l1 - l2 ); /* now the directory */ dirc[l1-l2] = 0; /* add zero */ + printf(" DIRC2 = %s \n",dirc); } + /* We add a separator at the end of dirc if not exists */ l1 = strlen( dirc ); /* length of directory */ - /*#ifdef windows - if ( dirc[l1-1] != '\\' ) { dirc[l1] = '\\'; dirc[l1+1] = 0; } -#else - if ( dirc[l1-1] != '/' ) { dirc[l1] = '/'; dirc[l1+1] = 0; } -#endif - */ + if( dirc[l1-1] != DIRSEPARATOR ){ + dirc[l1] = DIRSEPARATOR; + dirc[l1+1] = 0; + printf(" DIRC3 = %s \n",dirc); + } ss = strrchr( name, '.' ); /* find last / */ if (ss >0){ ss++; @@ -427,6 +440,7 @@ static int split( char *path, char *dirc, char *name, char *ext, char *finame ) strncpy( finame, name, l1-l2); finame[l1-l2]= 0; } + return( 0 ); /* we're done */ } @@ -3200,10 +3214,10 @@ void printinghtml(char fileres[], char title[], char datafile[], int firstpass, double jprev2, double mprev2,double anprev2){ int jj1, k1, i1, cpt; - fprintf(fichtm,"
  • href="#firstorder">Result files (first order: no variance)\n \ -
  • href="#secondorder">Result files (second order (variance)\n \ + fprintf(fichtm,""); - fprintf(fichtm,"
    • Result files (first order: no variance)

      \n \ + fprintf(fichtm,"
      • Result files (first order: no variance)

        \n \ - Observed prevalence in each state (during the period defined between %.lf/%.lf/%.lf and %.lf/%.lf/%.lf): %s
        \n ", jprev1, mprev1,anprev1,jprev2, mprev2,anprev2,subdirf2(fileres,"p"),subdirf2(fileres,"p")); fprintf(fichtm,"\ @@ -3254,7 +3268,7 @@ fprintf(fichtm," \n
        • Graphs
        • "); fprintf(fichtm,"\ -\n

        • Result files (second order: variances)

          \n\ +\n
        • Result files (second order: variances)

          \n\ - Parameter file with estimated parameters and covariance matrix: %s
          \n", rfileres,rfileres); fprintf(fichtm," - Variance of one-step probabilities: %s
          \n", @@ -4064,6 +4078,7 @@ int main(int argc, char *argv[]) char ca[32], cb[32], cc[32]; /* FILE *fichtm; *//* Html File */ /* FILE *ficgp;*/ /*Gnuplot File */ + struct stat info; double agedeb, agefin,hf; double ageminpar=1.e20,agemin=1.e20, agemaxpar=-1.e20, agemax=-1.e20; @@ -4164,10 +4179,14 @@ int main(int argc, char *argv[]) printf("pathtot=%s, path=%s, optionfile=%s\n",pathtot,path,optionfile);*/ /* cutv(path,optionfile,pathtot,'\\');*/ + /* Split argv[0], imach program to get pathimach */ + printf("\nargv[0]=%s argv[1]=%s, \n",argv[0],argv[1]); split(argv[0],pathimach,optionfile,optionfilext,optionfilefiname); + printf("\nargv[0]=%s pathimach=%s, \noptionfile=%s \noptionfilext=%s \noptionfilefiname=%s\n",argv[0],pathimach,optionfile,optionfilext,optionfilefiname); /* strcpy(pathimach,argv[0]); */ + /* Split argv[1]=pathtot, parameter file name to get path, optionfile, extension and name */ split(pathtot,path,optionfile,optionfilext,optionfilefiname); - printf("pathimach=%s, pathtot=%s,\npath=%s,\noptionfile=%s \noptionfilext=%s \noptionfilefiname=%s\n",pathimach,pathtot,path,optionfile,optionfilext,optionfilefiname); + printf("\npathtot=%s,\npath=%s,\noptionfile=%s \noptionfilext=%s \noptionfilefiname=%s\n",pathtot,path,optionfile,optionfilext,optionfilefiname); chdir(path); strcpy(command,"mkdir "); strcat(command,optionfilefiname); @@ -5527,13 +5546,22 @@ lsurv=vector(1,AGESUP); /*------ End -----------*/ chdir(path); +#ifndef UNIX strcpy(plotcmd,"\""); +#endif strcat(plotcmd,pathimach); + /*strcat(plotcmd,CHARSEPARATOR);*/ strcat(plotcmd,GNUPLOTPROGRAM); +#ifndef UNIX strcat(plotcmd,"\""); +#endif + if(stat(plotcmd,&info)){ + printf("Error gnuplot program not found: %s\n",plotcmd);fflush(stdout); + } strcat(plotcmd," "); strcat(plotcmd,optionfilegnuplot); printf("Starting graphs with: %s",plotcmd);fflush(stdout); + if((outcmd=system(plotcmd)) != 0){ printf(" Problem with gnuplot\n"); }