summaryrefslogtreecommitdiff
path: root/paste/util/multidict.py
diff options
context:
space:
mode:
Diffstat (limited to 'paste/util/multidict.py')
-rw-r--r--paste/util/multidict.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/paste/util/multidict.py b/paste/util/multidict.py
index 0b63ebb..0a304d3 100644
--- a/paste/util/multidict.py
+++ b/paste/util/multidict.py
@@ -265,11 +265,13 @@ class UnicodeMultiDict(DictMixin):
"""
if isinstance(value, cgi.FieldStorage):
# decode FieldStorage's field name and filename
- value = copy.copy(value)
- if self.decode_keys and isinstance(value.name, six.binary_type):
- value.name = value.name.decode(self.encoding, self.errors)
- if six.PY2:
- value.filename = value.filename.decode(self.encoding, self.errors)
+ decode_name = self.decode_keys and isinstance(value.name, six.binary_type)
+ if six.PY2 or decode_name:
+ value = copy.copy(value)
+ if decode_name:
+ value.name = value.name.decode(self.encoding, self.errors)
+ if six.PY2:
+ value.filename = value.filename.decode(self.encoding, self.errors)
else:
try:
value = value.decode(self.encoding, self.errors)