--- imach/src/imach.c 2014/12/22 15:17:42 1.168
+++ imach/src/imach.c 2014/12/23 11:17:12 1.170
@@ -1,8 +1,18 @@
-/* $Id: imach.c,v 1.168 2014/12/22 15:17:42 brouard Exp $
+/* $Id: imach.c,v 1.170 2014/12/23 11:17:12 brouard Exp $
$State: Exp $
$Log: imach.c,v $
+ Revision 1.170 2014/12/23 11:17:12 brouard
+ Summary: Cleaning some \%% back to %%
+
+ The escape was mandatory for a specific compiler (which one?), but too many warnings.
+
+ Revision 1.169 2014/12/22 23:08:31 brouard
+ Summary: 0.98p
+
+ Outputs some informations on compiler used, OS etc. Testing on different platforms.
+
Revision 1.168 2014/12/22 15:17:42 brouard
- Summary: udate
+ Summary: update
Revision 1.167 2014/12/22 13:50:56 brouard
Summary: Testing uname and compiler version and if compiled 32 or 64
@@ -590,11 +600,11 @@ typedef struct {
#define ODIRSEPARATOR '\\'
#endif
-/* $Id: imach.c,v 1.168 2014/12/22 15:17:42 brouard Exp $ */
+/* $Id: imach.c,v 1.170 2014/12/23 11:17:12 brouard Exp $ */
/* $State: Exp $ */
-char version[]="Imach version 0.98nY, December 2014,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121), Intel Software 2015";
-char fullversion[]="$Revision: 1.168 $ $Date: 2014/12/22 15:17:42 $";
+char version[]="Imach version 0.98p, December 2014,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121), Intel Software 2015";
+char fullversion[]="$Revision: 1.170 $ $Date: 2014/12/23 11:17:12 $";
char strstart[80];
char optionfilext[10], optionfilefiname[FILENAMELENGTH];
int erreur=0, nberr=0, nbwarn=0; /* Error number, number of errors number of warnings */
@@ -1505,7 +1515,7 @@ void powell(double p[], double **xi, int
xi[j][n]=xit[j]; /* and nth direction by the extrapolated */
}
printf("Gaining to use average direction of P0 P%d instead of biggest increase direction %d :\n",n,ibig);
- fprintf(ficlog,"Gaining to use average direction of P0 P%d instead of biggest increase direction :\n",n,ibig);
+ fprintf(ficlog,"Gaining to use average direction of P0 P%d instead of biggest increase direction %d :\n",n,ibig);
#ifdef DEBUG
printf("Direction changed last moved %d in place of ibig=%d, new last is the average:\n",n,ibig);
@@ -1528,22 +1538,22 @@ double **prevalim(double **prlim, int nl
{
/* Computes the prevalence limit in each live state at age x by left multiplying the unit
matrix by transitions matrix until convergence is reached */
-
+
int i, ii,j,k;
double min, max, maxmin, maxmax,sumnew=0.;
/* double **matprod2(); */ /* test */
double **out, cov[NCOVMAX+1], **pmij();
double **newm;
double agefin, delaymax=50 ; /* Max number of years to converge */
-
+
for (ii=1;ii<=nlstate+ndeath;ii++)
for (j=1;j<=nlstate+ndeath;j++){
oldm[ii][j]=(ii==j ? 1.0 : 0.0);
}
-
- cov[1]=1.;
-
- /* Even if hstepm = 1, at least one multiplication by the unit matrix */
+
+ cov[1]=1.;
+
+ /* Even if hstepm = 1, at least one multiplication by the unit matrix */
for(agefin=age-stepm/YEARM; agefin>=age-delaymax; agefin=agefin-stepm/YEARM){
newm=savm;
/* Covariates have to be included here again */
@@ -1580,11 +1590,12 @@ double **prevalim(double **prlim, int nl
}
maxmin=max-min;
maxmax=FMAX(maxmax,maxmin);
- }
+ } /* j loop */
if(maxmax < ftolpl){
return prlim;
}
- }
+ } /* age loop */
+ return prlim; /* should not reach here */
}
/*************** transition probabilities ***************/
@@ -2533,10 +2544,9 @@ void freqsummary(char fileres[], int ia
first=1;
- /* for(k1=1; k1<=j ; k1++){ /* Loop on covariates */
- /* for(i1=1; i1<=ncodemax[k1];i1++){ /* Now it is 2 */
- /* j1++;
-*/
+ /* for(k1=1; k1<=j ; k1++){ */ /* Loop on covariates */
+ /* for(i1=1; i1<=ncodemax[k1];i1++){ */ /* Now it is 2 */
+ /* j1++; */
for (j1 = 1; j1 <= (int) pow(2,cptcoveff); j1++){
/*printf("cptcoveff=%d Tvaraff=%d", cptcoveff,Tvaraff[1]);
scanf("%d", i);*/
@@ -2913,9 +2923,9 @@ void tricode(int *Tvar, int **nbcode, in
{
/**< Uses cptcovn+2*cptcovprod as the number of covariates */
/* Tvar[i]=atoi(stre); find 'n' in Vn and stores in Tvar. If model=V2+V1 Tvar[1]=2 and Tvar[2]=1
- /* Boring subroutine which should only output nbcode[Tvar[j]][k]
+ * Boring subroutine which should only output nbcode[Tvar[j]][k]
* Tvar[5] in V2+V1+V3*age+V2*V4 is 2 (V2)
- /* nbcode[Tvar[j]][1]=
+ * nbcode[Tvar[j]][1]=
*/
int ij=1, k=0, j=0, i=0, maxncov=NCOVMAX;
@@ -3343,6 +3353,9 @@ void varevsij(char optionfilefiname[], d
/* Variance of health expectancies */
/* double **prevalim(double **prlim, int nlstate, double *xp, double age, double **oldm, double ** savm,double ftolpl);*/
/* double **newm;*/
+ /* int movingaverage(double ***probs, double bage,double fage, double ***mobaverage, int mobilav)*/
+
+ int movingaverage();
double **dnewm,**doldm;
double **dnewmp,**doldmp;
int i, j, nhstepm, hstepm, h, nstepm ;
@@ -3620,7 +3633,7 @@ void varevsij(char optionfilefiname[], d
/* fprintf(ficgp,"\n replot \"%s\" u 1:(($3+1.96*$4)*%6.3f) t \"95\%% interval\" w l 2 ",fileresprobmorprev,YEARM/estepm); */
/* fprintf(ficgp,"\n replot \"%s\" u 1:(($3-1.96*$4)*%6.3f) not w l 2 ",fileresprobmorprev,YEARM/estepm); */
fprintf(ficgp,"\n plot \"%s\" u 1:($3) not w l lt 1 ",subdirf(fileresprobmorprev));
- fprintf(ficgp,"\n replot \"%s\" u 1:(($3+1.96*$4)) t \"95\%% interval\" w l lt 2 ",subdirf(fileresprobmorprev));
+ fprintf(ficgp,"\n replot \"%s\" u 1:(($3+1.96*$4)) t \"95%% interval\" w l lt 2 ",subdirf(fileresprobmorprev));
fprintf(ficgp,"\n replot \"%s\" u 1:(($3-1.96*$4)) not w l lt 2 ",subdirf(fileresprobmorprev));
fprintf(fichtm,"\n
File (multiple files are possible if covariates are present): %s\n",subdirf(fileresprobmorprev),subdirf(fileresprobmorprev));
fprintf(fichtm,"\n
Probability is computed over estepm=%d months.
\n", estepm,subdirf3(optionfilefiname,"varmuptjgr",digitp),digit);
@@ -4041,7 +4054,7 @@ To be simple, these graphs help to under
} /* k12 */
} /*l1 */
}/* k1 */
- /* } /* loop covariates */
+ /* } */ /* loop covariates */
}
free_ma3x(varpij,1,nlstate,1,nlstate+ndeath,(int) bage, (int)fage);
free_matrix(mu,1,(nlstate+ndeath)*(nlstate+ndeath),(int) bage, (int)fage);
@@ -4218,21 +4231,21 @@ void printinggnuplot(char fileres[], cha
fprintf(ficgp,"set xlabel \"Age\" \n\
set ylabel \"Probability\" \n\
set ter png small size 320, 240\n\
-plot [%.f:%.f] \"%s\" every :::%d::%d u 1:2 \"\%%lf",ageminpar,fage,subdirf2(fileres,"vpl"),k1-1,k1-1);
+plot [%.f:%.f] \"%s\" every :::%d::%d u 1:2 \"%%lf",ageminpar,fage,subdirf2(fileres,"vpl"),k1-1,k1-1);
for (i=1; i<= nlstate ; i ++) {
- if (i==cpt) fprintf(ficgp," \%%lf (\%%lf)");
- else fprintf(ficgp," \%%*lf (\%%*lf)");
+ if (i==cpt) fprintf(ficgp," %%lf (%%lf)");
+ else fprintf(ficgp," %%*lf (%%*lf)");
}
- fprintf(ficgp,"\" t\"Period (stable) prevalence\" w l lt 0,\"%s\" every :::%d::%d u 1:($2+1.96*$3) \"\%%lf",subdirf2(fileres,"vpl"),k1-1,k1-1);
+ fprintf(ficgp,"\" t\"Period (stable) prevalence\" w l lt 0,\"%s\" every :::%d::%d u 1:($2+1.96*$3) \"%%lf",subdirf2(fileres,"vpl"),k1-1,k1-1);
for (i=1; i<= nlstate ; i ++) {
- if (i==cpt) fprintf(ficgp," \%%lf (\%%lf)");
- else fprintf(ficgp," \%%*lf (\%%*lf)");
+ if (i==cpt) fprintf(ficgp," %%lf (%%lf)");
+ else fprintf(ficgp," %%*lf (%%*lf)");
}
- fprintf(ficgp,"\" t\"95\%% CI\" w l lt 1,\"%s\" every :::%d::%d u 1:($2-1.96*$3) \"\%%lf",subdirf2(fileres,"vpl"),k1-1,k1-1);
+ fprintf(ficgp,"\" t\"95%% CI\" w l lt 1,\"%s\" every :::%d::%d u 1:($2-1.96*$3) \"%%lf",subdirf2(fileres,"vpl"),k1-1,k1-1);
for (i=1; i<= nlstate ; i ++) {
- if (i==cpt) fprintf(ficgp," \%%lf (\%%lf)");
- else fprintf(ficgp," \%%*lf (\%%*lf)");
+ if (i==cpt) fprintf(ficgp," %%lf (%%lf)");
+ else fprintf(ficgp," %%*lf (%%*lf)");
}
fprintf(ficgp,"\" t\"\" w l lt 1,\"%s\" every :::%d::%d u 1:($%d) t\"Observed prevalence \" w l lt 2",subdirf2(fileres,"p"),k1-1,k1-1,2+4*(cpt-1));
}
@@ -4245,23 +4258,23 @@ plot [%.f:%.f] \"%s\" every :::%d::%d u
for (i=1; i<= nlstate+1 ; i ++) {
k=2*i;
- fprintf(ficgp,"\"%s\" every :::%d::%d u 1:2 \"\%%lf",subdirf2(fileres,"t"),k1-1,k1-1);
+ fprintf(ficgp,"\"%s\" every :::%d::%d u 1:2 \"%%lf",subdirf2(fileres,"t"),k1-1,k1-1);
for (j=1; j<= nlstate+1 ; j ++) {
- if (j==i) fprintf(ficgp," \%%lf (\%%lf)");
- else fprintf(ficgp," \%%*lf (\%%*lf)");
+ if (j==i) fprintf(ficgp," %%lf (%%lf)");
+ else fprintf(ficgp," %%*lf (%%*lf)");
}
if (i== 1) fprintf(ficgp,"\" t\"TLE\" w l ,");
else fprintf(ficgp,"\" t\"LE in state (%d)\" w l ,",i-1);
- fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2-$3*2) \"\%%lf",subdirf2(fileres,"t"),k1-1,k1-1);
+ fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2-$3*2) \"%%lf",subdirf2(fileres,"t"),k1-1,k1-1);
for (j=1; j<= nlstate+1 ; j ++) {
- if (j==i) fprintf(ficgp," \%%lf (\%%lf)");
- else fprintf(ficgp," \%%*lf (\%%*lf)");
+ if (j==i) fprintf(ficgp," %%lf (%%lf)");
+ else fprintf(ficgp," %%*lf (%%*lf)");
}
fprintf(ficgp,"\" t\"\" w l lt 0,");
- fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2+$3*2) \"\%%lf",subdirf2(fileres,"t"),k1-1,k1-1);
+ fprintf(ficgp,"\"%s\" every :::%d::%d u 1:($2+$3*2) \"%%lf",subdirf2(fileres,"t"),k1-1,k1-1);
for (j=1; j<= nlstate+1 ; j ++) {
- if (j==i) fprintf(ficgp," \%%lf (\%%lf)");
- else fprintf(ficgp," \%%*lf (\%%*lf)");
+ if (j==i) fprintf(ficgp," %%lf (%%lf)");
+ else fprintf(ficgp," %%*lf (%%*lf)");
}
if (i== (nlstate+1)) fprintf(ficgp,"\" t\"\" w l lt 0");
else fprintf(ficgp,"\" t\"\" w l lt 0,");
@@ -4429,7 +4442,7 @@ int movingaverage(double ***probs, doubl
/************** Forecasting ******************/
-prevforecast(char fileres[], double anproj1, double mproj1, double jproj1, double ageminpar, double agemax, double dateprev1, double dateprev2, int mobilav, double bage, double fage, int firstpass, int lastpass, double anproj2, double p[], int cptcoveff){
+void prevforecast(char fileres[], double anproj1, double mproj1, double jproj1, double ageminpar, double agemax, double dateprev1, double dateprev2, int mobilav, double bage, double fage, int firstpass, int lastpass, double anproj2, double p[], int cptcoveff){
/* proj1, year, month, day of starting projection
agemin, agemax range of age
dateprev1 dateprev2 range of dates during which prevalence is computed
@@ -4552,7 +4565,7 @@ prevforecast(char fileres[], double anpr
}
/************** Forecasting *****not tested NB*************/
-populforecast(char fileres[], double anpyram,double mpyram,double jpyram,double ageminpar, double agemax,double dateprev1, double dateprev2, int mobilav, double agedeb, double fage, int popforecast, char popfile[], double anpyram1,double p[], int i2){
+void populforecast(char fileres[], double anpyram,double mpyram,double jpyram,double ageminpar, double agemax,double dateprev1, double dateprev2, int mobilav, double agedeb, double fage, int popforecast, char popfile[], double anpyram1,double p[], int i2){
int cpt, stepsize, hstepm, nhstepm, j,k,c, cptcod, i,h;
int *popage;
@@ -5028,9 +5041,9 @@ int readdata(char datafile[], int firsto
strcpy(line,stra);
cutv(stra, strb,line,' ');
- if(iout=sscanf(strb,"%d/%d",&month, &year) != 0){
+ if( (iout=sscanf(strb,"%d/%d",&month, &year)) != 0){
}
- else if(iout=sscanf(strb,"%s.",dummy) != 0){
+ else if( (iout=sscanf(strb,"%s.",dummy)) != 0){
month=99;
year=9999;
}else{
@@ -5044,9 +5057,9 @@ int readdata(char datafile[], int firsto
} /* ENd Waves */
cutv(stra, strb,line,' ');
- if(iout=sscanf(strb,"%d/%d",&month, &year) != 0){
+ if( (iout=sscanf(strb,"%d/%d",&month, &year)) != 0){
}
- else if(iout=sscanf(strb,"%s.",dummy) != 0){
+ else if( (iout=sscanf(strb,"%s.",dummy)) != 0){
month=99;
year=9999;
}else{
@@ -5059,9 +5072,9 @@ int readdata(char datafile[], int firsto
strcpy(line,stra);
cutv(stra, strb,line,' ');
- if(iout=sscanf(strb,"%d/%d",&month, &year) != 0){
+ if( (iout=sscanf(strb,"%d/%d",&month, &year)) != 0){
}
- else if(iout=sscanf(strb,"%s.", dummy) != 0){
+ else if( (iout=sscanf(strb,"%s.", dummy)) != 0){
month=99;
year=9999;
}else{
@@ -5159,7 +5172,7 @@ void removespace(char *str) {
do
while (*p2 == ' ')
p2++;
- while (*p1++ = *p2++);
+ while (*p1++ == *p2++);
}
int decodemodel ( char model[], int lastobs) /**< This routine decode the model and returns:
@@ -5189,7 +5202,7 @@ int decodemodel ( char model[], int last
cptcovs=j+1-j1; /**< Number of simple covariates V1+V2*age+V3 +V3*V4=> V1 + V3 =2 */
cptcovt= j+1; /* Number of total covariates in the model V1 + V2*age+ V3 + V3*V4=> 4*/
/* including age products which are counted in cptcovage.
- /* but the covariates which are products must be treated separately: ncovn=4- 2=2 (V1+V3). */
+ * but the covariates which are products must be treated separately: ncovn=4- 2=2 (V1+V3). */
cptcovprod=j1; /**< Number of products V1*V2 +v3*age = 2 */
cptcovprodnoage=0; /**< Number of covariate products without age: V3*V4 =1 */
strcpy(modelsav,model);
@@ -5331,7 +5344,7 @@ int decodemodel ( char model[], int last
return (1);
}
-calandcheckages(int imx, int maxwav, double *agemin, double *agemax, int *nberr, int *nbwarn )
+int calandcheckages(int imx, int maxwav, double *agemin, double *agemax, int *nberr, int *nbwarn )
{
int i, m;
@@ -5342,13 +5355,13 @@ calandcheckages(int imx, int maxwav, dou
s[m][i]=-1;
}
if((int)moisdc[i]==99 && (int)andc[i]==9999 && s[m][i]>nlstate){
- *nberr++;
- printf("Error! Date of death (month %2d and year %4d) of individual %ld on line %d was unknown, you must set an arbitrary year of death or he/she is skipped and results are biased\n",(int)moisdc[i],(int)andc[i],num[i],i);
- fprintf(ficlog,"Error! Date of death (month %2d and year %4d) of individual %ld on line %d was unknown, you must set an arbitrary year of death or he/she is skipped and results are biased\n",(int)moisdc[i],(int)andc[i],num[i],i);
+ *nberr = *nberr + 1;
+ printf("Error! Date of death (month %2d and year %4d) of individual %ld on line %d was unknown, you must set an arbitrary year of death or he/she is skipped and results are biased (%d)\n",(int)moisdc[i],(int)andc[i],num[i],i, *nberr);
+ fprintf(ficlog,"Error! Date of death (month %2d and year %4d) of individual %ld on line %d was unknown, you must set an arbitrary year of death or he/she is skipped and results are biased (%d)\n",(int)moisdc[i],(int)andc[i],num[i],i, *nberr);
s[m][i]=-1;
}
if((int)moisdc[i]==99 && (int)andc[i]!=9999 && s[m][i]>nlstate){
- *nberr++;
+ (*nberr)++;
printf("Error! Month of death of individual %ld on line %d was unknown %2d, you should set it otherwise the information on the death is skipped and results are biased.\n",num[i],i,(int)moisdc[i]);
fprintf(ficlog,"Error! Month of death of individual %ld on line %d was unknown %f, you should set it otherwise the information on the death is skipped and results are biased.\n",num[i],i,moisdc[i]);
s[m][i]=-1; /* We prefer to skip it (and to skip it in version 0.8a1 too */
@@ -5361,11 +5374,11 @@ calandcheckages(int imx, int maxwav, dou
for(m=firstpass; (m<= lastpass); m++){
if(s[m][i] >0 || s[m][i]==-2 || s[m][i]==-4 || s[m][i]==-5){
if (s[m][i] >= nlstate+1) {
- if(agedc[i]>0)
- if((int)moisdc[i]!=99 && (int)andc[i]!=9999)
+ if(agedc[i]>0){
+ if((int)moisdc[i]!=99 && (int)andc[i]!=9999){
agev[m][i]=agedc[i];
/*if(moisdc[i]==99 && andc[i]==9999) s[m][i]=-1;*/
- else {
+ }else {
if ((int)andc[i]!=9999){
nbwarn++;
printf("Warning negative age at death: %ld line:%d\n",num[i],i);
@@ -5373,6 +5386,7 @@ calandcheckages(int imx, int maxwav, dou
agev[m][i]=-1;
}
}
+ } /* agedc > 0 */
}
else if(s[m][i] !=9){ /* Standard case, age in fractional
years but with the precision of a month */
@@ -5403,7 +5417,7 @@ calandcheckages(int imx, int maxwav, dou
for (i=1; i<=imx; i++) {
for(m=firstpass; (m<=lastpass); m++){
if (s[m][i] > (nlstate+ndeath)) {
- *nberr++;
+ (*nberr)++;
printf("Error: on wave %d of individual %d status %d > (nlstate+ndeath)=(%d+%d)=%d\n",m,i,s[m][i],nlstate, ndeath, nlstate+ndeath);
fprintf(ficlog,"Error: on wave %d of individual %d status %d > (nlstate+ndeath)=(%d+%d)=%d\n",m,i,s[m][i],nlstate, ndeath, nlstate+ndeath);
return 1;
@@ -5428,21 +5442,38 @@ calandcheckages(int imx, int maxwav, dou
return (1);
}
-syscompilerinfo()
+void syscompilerinfo()
{
/* #include "syscompilerinfo.h"*/
-#include
-#if defined(__GNUC__)
-# if defined(__GNUC_PATCHLEVEL__)
-# define __GNUC_VERSION__ (__GNUC__ * 10000 \
- + __GNUC_MINOR__ * 100 \
- + __GNUC_PATCHLEVEL__)
-# else
-# define __GNUC_VERSION__ (__GNUC__ * 10000 \
- + __GNUC_MINOR__ * 100)
-# endif
-#endif
+ /* #include */ /* Only on gnu */
+ printf("Compiled with:");fprintf(ficlog,"Compiled with:");
+#if defined(__clang__)
+ printf(" Clang/LLVM");fprintf(ficlog," Clang/LLVM"); /* Clang/LLVM. ---------------------------------------------- */
+#endif
+#if defined(__ICC) || defined(__INTEL_COMPILER)
+ printf(" Intel ICC/ICPC");fprintf(ficlog," Intel ICC/ICPC");/* Intel ICC/ICPC. ------------------------------------------ */
+#endif
+#if defined(__GNUC__) || defined(__GNUG__)
+ printf(" GNU GCC/G++");fprintf(ficlog," GNU GCC/G++");/* GNU GCC/G++. --------------------------------------------- */
+#endif
+#if defined(__HP_cc) || defined(__HP_aCC)
+ printf(" Hewlett-Packard C/aC++");fprintf(fcilog," Hewlett-Packard C/aC++"); /* Hewlett-Packard C/aC++. ---------------------------------- */
+#endif
+#if defined(__IBMC__) || defined(__IBMCPP__)
+ printf(" IBM XL C/C++"); fprintf(ficlog," IBM XL C/C++");/* IBM XL C/C++. -------------------------------------------- */
+#endif
+#if defined(_MSC_VER)
+ printf(" Microsoft Visual Studio");fprintf(ficlog," Microsoft Visual Studio");/* Microsoft Visual Studio. --------------------------------- */
+#endif
+#if defined(__PGI)
+ printf(" Portland Group PGCC/PGCPP");fprintf(ficlog," Portland Group PGCC/PGCPP");/* Portland Group PGCC/PGCPP. ------------------------------- */
+#endif
+#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+ printf(" Oracle Solaris Studio");fprintf(ficlog," Oracle Solaris Studio\n");/* Oracle Solaris Studio. ----------------------------------- */
+#endif
+ printf(". ");fprintf(ficlog,". ");
+
// http://stackoverflow.com/questions/4605842/how-to-identify-platform-compiler-from-preprocessor-macros
#ifdef _WIN32 // note the underscore: without it, it's not msdn official!
// Windows (x64 and x86)
@@ -5465,26 +5496,39 @@ syscompilerinfo()
/* _DEBUG // Defined when you compile with /LDd, /MDd, and /MTd. */
#include
#if UINTPTR_MAX == 0xffffffff
- printf("32-bit \n"); /* 32-bit */
+ printf(" 32-bit."); /* 32-bit */
#elif UINTPTR_MAX == 0xffffffffffffffff
- printf("64-bit \n");/* 64-bit */
+ printf(" 64-bit.");/* 64-bit */
#else
- printf("wtf-bit \n"); /* wtf */
+ printf(" wtf-bit."); /* wtf */
#endif
struct utsname sysInfo;
if (uname(&sysInfo) != -1) {
- puts(sysInfo.sysname);
- puts(sysInfo.nodename);
- puts(sysInfo.release);
- puts(sysInfo.version);
- puts(sysInfo.machine);
+ printf(" %s %s %s %s %s\n",sysInfo.sysname, sysInfo.nodename, sysInfo.release, sysInfo.version, sysInfo.machine);
+ fprintf(ficlog," %s %s %s %s %s\n ",sysInfo.sysname, sysInfo.nodename, sysInfo.release, sysInfo.version, sysInfo.machine);
}
else
perror("uname() error");
- printf("GNU C version %d\n", __GNUC_VERSION__);
- printf("GNU libc version: %s\n", gnu_get_libc_version());
+#if defined(__GNUC__)
+# if defined(__GNUC_PATCHLEVEL__)
+# define __GNUC_VERSION__ (__GNUC__ * 10000 \
+ + __GNUC_MINOR__ * 100 \
+ + __GNUC_PATCHLEVEL__)
+# else
+# define __GNUC_VERSION__ (__GNUC__ * 10000 \
+ + __GNUC_MINOR__ * 100)
+# endif
+ printf("GNU C version %d.\n", __GNUC_VERSION__);
+ fprintf(ficlog, "GNU C version %d.\n", __GNUC_VERSION__);
+#endif
+#if defined(_MSC_VER)
+ printf("Visual C++ compiler: %s \n;", _MSC_FULL_VER);
+ fprintf(ficlog, "Visual C++ compiler: %s \n;", _MSC_FULL_VER);
+#endif
+
+ /* printf("GNU libc version: %s\n", gnu_get_libc_version()); */
}
@@ -5637,7 +5681,7 @@ int main(int argc, char *argv[])
strcpy(command,"mkdir ");
strcat(command,optionfilefiname);
if((outcmd=system(command)) != 0){
- printf("Problem creating directory or it already exists %s%s, err=%d\n",path,optionfilefiname,outcmd);
+ printf("Directory already exists (or can't create it) %s%s, err=%d\n",path,optionfilefiname,outcmd);
/* fprintf(ficlog,"Problem creating directory %s%s\n",path,optionfilefiname); */
/* fclose(ficlog); */
/* exit(1); */