diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/maint/annotate_ifdef_directives | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/scripts/maint/annotate_ifdef_directives b/scripts/maint/annotate_ifdef_directives index fcd96aeb38..b784ca71ba 100755 --- a/scripts/maint/annotate_ifdef_directives +++ b/scripts/maint/annotate_ifdef_directives @@ -26,14 +26,33 @@ import re # Any block with fewer than this many lines does not need annotations. LINE_OBVIOUSNESS_LIMIT = 4 +# Maximum line width. +LINE_WIDTH=80 + class Problem(Exception): pass -def commented_line(fmt, argument): +def commented_line(fmt, argument, maxwidth=LINE_WIDTH): """ - Return fmt%argument, for use as a commented line. + Return fmt%argument, for use as a commented line. If the line would + be longer than maxwidth, truncate argument. + + Requires that fmt%"..." will fit into maxwidth characters. """ - return fmt % argument + result = fmt % argument + if len(result) <= maxwidth: + return result + else: + # figure out how much we need to truncate by to fit the argument, + # plus an ellipsis. + ellipsis = "..." + result = fmt % (argument + ellipsis) + overrun = len(result) - maxwidth + truncated_argument = argument[:-overrun] + ellipsis + + result = fmt % truncated_argument + assert len(result) <= maxwidth + return result def uncomment(s): """ |