bpo-30532: Fix whitespace folding in certain cases (#2591) · python/cpython@c60d2f5 (original) (raw)
4 files changed
lines changed
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -341,9 +341,7 @@ def _fold(self, folded): | ||
341 | 341 | # avoid infinite recursion. |
342 | 342 | ws = part.pop_leading_fws() |
343 | 343 | if ws is not None: |
344 | -# Peel off the leading whitespace and make it sticky, to | |
345 | -# avoid infinite recursion. | |
346 | -folded.stickyspace = str(part.pop(0)) | |
344 | +folded.stickyspace = str(ws) | |
347 | 345 | if folded.append_if_fits(part): |
348 | 346 | continue |
349 | 347 | if part.has_fws: |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -2711,5 +2711,17 @@ def test_whitespace_splitting(self): | ||
2711 | 2711 | self._test(parser.get_unstructured('xxx ' + 'y'*77), |
2712 | 2712 | 'xxx \n ' + 'y'*77 + '\n') |
2713 | 2713 | |
2714 | +def test_long_filename_attachment(self): | |
2715 | +folded = self.policy.fold('Content-Disposition', 'attachment; filename="TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TES.txt"') | |
2716 | +self.assertEqual( | |
2717 | +'Content-Disposition: attachment;\n filename="TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TES.txt"\n', | |
2718 | +folded | |
2719 | + ) | |
2720 | +folded = self.policy.fold('Content-Disposition', 'attachment; filename="TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_T.txt"') | |
2721 | +self.assertEqual( | |
2722 | +'Content-Disposition: attachment;\n filename="TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_TEST_T.txt"\n', | |
2723 | +folded | |
2724 | + ) | |
2725 | + | |
2714 | 2726 | if __name__ == '__main__': |
2715 | 2727 | unittest.main() |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -624,6 +624,7 @@ Wouter van Heyst | ||
624 | 624 | Kelsey Hightower |
625 | 625 | Jason Hildebrand |
626 | 626 | Aaron Hill |
627 | +Joel Hillacre | |
627 | 628 | Richie Hindle |
628 | 629 | Konrad Hinsen |
629 | 630 | David Hobley |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
1 | +Fix email header value parser dropping folding white space in certain cases. |