Author: georg.brandl Date: Thu Jul 29 13:56:20 2010 New Revision: 83219 Log: Fix for r83202: improve the handling of empty lines. Modified: python/branches/py3k/Lib/configparser.py Modified: python/branches/py3k/Lib/configparser.py ============================================================================== --- python/branches/py3k/Lib/configparser.py (original) +++ python/branches/py3k/Lib/configparser.py Thu Jul 29 13:56:20 2010 @@ -558,7 +558,7 @@ indent_level = 0 e = None # None, or an exception for lineno, line in enumerate(fp, start=1): - # strip prefix-only comments + # strip full line comments comment_start = None for prefix in self._startonly_comment_prefixes: if line.strip().startswith(prefix): @@ -572,11 +572,14 @@ break value = line[:comment_start].strip() if not value: - if self._empty_lines_in_values and comment_start is None: + if self._empty_lines_in_values: # add empty line to the value, but only if there was no # comment on the line - if cursect is not None and optname: - cursect[optname].append('\n') + if (comment_start is None and + cursect is not None and + optname and + cursect[optname] is not None): + cursect[optname].append('') # newlines added at join else: # empty line marks end of value indent_level = sys.maxsize @@ -643,9 +646,7 @@ for options in all_sections: for name, val in options.items(): if isinstance(val, list): - if val[-1] == '\n': - val = val[:-1] - options[name] = '\n'.join(val) + options[name] = '\n'.join(val).rstrip() def _handle_error(self, exc, fpname, lineno, line): if not exc:
participants (1)
-
georg.brandl