improve mupa comment character parsing
[mussa.git] / alg / mussa.cpp
index 9a5935e19947cbd68e28e7c7a3f88b267816030f..2fb639bef34b0d1571d7234dccba008ad84469f3 100644 (file)
@@ -381,6 +381,7 @@ Mussa::load_mupa_file(fs::path para_file_path)
 void
 Mussa::load_mupa_stream(std::istream& para_file, fs::path& file_path_base)
 {
+  bool error_occured = false;
   string file_data_line;
   string param, value; 
   fs::path annot_file;
@@ -454,11 +455,13 @@ Mussa::load_mupa_stream(std::istream& para_file, fs::path& file_path_base)
       did_seq = true;
     }
     //ignore empty lines or that start with '#'
-    else if ((param == "") || (param == "#")) {}
+    else if ( (param.size() == 0) || (param[0] == '#')) 
+    {} // pass
     else
     {
       clog << "Illegal/misplaced mussa parameter in file\n";
       clog << param << "\n";
+      error_occured = true;
     }
 
     if (!did_seq)
@@ -471,6 +474,9 @@ Mussa::load_mupa_stream(std::istream& para_file, fs::path& file_path_base)
     }
   }
 
+  if (error_occured) {
+    throw mussa_load_error("Error parsing MUPA file");
+  }
   soft_thres = threshold;
   // no file was loaded, signal error
   set_dirty(true);