resolved no_args bug
This commit is contained in:
75
run/main.c
75
run/main.c
@@ -2,12 +2,14 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "epanet2.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" */
|
/* 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 FMT03 "\n Correct syntax is:\n epanet <input file> <output file>\n"
|
||||||
#define FMT09 "\n... EPANET completed.\n"
|
#define FMT09 "\nEPANET completed.\n"
|
||||||
#define FMT10 "\n... EPANET completed. There are warnings."
|
#define FMT10 "\nEPANET completed. There are warnings."
|
||||||
#define FMT11 "\n... EPANET completed. There are errors."
|
#define FMT11 "\nEPANET completed. There are errors."
|
||||||
|
|
||||||
|
|
||||||
void writeConsole(char *s);
|
void writeConsole(char *s);
|
||||||
@@ -38,42 +40,50 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
char *f1,*f2,*f3;
|
char *f1,*f2,*f3;
|
||||||
char blank[] = "";
|
char blank[] = "";
|
||||||
char errmsg[40];
|
char errmsg[MAXMSG+1]="";
|
||||||
int errcode;
|
int errcode;
|
||||||
int version;
|
int version;
|
||||||
char s[25];
|
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 */
|
/* Check for proper number of command line arguments */
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
writeConsole(FMT03);
|
writeConsole(FMT03);
|
||||||
|
return(1);
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
/* Call the main control function */
|
/* set inputfile name */
|
||||||
f1 = argv[1];
|
f1 = argv[1];
|
||||||
if (argc > 2) {
|
if (argc > 2) {
|
||||||
|
/* set rptfile name */
|
||||||
f2 = argv[2];
|
f2 = argv[2];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
/* use stdout for rptfile */
|
||||||
f2 = blank;
|
f2 = blank;
|
||||||
}
|
}
|
||||||
if (argc > 3) {
|
if (argc > 3) {
|
||||||
|
/* set binary output file name */
|
||||||
f3 = argv[3];
|
f3 = argv[3];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
/* NO binary output*/
|
||||||
f3 = blank;
|
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) {
|
if (strlen(f2)> 0) {
|
||||||
/* use stdout for progress messages */
|
/* use stdout for progress messages */
|
||||||
errcode = ENepanet(f1,f2,f3,writeConsole);
|
errcode = ENepanet(f1,f2,f3,writeConsole);
|
||||||
@@ -84,18 +94,27 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Error/Warning check */
|
/* Error/Warning check */
|
||||||
if (errcode == 0) writeConsole(FMT09);
|
if (errcode == 0) {
|
||||||
else {
|
/* no errors */
|
||||||
if (errcode > 100) {
|
writeConsole(FMT09);
|
||||||
writeConsole(FMT11);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
writeConsole(FMT10);
|
|
||||||
}
|
|
||||||
ENgeterror(errcode, errmsg, 40);
|
|
||||||
writeConsole(errmsg);
|
|
||||||
}
|
|
||||||
return(0);
|
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 */
|
} /* End of main */
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user