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 |
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
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 --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; }