rebase -i: match whole word in is_command()
When matching an unabbreviated command is_command() only does a prefix match which means it parses "pickled" as TODO_PICK. parse_insn_line() does error out because is_command() only advances as far as the end of "pick" so it looks like the command name is not followed by a space but the error message is "missing arguments for pick" rather than telling the user that the "pickled" is not a valid command. Fix this by ensuring the match is follow by whitespace or the end of the string as we already do for abbreviated commands. The (*bol = p) at the end of the condition is a bit cute for my taste but I decided to leave it be for now. Rather than add new tests the existing tests for bad commands are adapted to use a bad command name that triggers the prefix matching bug. Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
768bb238c4
commit
7aed2c0565
@@ -60,7 +60,7 @@ set_fake_editor () {
|
||||
">")
|
||||
echo >> "$1";;
|
||||
bad)
|
||||
action="badcmd";;
|
||||
action="pickled";;
|
||||
fakesha)
|
||||
test \& != "$action" || action=pick
|
||||
echo "$action XXXXXXX False commit" >> "$1"
|
||||
|
||||
Reference in New Issue
Block a user