Skip to content

Commit 8e29f86

Browse files
Break also comment-like sequences in string literals.
1 parent 26578a0 commit 8e29f86

2 files changed

Lines changed: 6 additions & 0 deletions

File tree

Lib/test/test_clinic.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4624,6 +4624,7 @@ def test_c_bytes_repr(self):
46244624
self.assertEqual(c_bytes_repr(b'\\'), r'"\\"')
46254625
self.assertEqual(c_bytes_repr(b'??/'), r'"?\?/"')
46264626
self.assertEqual(c_bytes_repr(b'???/'), r'"?\?\?/"')
4627+
self.assertEqual(c_bytes_repr(b'/*****/ /*/ */*'), r'"/\*****\/ /\*\/ *\/\*"')
46274628
self.assertEqual(c_bytes_repr(b'\xa0'), r'"\240"')
46284629
self.assertEqual(c_bytes_repr(b'\xff'), r'"\377"')
46294630

@@ -4638,6 +4639,7 @@ def test_c_str_repr(self):
46384639
self.assertEqual(c_str_repr('\\'), r'"\\"')
46394640
self.assertEqual(c_str_repr('??/'), r'"?\?/"')
46404641
self.assertEqual(c_str_repr('???/'), r'"?\?\?/"')
4642+
self.assertEqual(c_str_repr('/*****/ /*/ */*'), r'"/\*****\/ /\*\/ *\/\*"')
46414643
self.assertEqual(c_str_repr('\xa0'), r'"\u00a0"')
46424644
self.assertEqual(c_str_repr('\xff'), r'"\u00ff"')
46434645
self.assertEqual(c_str_repr('\u20ac'), r'"\u20ac"')

Tools/clinic/libclinic/formatting.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ def _break_trigraphs(s: str) -> str:
5656
if '??' in s:
5757
s = s.replace('??', r'?\?')
5858
s = s.replace(r'\??', r'\?\?')
59+
# Also Argument Clinic does not like comment-like sequences
60+
# in string literals.
61+
s = s.replace(r'/*', r'/\*')
62+
s = s.replace(r'*/', r'*\/')
5963
return s
6064

6165
def c_bytes_repr(data: bytes) -> str:

0 commit comments

Comments
 (0)