This solves the garbled error message and optionally adds an improved specific error message, which existed in EPANET 2.1 when a network has unconnected nodes. Another similar case in was code found and corrected with the same pattern, but could not be tested.

This commit is contained in:
Alex Sinske
2020-08-05 18:43:17 +02:00
parent 80b30272cb
commit 32732dbdd5
3 changed files with 5 additions and 2 deletions

View File

@@ -44,6 +44,7 @@ DAT(226,"no head curve or power rating for pump")
DAT(227,"invalid head curve for pump") DAT(227,"invalid head curve for pump")
DAT(230,"nonincreasing x-values for curve") DAT(230,"nonincreasing x-values for curve")
DAT(233,"network has unconnected nodes") DAT(233,"network has unconnected nodes")
DAT(2331,"network has an unconnected node with ID: ")
// These errors apply only to API functions // These errors apply only to API functions
DAT(240,"nonexistent source") DAT(240,"nonexistent source")

View File

@@ -146,6 +146,7 @@ int readdata(Project *pr)
char line[MAXLINE + 1], // Line from input data file char line[MAXLINE + 1], // Line from input data file
wline[MAXLINE + 1]; // Working copy of input line wline[MAXLINE + 1]; // Working copy of input line
char errmsg[MAXMSG + 1] = "";
int sect, newsect, // Data sections int sect, newsect, // Data sections
errcode = 0, // Error code errcode = 0, // Error code
inperr, errsum; // Error code & total error count inperr, errsum; // Error code & total error count
@@ -207,7 +208,7 @@ int readdata(Project *pr)
// Check if max. line length exceeded // Check if max. line length exceeded
if (strlen(line) >= MAXLINE) if (strlen(line) >= MAXLINE)
{ {
sprintf(pr->Msg, "%s section: %s", geterrmsg(214, pr->Msg), SectTxt[sect]); sprintf(pr->Msg, "%s section: %s", geterrmsg(214, errmsg), SectTxt[sect]);
writeline(pr, pr->Msg); writeline(pr, pr->Msg);
writeline(pr, line); writeline(pr, line);
errsum++; errsum++;

View File

@@ -816,13 +816,14 @@ int unlinked(Project *pr)
{ {
Network *net = &pr->network; Network *net = &pr->network;
int i, count = 0; int i, count = 0;
char errmsg[MAXMSG + 1] = "";
for (i = 1; i <= net->Njuncs; i++) for (i = 1; i <= net->Njuncs; i++)
{ {
if (pr->network.Adjlist[i] == NULL) if (pr->network.Adjlist[i] == NULL)
{ {
count++; count++;
sprintf(pr->Msg, "Error 233: %s %s", geterrmsg(233, pr->Msg), net->Node[i].ID); sprintf(pr->Msg, "Error 2331: %s %s", geterrmsg(2331, errmsg), net->Node[i].ID);
writeline(pr, pr->Msg); writeline(pr, pr->Msg);
} }
if (count >= 10) break; if (count >= 10) break;