diff --git a/inputs.cc b/inputs.cc index 6d207dc..45bd0c5 100644 --- a/inputs.cc +++ b/inputs.cc @@ -1008,9 +1008,10 @@ int LoadPAT(char *filename) LR.antenna_pattern[x][y] = az * elevation; } } + return 0; } -void LoadSignalColors(struct site xmtr) +int LoadSignalColors(struct site xmtr) { int x, y, ok, val[4]; char filename[255], string[80], *pointer = NULL, *s = NULL; @@ -1095,14 +1096,13 @@ void LoadSignalColors(struct site xmtr) region.levels = 13; - fd = fopen(filename, "r"); - - if (fd == NULL && xmtr.filename[0] == '\0') - /* Don't save if we don't have an output file */ - return; + /* Don't save if we don't have an output file */ + if ( xmtr.filename[0] == '\0' && (fd = fopen(filename, "r")) == NULL ) + return 0; if (fd == NULL) { - fd = fopen(filename, "w"); + if( (fd = fopen(filename, "w")) == NULL ) + return errno; for (x = 0; x < region.levels; x++) fprintf(fd, "%3d: %3d, %3d, %3d\n", region.level[x], @@ -1147,6 +1147,7 @@ void LoadSignalColors(struct site xmtr) fclose(fd); region.levels = x; } + return 0; } void LoadLossColors(struct site xmtr) diff --git a/inputs.hh b/inputs.hh index e634737..3f66472 100644 --- a/inputs.hh +++ b/inputs.hh @@ -6,7 +6,7 @@ int LoadSDF_SDF(char *name, int winfiles); char LoadSDF(char *name, int winfiles); int LoadPAT(char *filename); -void LoadSignalColors(struct site xmtr); +int LoadSignalColors(struct site xmtr); void LoadLossColors(struct site xmtr); void LoadDBMColors(struct site xmtr); void LoadTopoData(int max_lon, int min_lon, int max_lat, int min_lat); diff --git a/main.cc b/main.cc index 74c4a6f..dfc62a8 100644 --- a/main.cc +++ b/main.cc @@ -1846,8 +1846,8 @@ int main(int argc, char *argv[]) DoRxdPwr((to_stdout == true ? NULL : mapfile), geo, kml, ngs, tx_site, txsites); else - DoSigStr(mapfile, geo, kml, ngs, tx_site, - txsites); + if( (result = DoSigStr(mapfile, geo, kml, ngs, tx_site,txsites)) != 0 ) + return result; } if(lidar){ east=eastoffset; diff --git a/outputs.cc b/outputs.cc index ce2ba75..7f59063 100644 --- a/outputs.cc +++ b/outputs.cc @@ -256,7 +256,7 @@ void DoPathLoss(char *filename, unsigned char geo, unsigned char kml, } -void DoSigStr(char *filename, unsigned char geo, unsigned char kml, +int DoSigStr(char *filename, unsigned char geo, unsigned char kml, unsigned char ngs, struct site *xmtr, unsigned char txsites) { /* This function generates a topographic map in Portable Pix Map @@ -284,7 +284,10 @@ void DoSigStr(char *filename, unsigned char geo, unsigned char kml, 255.0 / pow((double)(max_elevation - min_elevation), one_over_gamma); - LoadSignalColors(xmtr[0]); + if( (success = LoadSignalColors(xmtr[0])) != 0 ){ + fprintf(stderr,"Error loading signal colors\n"); + return success; + } if( filename != NULL ) { diff --git a/outputs.hh b/outputs.hh index ac334e4..2506292 100644 --- a/outputs.hh +++ b/outputs.hh @@ -3,7 +3,7 @@ void DoPathLoss(char *filename, unsigned char geo, unsigned char kml, unsigned char ngs, struct site *xmtr, unsigned char txsites); -void DoSigStr(char *filename, unsigned char geo, unsigned char kml, +int DoSigStr(char *filename, unsigned char geo, unsigned char kml, unsigned char ngs, struct site *xmtr, unsigned char txsites); void DoRxdPwr(char *filename, unsigned char geo, unsigned char kml, unsigned char ngs, struct site *xmtr, unsigned char txsites);