All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@s-opensource.com>
To: Markus Heiser <markus.heiser@darmarit.de>
Cc: Linux Media Mailing List <linux-media@vger.kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Mauro Carvalho Chehab <mchehab@infradead.org>,
	Linux Doc Mailing List <linux-doc@vger.kernel.org>,
	Daniel Vetter <daniel.vetter@ffwll.ch>
Subject: Re: [PATCH v2 09/13] scripts: kernel-doc: parse next structs/unions
Date: Fri, 29 Sep 2017 09:08:53 -0300	[thread overview]
Message-ID: <20170929090853.469ea73b@recife.lan> (raw)
In-Reply-To: <68968C67-7CD6-4264-A46D-1EE195CBC58D@darmarit.de>

Em Thu, 28 Sep 2017 18:28:32 +0200
Markus Heiser <markus.heiser@darmarit.de> escreveu:

> Hi Mauro,
> 
> > Am 27.09.2017 um 23:10 schrieb Mauro Carvalho Chehab <mchehab@s-opensource.com>:
> > 
> I also untabified the example since tabs in reST are
> a nightmare, especially in code blocks ... tabulators are the source
> of all evil [1] ...
> 
>   Please, never use tabs in markups or programming languages
>   where indentation is a part of the markup respectively the 
>   language!!

Tabs will exist at the sources, as Kernel coding style recommends its
usage. There's nothing that can be done to avoid. So, whatever scripts
we use, it should handle it.

Thankfully, solving this issue is a one line perl patch, as explained at:
	http://perldoc.perl.org/perlfaq4.html#How-do-I-expand-tabs-in-a-string?

Something like the enclosed (untested) patch.

Thanks,
Mauro

[PATCH] kernel-doc: replace tabs by spaces

Sphinx has a hard time dealing with tabs, causing it to
misinterpret paragraph continuation.

As we're now mainly focused on supporting ReST output,
replace tabs by spaces, in order to avoid troubles when
the output is parsed by Sphinx.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>

diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index 69757ee9db4c..7bc139184177 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -1544,7 +1544,7 @@ sub tracepoint_munge($) {
 sub syscall_munge() {
 	my $void = 0;
 
-	$prototype =~ s@[\r\n\t]+@ @gos; # strip newlines/CR's/tabs
+	$prototype =~ s@[\r\n]+@ @gos; # strip newlines/CR's
 ##	if ($prototype =~ m/SYSCALL_DEFINE0\s*\(\s*(a-zA-Z0-9_)*\s*\)/) {
 	if ($prototype =~ m/SYSCALL_DEFINE0/) {
 		$void = 1;
@@ -1743,6 +1743,8 @@ sub process_file($) {
 	while (s/\\\s*$//) {
 	    $_ .= <IN>;
 	}
+	# Replace tabs by spaces
+        while ($_ =~ s/\t+/' ' x (length($&) * 8 - length($`) % 8)/e) {};
 	if ($state == STATE_NORMAL) {
 	    if (/$doc_start/o) {
 		$state = STATE_NAME;	# next line is always the function name
@@ -1842,8 +1844,7 @@ sub process_file($) {
 		$in_purpose = 0;
 		$contents = $newcontents;
                 $new_start_line = $.;
-		while ((substr($contents, 0, 1) eq " ") ||
-		       substr($contents, 0, 1) eq "\t") {
+		while (substr($contents, 0, 1) eq " ") {
 		    $contents = substr($contents, 1);
 		}
 		if ($contents ne "") {
@@ -1912,8 +1913,7 @@ sub process_file($) {
 		$contents = $2;
                 $new_start_line = $.;
 		if ($contents ne "") {
-		    while ((substr($contents, 0, 1) eq " ") ||
-		           substr($contents, 0, 1) eq "\t") {
+		    while (substr($contents, 0, 1) eq " ") {
 			$contents = substr($contents, 1);
 		    }
 		    $contents .= "\n";

  reply	other threads:[~2017-09-29 12:18 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-27 21:10 [PATCH v2 00/13] kernel-doc: add supported to document nested structs/$ Mauro Carvalho Chehab
2017-09-27 21:10 ` [PATCH v2 01/13] scripts: kernel-doc: get rid of unused output formats Mauro Carvalho Chehab
2017-09-27 21:10 ` [PATCH v2 02/13] docs: kernel-doc.rst: better describe kernel-doc arguments Mauro Carvalho Chehab
2017-09-27 21:10 ` [PATCH v2 03/13] docs: kernel-doc.rst: improve private members description Mauro Carvalho Chehab
2017-09-27 21:10 ` [PATCH v2 04/13] docs: kernel-doc.rst: improve function documentation section Mauro Carvalho Chehab
2017-09-27 21:10 ` [PATCH v2 05/13] docs: kernel-doc.rst: improve structs chapter Mauro Carvalho Chehab
2017-09-27 21:10 ` [PATCH v2 06/13] docs: kernel-doc.rst: improve typedef documentation Mauro Carvalho Chehab
2017-09-27 21:10 ` [PATCH v2 07/13] docs: kernel-doc.rst: add documentation about man pages Mauro Carvalho Chehab
2017-09-27 21:20   ` Randy Dunlap
2017-09-28  1:12     ` Mauro Carvalho Chehab
2017-09-27 21:10 ` [PATCH v2 08/13] docs: get rid of kernel-doc-nano-HOWTO.txt Mauro Carvalho Chehab
2017-09-27 21:10 ` [PATCH v2 09/13] scripts: kernel-doc: parse next structs/unions Mauro Carvalho Chehab
2017-09-28 16:28   ` Markus Heiser
2017-09-29 12:08     ` Mauro Carvalho Chehab [this message]
2017-09-29 13:07       ` Markus Heiser
2017-09-29 13:33         ` Mauro Carvalho Chehab
2017-09-29 15:00           ` Markus Heiser
2017-09-29 15:19             ` Mauro Carvalho Chehab
2017-09-29 15:29     ` Mauro Carvalho Chehab
2017-09-29 15:44       ` Mauro Carvalho Chehab
2017-09-29 15:47       ` Markus Heiser
2017-10-01 11:02     ` Mauro Carvalho Chehab
2017-09-27 21:10 ` [PATCH v2 10/13] scripts: kernel-doc: get rid of $nested parameter Mauro Carvalho Chehab
2017-09-27 21:10 ` [PATCH v2 11/13] scripts: kernel-doc: print the declaration name on warnings Mauro Carvalho Chehab
2017-09-27 21:10 ` [PATCH v2 12/13] scripts: kernel-doc: handle nested struct function arguments Mauro Carvalho Chehab
2017-09-28 16:32   ` Markus Heiser
2017-10-01 11:18     ` Mauro Carvalho Chehab
2017-09-27 21:10 ` [PATCH v2 13/13] [RFC] w1_netlink.h: add support for nested structs Mauro Carvalho Chehab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170929090853.469ea73b@recife.lan \
    --to=mchehab@s-opensource.com \
    --cc=corbet@lwn.net \
    --cc=daniel.vetter@ffwll.ch \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=markus.heiser@darmarit.de \
    --cc=mchehab@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.