summaryrefslogtreecommitdiff
path: root/tegra_pmx_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'tegra_pmx_utils.py')
-rw-r--r--tegra_pmx_utils.py26
1 files changed, 18 insertions, 8 deletions
diff --git a/tegra_pmx_utils.py b/tegra_pmx_utils.py
index ece3c16..2551282 100644
--- a/tegra_pmx_utils.py
+++ b/tegra_pmx_utils.py
@@ -74,21 +74,31 @@ def gen_wrapped_c_macro_header(macro, params):
s += '\n'
return s
-def append_aligned_tabs_indent_with_tabs(s):
+def len_evaluating_tabs(s):
+ l = 0
+ for c in s:
+ if c == '\t':
+ l = (l + 8) & ~7
+ else:
+ l += 1
+ return l
+
+def append_aligned_tabs_indent_with_tabs(s, min_slashpos):
lines = s.split('\n')
if lines[-1].strip() == '':
del lines[-1]
+ # This is intended to translate leading spaces to TABs, so that callers
+ # don't have to work out the right number of TABs to use. It also would
+ # affect intra-line space, but there is none in practice so far.
for i, l in enumerate(lines):
- lines[i] = l.replace('\t', ' ')
+ lines[i] = l.replace(' ', '\t')
max_len = 0
for l in lines:
- max_len = max(max_len, len(l))
- tabpos = (max_len + 7) // 8
+ max_len = max(max_len, len_evaluating_tabs(l))
+ max_len = max(max_len, min_slashpos)
+ tabpos = (max_len + 7) & ~7
for i, l in enumerate(lines):
- remaining = 72 - len(l)
- lines[i] += gen_tab_padding_to(len(l) + 1, 73) + '\\'
- for i, l in enumerate(lines):
- lines[i] = l.replace(' ', '\t')
+ lines[i] += gen_tab_padding_to(len_evaluating_tabs(l) + 1, tabpos + 1) + '\\'
return '\n'.join(lines)
def yn_to_boolean(s):