commit 16890839d35e9ac270e32934a232b45de9e8544b Author: Nick Mathewson nickm@torproject.org Date: Wed Sep 18 10:51:05 2019 -0400
annotate_ifdef_directives: obey an 80-column line-limit
If we would add a comment making a line longer than 80 columns, instead truncate the variable portion of the comment until it just fits into 80 columns, with an ellipsis. --- scripts/maint/annotate_ifdef_directives | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-)
diff --git a/scripts/maint/annotate_ifdef_directives b/scripts/maint/annotate_ifdef_directives index fcd96aeb3..b784ca71b 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): """