All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Whitcroft <apw@canonical.com>
To: Joe Perches <joe@perches.com>
Cc: Andrew Morton <akpm@linux-foundation.org>, linux-kernel@vger.kernel.org
Subject: [Acked] [PATCH] checkpatch: Warn on embedded function names
Date: Wed, 4 Jan 2017 06:56:22 +0000	[thread overview]
Message-ID: <20170104065622.jdsgpvn4q3ywilhw@brain> (raw)
In-Reply-To: <ac9631fdbac5af3507c5bfe88ad9064f0ed764ec.1483500080.git.joe@perches.com>

On Tue, Jan 03, 2017 at 07:21:54PM -0800, Joe Perches wrote:
> Embedded function names are less appropriate to use when
> refactoring can cause function renaming.  Prefer the use
> of "%s", __func__ to embedded function names.
> 
> Signed-off-by: Joe Perches <joe@perches.com>
> ---
>  scripts/checkpatch.pl | 22 ++++++++++++++++++++--
>  1 file changed, 20 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index 982c52ca6473..4f53093a1b0b 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -2134,7 +2134,7 @@ sub process {
>  	my $in_header_lines = $file ? 0 : 1;
>  	my $in_commit_log = 0;		#Scanning lines before patch
>  	my $has_commit_log = 0;		#Encountered lines before patch
> -       my $commit_log_possible_stack_dump = 0;
> +	my $commit_log_possible_stack_dump = 0;
>  	my $commit_log_long_line = 0;
>  	my $commit_log_has_diff = 0;
>  	my $reported_maintainer_file = 0;
> @@ -2154,6 +2154,7 @@ sub process {
>  	my $realline = 0;
>  	my $realcnt = 0;
>  	my $here = '';
> +	my $context_function;		#undef'd unless there's a known function
>  	my $in_comment = 0;
>  	my $comment_edge = 0;
>  	my $first_line = 0;
> @@ -2192,7 +2193,8 @@ sub process {
>  			}
>  			#next;
>  		}
> -		if ($rawline=~/^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@/) {
> +		if ($rawline=~/^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@(.*)/) {
> +			my $context = $4;
>  			$realline=$1-1;
>  			if (defined $2) {
>  				$realcnt=$3+1;
> @@ -2201,6 +2203,12 @@ sub process {
>  			}
>  			$in_comment = 0;
>  
> +			if ($context =~ /\b(\w+)\s*\(/) {
> +				$context_function = $1;
> +			} else {
> +				undef $context_function;
> +			}
> +
>  			# Guestimate if this is a continuing comment.  Run
>  			# the context looking for a comment "edge".  If this
>  			# edge is a close comment then we must be in a comment
> @@ -5157,6 +5165,16 @@ sub process {
>  			     "break quoted strings at a space character\n" . $hereprev);
>  		}
>  
> +#check for an embedded function name in a string when the function is known
> +# as part of a diff.  This does not work for -f --file checking as it
> +#depends on patch context providing the function name
> +		if ($line =~ /^\+.*$String/ &&
> +		    defined($context_function) &&
> +		    get_quoted_string($line, $rawline) =~ /\b$context_function\b/) {
> +			WARN("EMBEDDED_FUNCTION_NAME",
> +			     "Prefer using \"%s\", __func__ to embedded function names\n" . $herecurr);
> +		}
> +
>  # check for spaces before a quoted newline
>  		if ($rawline =~ /^.*\".*\s\\n/) {
>  			if (WARN("QUOTED_WHITESPACE_BEFORE_NEWLINE",
> -- 
> 2.10.0.rc2.1.g053435c
> 

Looks sane enough to me.

Acked-by: Andy Whitcroft <apw@canonical.com>

-apw

      reply	other threads:[~2017-01-04  6:56 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-04  3:21 [PATCH] checkpatch: Warn on embedded function names Joe Perches
2017-01-04  6:56 ` Andy Whitcroft [this message]

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=20170104065622.jdsgpvn4q3ywilhw@brain \
    --to=apw@canonical.com \
    --cc=akpm@linux-foundation.org \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.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.