From 03ea8372112de025c496f9082a861e0aad1c4fed Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Thu, 14 Aug 2014 12:00:10 +0200 Subject: [PATCH] utils.rfc6266: Do parsing of ext-values earlier. --- qutebrowser/utils/rfc6266.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/qutebrowser/utils/rfc6266.py b/qutebrowser/utils/rfc6266.py index a839f3fce..2479b5fe7 100644 --- a/qutebrowser/utils/rfc6266.py +++ b/qutebrowser/utils/rfc6266.py @@ -33,8 +33,11 @@ class ContentDisposition: if assocs is None: self.assocs = {} else: - # XXX Check that parameters aren't repeated - self.assocs = assocs + self.assocs = dict(assocs) # So we can change values + if 'filename*' in self.assocs: + param = self.assocs['filename*'] + assert isinstance(param, ExtDispositionParm) + self.assocs['filename*'] = parse_ext_value(param.value).string @property def filename_unsafe(self): @@ -55,9 +58,7 @@ class ContentDisposition: """ if 'filename*' in self.assocs: - param = self.assocs['filename*'] - assert isinstance(param, ExtDispositionParm) - return parse_ext_value(param.value).string + return self.assocs['filename*'] elif 'filename' in self.assocs: # XXX Reject non-ascii (parsed via qdtext) here? return self.assocs['filename']