]> www.vanbest.org Git - motioneye-debian/commitdiff
comments at the end of lines are now accepted and preserved
authorCalin Crisan <ccrisan@gmail.com>
Tue, 25 Oct 2016 14:29:51 +0000 (17:29 +0300)
committerCalin Crisan <ccrisan@gmail.com>
Tue, 25 Oct 2016 14:29:51 +0000 (17:29 +0300)
motioneye/config.py

index 03e5386bddb17ed5286579c8b24c43b10a76ed79..5915b32b72933516204c2effec7eca1b7431ea6f 100644 (file)
@@ -1567,9 +1567,6 @@ def _conf_to_dict(lines, list_names=[], no_convert=[]):
         if len(line) == 0:  # empty line
             continue
         
-        if line.startswith(';'):  # comment line
-            continue
-        
         match = re.match('^\#\s*(\@\w+)\s*(.*)', line)
         if match:
             name, value = match.groups()[:2]
@@ -1583,8 +1580,15 @@ def _conf_to_dict(lines, list_names=[], no_convert=[]):
                 parts.append('')
 
             (name, value) = parts
+            try:
+                value, v, _ = re.split(r'([^\\])#', value, 1)
+                value += v
+
+            except ValueError:
+                pass
+            
             value = value.strip()
-        
+
         if name not in no_convert:
             value = _value_to_python(value)
         
@@ -1610,15 +1614,12 @@ def _dict_to_conf(lines, data, list_names=[]):
             conf_lines.append(line)
             continue
 
-        if line.startswith(';'):  # simple comment line
-            conf_lines.append(line)
-            continue
-        
         match = re.match('^\#\s*(\@\w+)\s*(.*)', line)
         if match: # @line
             (name, value) = match.groups()[:2]
+            extra_comment = None
         
-        elif line.startswith('#'):  # simple comment line
+        elif line.startswith('#') or line.startswith(';'):  # simple comment line
             conf_lines.append(line)
             continue
         
@@ -1629,7 +1630,14 @@ def _dict_to_conf(lines, data, list_names=[]):
             
             else:
                 (name, value) = parts[0], ''
-        
+            
+            try:
+                value, v, extra_comment = re.split(r'([^\\])#', value, 1)
+                value += v
+            
+            except ValueError:
+                extra_comment = None
+
         if name in processed:
             continue # name already processed
         
@@ -1643,10 +1651,14 @@ def _dict_to_conf(lines, data, list_names=[]):
                         continue
 
                     line = name + ' ' + _python_to_value(v)
+                    if extra_comment:
+                        line += ' #' + extra_comment
                     conf_lines.append(line)
             
             else:
                 line = name + ' ' + value
+                if extra_comment:
+                    line += ' #' + extra_comment
                 conf_lines.append(line)
 
         else:
@@ -1654,6 +1666,8 @@ def _dict_to_conf(lines, data, list_names=[]):
             if new_value is not None:
                 value = _python_to_value(new_value)
                 line = name + ' ' + value
+                if extra_comment:
+                    line += ' #' + extra_comment
                 conf_lines.append(line)
 
         remaining.pop(name, None)