aboutsummaryrefslogtreecommitdiffstats
path: root/t/lib-rebase.sh
diff options
context:
space:
mode:
authorPhillip Wood <phillip.wood@dunelm.org.uk>2023-02-23 20:55:00 +0000
committerJunio C Hamano <gitster@pobox.com>2023-02-23 14:25:48 -0800
commit7aed2c0565bb1a7b4524f93e35a29770286ea630 (patch)
tree67068966fb653e0e45ede511e54d1036cdac97c4 /t/lib-rebase.sh
parent768bb238c4843bf52847773a621de4dffa6b9ab5 (diff)
downloadgit-7aed2c0565bb1a7b4524f93e35a29770286ea630.tar.gz
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>
Diffstat (limited to 't/lib-rebase.sh')
-rw-r--r--t/lib-rebase.sh2
1 files changed, 1 insertions, 1 deletions
diff --git a/t/lib-rebase.sh b/t/lib-rebase.sh
index b57541356b..1d2f0429ae 100644
--- a/t/lib-rebase.sh
+++ b/t/lib-rebase.sh
@@ -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"