diff mbox series

rebase-interactive.c: silence format-zero-length warnings

Message ID pull.567.git.1582835130592.gitgitgadget@gmail.com (mailing list archive)
State New, archived
Headers show
Series rebase-interactive.c: silence format-zero-length warnings | expand

Commit Message

Linus Arver via GitGitGadget Feb. 27, 2020, 8:25 p.m. UTC
From: Ralf Thielow <ralf.thielow@gmail.com>

Fixes the following warnings:

rebase-interactive.c: In function ‘edit_todo_list’:
rebase-interactive.c:137:38: warning: zero-length gnu_printf format string [-Wformat-zero-length]
    write_file(rebase_path_dropped(), "");
rebase-interactive.c:144:37: warning: zero-length gnu_printf format string [-Wformat-zero-length]
   write_file(rebase_path_dropped(), "");

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
---
    rebase-interactive.c: silence format-zero-length warnings
    
    I noticed these warnings a while ago and they're still there, so here's
    my fix.

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-567%2Fralfth%2Fformat-zero-length-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-567/ralfth/format-zero-length-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/567

 rebase-interactive.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)


base-commit: 2d2118b814c11f509e1aa76cb07110f7231668dc

Comments

Alban Gruin March 3, 2020, 10:17 a.m. UTC | #1
Hi Ralf,

Le 27/02/2020 à 21:25, Ralf Thielow via GitGitGadget a écrit :
> From: Ralf Thielow <ralf.thielow@gmail.com>
> 
> Fixes the following warnings:
> 
> rebase-interactive.c: In function ‘edit_todo_list’:
> rebase-interactive.c:137:38: warning: zero-length gnu_printf format string [-Wformat-zero-length]
>     write_file(rebase_path_dropped(), "");
> rebase-interactive.c:144:37: warning: zero-length gnu_printf format string [-Wformat-zero-length]
>    write_file(rebase_path_dropped(), "");
> 
> Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
> ---
>     rebase-interactive.c: silence format-zero-length warnings
>     
>     I noticed these warnings a while ago and they're still there, so here's
>     my fix.
> 
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-567%2Fralfth%2Fformat-zero-length-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-567/ralfth/format-zero-length-v1
> Pull-Request: https://github.com/gitgitgadget/git/pull/567
> 
>  rebase-interactive.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/rebase-interactive.c b/rebase-interactive.c
> index ac001dea588..0a4572e67ea 100644
> --- a/rebase-interactive.c
> +++ b/rebase-interactive.c
> @@ -134,14 +134,14 @@ int edit_todo_list(struct repository *r, struct todo_list *todo_list,
>  
>  	if (incorrect) {
>  		if (todo_list_check_against_backup(r, new_todo)) {
> -			write_file(rebase_path_dropped(), "");
> +			write_file(rebase_path_dropped(), "%s", "");
>  			return -4;
>  		}
>  
>  		if (incorrect > 0)
>  			unlink(rebase_path_dropped());
>  	} else if (todo_list_check(todo_list, new_todo)) {
> -		write_file(rebase_path_dropped(), "");
> +		write_file(rebase_path_dropped(), "%s", "");
>  		return -4;
>  	}
>  
> 
> base-commit: 2d2118b814c11f509e1aa76cb07110f7231668dc
> 

Ack.

On a tangent: what's wrong with empty format strings?

Cheers,
Alban
Junio C Hamano March 3, 2020, 2:20 p.m. UTC | #2
Alban Gruin <alban.gruin@gmail.com> writes:

>> Fixes the following warnings:
>> 
>> rebase-interactive.c: In function ‘edit_todo_list’:
>> rebase-interactive.c:137:38: warning: zero-length gnu_printf format string [-Wformat-zero-length]
>>     write_file(rebase_path_dropped(), "");
>> rebase-interactive.c:144:37: warning: zero-length gnu_printf format string [-Wformat-zero-length]
> ...
> On a tangent: what's wrong with empty format strings?

Those functions that are truly printf-like, such a call would be
no-op and an indication of possible typo ("did you forget a %s or
something?"), I presume.

But many of our functions that take printf-like format strings will
do useful things even when an empty string is given, so the warning
is unwanted.
diff mbox series

Patch

diff --git a/rebase-interactive.c b/rebase-interactive.c
index ac001dea588..0a4572e67ea 100644
--- a/rebase-interactive.c
+++ b/rebase-interactive.c
@@ -134,14 +134,14 @@  int edit_todo_list(struct repository *r, struct todo_list *todo_list,
 
 	if (incorrect) {
 		if (todo_list_check_against_backup(r, new_todo)) {
-			write_file(rebase_path_dropped(), "");
+			write_file(rebase_path_dropped(), "%s", "");
 			return -4;
 		}
 
 		if (incorrect > 0)
 			unlink(rebase_path_dropped());
 	} else if (todo_list_check(todo_list, new_todo)) {
-		write_file(rebase_path_dropped(), "");
+		write_file(rebase_path_dropped(), "%s", "");
 		return -4;
 	}