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]
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)
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
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
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:
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)