]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #961 in SNORT/snort3 from snort2lua_fnamestack to master
authorMichael Altizer (mialtize) <mialtize@cisco.com>
Fri, 21 Jul 2017 15:37:09 +0000 (11:37 -0400)
committerMichael Altizer (mialtize) <mialtize@cisco.com>
Fri, 21 Jul 2017 15:37:09 +0000 (11:37 -0400)
Squashed commit of the following:

commit 9ad1c364f5631e22d35a19f76defd88305cbeb06
Author: Carter Waxman <cwaxman@cisco.com>
Date:   Tue Jul 18 10:29:02 2017 -0400

    snort2lua: Fixed incorrect file names errors

tools/snort2lua/data/dt_data.cc
tools/snort2lua/data/dt_data.h
tools/snort2lua/helpers/converter.cc

index c50f8bb12e60d063152ea640b8c05d3d3f4077a0..78a105a2ffd77df4bb218547663d2c2fc5efd957 100644 (file)
@@ -233,7 +233,7 @@ std::size_t DataApi::num_errors() const
 std::string DataApi::get_file_line()
 {
     std::string error_string = "Failed to convert ";
-    error_string += current_file + ":";
+    error_string += *current_file + ":";
     error_string += std::to_string(current_line);
     return error_string;
 }
index fe3aa24155bd629d3a944c9466481b78e0567f48..032b4af8e87778cfe239149acf5da4a23875f8fb 100644 (file)
@@ -114,13 +114,12 @@ public:
     void failed_conversion(const std::istringstream& stream, const std::string unkown_option);
 
     void set_current_file(std::string& file)
-    { current_file = file; }
+    { current_file = &file; }
 
     void set_current_line(unsigned line)
     { current_line = line; }
 
 private:
-
     enum class PrintMode
     {
         DEFAULT,
@@ -139,7 +138,7 @@ private:
     Comments* errors;
 
     bool curr_data_bad;  // keep track whether current 'conversion' is already bad
-    std::string current_file;
+    std::string* current_file;
     unsigned current_line;
 
     std::string get_file_line();
index 3cf3e45cb427fcc196d67191fab1df76f129ab17..ed598cc62a732bc81a9b68a8f84f4499323266a8 100644 (file)
@@ -147,8 +147,6 @@ int Converter::parse_include_file(std::string input_file)
 
 int Converter::parse_file(std::string input_file)
 {
-    data_api.set_current_file(input_file);
-
     std::ifstream in;
     std::string orig_text;
 
@@ -168,6 +166,7 @@ int Converter::parse_file(std::string input_file)
         std::getline(in, tmp);
         util::rtrim(tmp);
 
+        data_api.set_current_file(input_file); //Set at each line to handle recursion correctly
         data_api.set_current_line(++line_num);
 
         std::size_t first_non_white_char = tmp.find_first_not_of(' ');