byteify-strings: handle multi-line strings in _ensuresysstr
The current implementation did not handle calls like
`repo.ui.log("first line"
"other line")`
correctly.
--- a/contrib/byteify-strings.py Wed May 22 16:22:06 2019 -0700
+++ b/contrib/byteify-strings.py Fri Aug 02 09:44:11 2019 +0200
@@ -78,9 +78,19 @@
already been done.
"""
- st = tokens[j]
- if st.type == token.STRING and st.string.startswith(("'", '"')):
- sysstrtokens.add(st)
+ k = j
+ currtoken = tokens[k]
+ while currtoken.type in (token.STRING, token.NEWLINE, tokenize.NL):
+ k += 1
+ if (
+ currtoken.type == token.STRING
+ and currtoken.string.startswith(("'", '"'))
+ ):
+ sysstrtokens.add(currtoken)
+ try:
+ currtoken = tokens[k]
+ except IndexError:
+ break
coldelta = 0 # column increment for new opening parens
coloffset = -1 # column offset for the current line (-1: TBD)