From 9c45a7852a5fa5ca821b319fa8a8db060bc2708a Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Thu, 1 May 2014 20:47:39 +0200 Subject: [PATCH] Disallow all multiline-values --- vdirsyncer/cli.py | 2 +- vdirsyncer/utils.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/vdirsyncer/cli.py b/vdirsyncer/cli.py index 0b24ea2..5204cdc 100644 --- a/vdirsyncer/cli.py +++ b/vdirsyncer/cli.py @@ -30,7 +30,7 @@ def load_config(fname, pair_options=('collections', 'conflict_resolution')): c = RawConfigParser() c.read(fname) - get_options = lambda s: dict(parse_options(c.items(s))) + get_options = lambda s: dict(parse_options(c.items(s), section=s)) pairs = {} storages = {} diff --git a/vdirsyncer/utils.py b/vdirsyncer/utils.py index 19792a2..950cc54 100644 --- a/vdirsyncer/utils.py +++ b/vdirsyncer/utils.py @@ -59,8 +59,13 @@ def split_dict(d, f): return a, b -def parse_options(items): +def parse_options(items, section=None): for key, value in items: + if len(value.splitlines()) > 1: + raise ValueError('Section {!r}, option {!r}: ' + 'No multiline-values allowed.' + .format(section, key)) + if value.lower() in ('yes', 'true', 'on'): value = True elif value.lower() in ('no', 'false', 'off'):