diff --git a/src/utils/rinex2assist/main.cc b/src/utils/rinex2assist/main.cc index c37c50143..ad6dc2eb5 100644 --- a/src/utils/rinex2assist/main.cc +++ b/src/utils/rinex2assist/main.cc @@ -45,6 +45,7 @@ #include #include #include +#include #include @@ -81,6 +82,11 @@ int main(int argc, char** argv) if ((rinex_filename.substr(found + 1, found + 3).compare("gz") == 0)) { std::ifstream file(rinex_filename, std::ios_base::in | std::ios_base::binary); + if (file.fail()) + { + std::cerr << "Could not open file " << rinex_filename << std::endl; + return 1; + } boost::iostreams::filtering_streambuf in; try { @@ -97,6 +103,24 @@ int main(int argc, char** argv) boost::iostreams::copy(in, output_file); rinex_filename = rinex_filename_unzipped; } + if ((rinex_filename.substr(found + 1, found + 2).compare("Z") == 0)) + { + std::ifstream file(rinex_filename, std::ios_base::in | std::ios_base::binary); + if (file.fail()) + { + std::cerr << "Could not open file" << rinex_filename << std::endl; + return 1; + } + file.close(); + // option k is not always available, so we save a copy of the original file + std::string argum = std::string("/bin/cp " + rinex_filename + " " + rinex_filename + ".aux"); + std::system(argum.c_str()); + std::string argum2 = std::string("/usr/bin/uncompress -f " + rinex_filename); + std::system(argum2.c_str()); + std::string argum3 = std::string("/bin/mv " + rinex_filename + +".aux" + " " + rinex_filename); + std::system(argum3.c_str()); + rinex_filename = rinex_filename.substr(0, found); + } } std::map eph_map;