If a param description spans multiple lines, check any leading
whitespace in the first continuation line, and remove same amount of
whitespace from following lines.

This allows indentation in the multi-line parameter descriptions for
aesthetical reasons while not causing accidentally significant
indentation in the rst output.

Signed-off-by: Jani Nikula <jani.nik...@intel.com>
---
 scripts/kernel-doc | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index e93e796b17ce..f6f37e71dc08 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -2701,6 +2701,7 @@ sub process_file($) {
     my $in_purpose = 0;
     my $initial_section_counter = $section_counter;
     my ($orig_file) = @_;
+    my $leading_space;
 
     if (defined($ENV{'SRCTREE'})) {
        $file = "$ENV{'SRCTREE'}" . "/" . $orig_file;
@@ -2822,6 +2823,7 @@ sub process_file($) {
                    $contents .= "\n";
                }
                $section = $newsection;
+               $leading_space = undef;
            } elsif (/$doc_end/) {
                if (($contents ne "") && ($contents ne "\n")) {
                    dump_section($file, $section, xml_escape($contents));
@@ -2856,7 +2858,19 @@ sub process_file($) {
                    $declaration_purpose .= " " . xml_escape($1);
                    $declaration_purpose =~ s/\s+/ /g;
                } else {
-                   $contents .= $1 . "\n";
+                   my $cont = $1;
+                   if ($section =~ m/^@/ || $section eq $section_context) {
+                       if (!defined $leading_space) {
+                           if ($cont =~ m/^(\s+)/) {
+                               $leading_space = $1;
+                           } else {
+                               $leading_space = "";
+                           }
+                       }
+
+                       $cont =~ s/^$leading_space//;
+                   }
+                   $contents .= $cont . "\n";
                }
            } else {
                # i dont know - bad line?  ignore.
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to