From: Calin Crisan Date: Tue, 25 Oct 2016 14:29:51 +0000 (+0300) Subject: comments at the end of lines are now accepted and preserved X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=46a2aace31e43775f907d763b83d79a32b1f7927;p=motioneye-debian comments at the end of lines are now accepted and preserved --- diff --git a/motioneye/config.py b/motioneye/config.py index 03e5386..5915b32 100644 --- a/motioneye/config.py +++ b/motioneye/config.py @@ -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)