built-in add -p: only show the applicable parts of the help text
When displaying the only hunk in a file's diff, the prompt already excludes the commands to navigate to the previous/next hunk. Let's also let the `?` command show only the help lines corresponding to the commands that are displayed in the prompt. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
ade246efed
commit
54d9d9b2ee
32
add-patch.c
32
add-patch.c
@ -1008,8 +1008,10 @@ N_("y - stage this hunk\n"
|
|||||||
"n - do not stage this hunk\n"
|
"n - do not stage this hunk\n"
|
||||||
"q - quit; do not stage this hunk or any of the remaining ones\n"
|
"q - quit; do not stage this hunk or any of the remaining ones\n"
|
||||||
"a - stage this and all the remaining hunks\n"
|
"a - stage this and all the remaining hunks\n"
|
||||||
"d - do not stage this hunk nor any of the remaining hunks\n"
|
"d - do not stage this hunk nor any of the remaining hunks\n");
|
||||||
"j - leave this hunk undecided, see next undecided hunk\n"
|
|
||||||
|
static const char help_patch_remainder[] =
|
||||||
|
N_("j - leave this hunk undecided, see next undecided hunk\n"
|
||||||
"J - leave this hunk undecided, see next hunk\n"
|
"J - leave this hunk undecided, see next hunk\n"
|
||||||
"k - leave this hunk undecided, see previous undecided hunk\n"
|
"k - leave this hunk undecided, see previous undecided hunk\n"
|
||||||
"K - leave this hunk undecided, see previous hunk\n"
|
"K - leave this hunk undecided, see previous hunk\n"
|
||||||
@ -1246,9 +1248,31 @@ soft_increment:
|
|||||||
hunk->use = USE_HUNK;
|
hunk->use = USE_HUNK;
|
||||||
goto soft_increment;
|
goto soft_increment;
|
||||||
}
|
}
|
||||||
} else
|
} else {
|
||||||
color_fprintf(stdout, s->s.help_color,
|
const char *p = _(help_patch_remainder), *eol = p;
|
||||||
|
|
||||||
|
color_fprintf(stdout, s->s.help_color, "%s",
|
||||||
_(help_patch_text));
|
_(help_patch_text));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Show only those lines of the remainder that are
|
||||||
|
* actually applicable with the current hunk.
|
||||||
|
*/
|
||||||
|
for (; *p; p = eol + (*eol == '\n')) {
|
||||||
|
eol = strchrnul(p, '\n');
|
||||||
|
|
||||||
|
/*
|
||||||
|
* `s->buf` still contains the part of the
|
||||||
|
* commands shown in the prompt that are not
|
||||||
|
* always available.
|
||||||
|
*/
|
||||||
|
if (*p != '?' && !strchr(s->buf.buf, *p))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
color_fprintf_ln(stdout, s->s.help_color,
|
||||||
|
"%.*s", (int)(eol - p), p);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Any hunk to be used? */
|
/* Any hunk to be used? */
|
||||||
|
Loading…
Reference in New Issue
Block a user