resolved no_args bug

This commit is contained in:
mauriziocingi
2015-11-23 11:16:11 +01:00
parent ea08fb9da1
commit 08937fc838

View File

@@ -2,12 +2,14 @@
#include <string.h>
#include "epanet2.h"
#define MAXMSG 79 /* Max. # characters in message text */
#define MAXWARNCODE 99
/* text copied here, no more need of include "text.h" */
#define FMT01 "\n... EPANET Version %d.%d.%d\n"
#define FMT01 "\nEPANET Version %d.%d.%d\n"
#define FMT03 "\n Correct syntax is:\n epanet <input file> <output file>\n"
#define FMT09 "\n... EPANET completed.\n"
#define FMT10 "\n... EPANET completed. There are warnings."
#define FMT11 "\n... EPANET completed. There are errors."
#define FMT09 "\nEPANET completed.\n"
#define FMT10 "\nEPANET completed. There are warnings."
#define FMT11 "\nEPANET completed. There are errors."
void writeConsole(char *s);
@@ -38,42 +40,50 @@ int main(int argc, char *argv[])
{
char *f1,*f2,*f3;
char blank[] = "";
char errmsg[40];
char errmsg[MAXMSG+1]="";
int errcode;
int version;
char s[25];
int major;
int minor;
int patch;
/* get version from DLL and trasform in Major.Minor.Patch format
instead of hardcoded version */
ENgetversion(&version);
major= version/10000;
minor= (version%10000)/100;
patch= version%100;
sprintf(s,FMT01, major , minor, patch);
writeConsole(s);
/* Check for proper number of command line arguments */
if (argc < 2) {
writeConsole(FMT03);
return(1);
}
else {
/* Call the main control function */
/* set inputfile name */
f1 = argv[1];
if (argc > 2) {
/* set rptfile name */
f2 = argv[2];
}
else {
/* use stdout for rptfile */
f2 = blank;
}
if (argc > 3) {
/* set binary output file name */
f3 = argv[3];
}
else {
/* NO binary output*/
f3 = blank;
}
}
/* get version from DLL and trasform in Major.Minor.Patch format
instead of hardcoded version */
ENgetversion(&version);
int major= version/10000;
int minor= (version%10000)/100;
int patch= version%100;
sprintf(s,FMT01, major , minor, patch);
writeConsole(s);
/* Call the main control function */
if (strlen(f2)> 0) {
/* use stdout for progress messages */
errcode = ENepanet(f1,f2,f3,writeConsole);
@@ -84,18 +94,27 @@ int main(int argc, char *argv[])
}
/* Error/Warning check */
if (errcode == 0) writeConsole(FMT09);
else {
if (errcode > 100) {
writeConsole(FMT11);
}
else {
writeConsole(FMT10);
}
ENgeterror(errcode, errmsg, 40);
writeConsole(errmsg);
}
if (errcode == 0) {
/* no errors */
writeConsole(FMT09);
return(0);
}
else {
ENgeterror(errcode, errmsg, MAXMSG);
writeConsole(errmsg);
if (errcode > MAXWARNCODE) {
/* error */
writeConsole(FMT11);
return(errcode);
}
else {
/* warning */
writeConsole(FMT10);
return(0);
}
}
} /* End of main */