Fix Backslash Not Being Interpreted Correctly
authorGeorgios Atheridis <georgios@atheridis.org>
Sat, 18 Mar 2023 23:27:42 +0000 (23:27 +0000)
committerGeorgios Atheridis <georgios@atheridis.org>
Sat, 18 Mar 2023 23:27:42 +0000 (23:27 +0000)
Backslashes will now be outputed as expected.

sigma

diff --git a/sigma b/sigma
index f1b29d4fd53ac0b104b1289218b0754546694455..ae4760a60199277790ad13ebce2188a6a8924eb4 100755 (executable)
--- a/sigma
+++ b/sigma
@@ -206,7 +206,7 @@ def interpret(file_value: str, data: dict, namespace: tuple) -> str:
                     _value = md_to_html(f.read())
                 else:
                     _value = f.read()
-            file_value = regex_execute.sub(_value, file_value, 1)
+            file_value = regex_execute.sub(_value.replace("\\", "\\\\"), file_value, 1)
         while variable := regex_variable.search(file_value):
             varspace = variable.group(1).split(".")
             try:
@@ -216,7 +216,9 @@ def interpret(file_value: str, data: dict, namespace: tuple) -> str:
             else:
                 varspace = namespace + tuple(varspace)
             file_value = regex_variable.sub(
-                str(get_value(data, varspace[:-1], varspace[-1])), file_value, 1
+                str(get_value(data, varspace[:-1], varspace[-1])).replace("\\", "\\\\"),
+                file_value,
+                1,
             )
 
     return file_value
@@ -311,7 +313,6 @@ def interpret_builds(build_data: list[tuple[tuple, str]], data: dict):
             out_file.write(get_value(data, path, "_value"))
 
 
-
 def main(args):
     # Load toml file
     data = tomllib.load(args.data)