From 403b1b27ab2a4db06bbf7749c6fc20b841a34f54 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Sat, 19 Jul 2008 10:07:50 +0000 Subject: [PATCH] Handle exact match properly. --- CHANGES | 6 +++++- cmd-set-option.c | 5 ++++- cmd.c | 6 +++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index f525c14a..59c593f5 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +19 July 2008 + +* Unbreak "set status" - tmux thought it was ambiguous, reported by rivo nurges. + 02 July 2008 * Split vi and emacs mode keys into two tables and add an option (mode-keys) @@ -610,4 +614,4 @@ (including mutt, emacs). No status bar yet and no key remapping or other customisation. -$Id: CHANGES,v 1.149 2008-07-02 21:22:57 nicm Exp $ +$Id: CHANGES,v 1.150 2008-07-19 10:07:50 nicm Exp $ diff --git a/cmd-set-option.c b/cmd-set-option.c index fdefe005..156e1468 100644 --- a/cmd-set-option.c +++ b/cmd-set-option.c @@ -1,4 +1,4 @@ -/* $Id: cmd-set-option.c,v 1.39 2008-07-02 21:22:57 nicm Exp $ */ +/* $Id: cmd-set-option.c,v 1.40 2008-07-19 10:07:50 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -168,6 +168,9 @@ cmd_set_option_exec(struct cmd *self, struct cmd_ctx *ctx) } entry = &set_option_table[i]; + /* Bail now if an exact match. */ + if (strcmp(entry->name, data->option) == 0) + break; } if (entry == NULL) { ctx->error(ctx, "unknown option: %s", data->option); diff --git a/cmd.c b/cmd.c index e78b8fc9..481b3078 100644 --- a/cmd.c +++ b/cmd.c @@ -1,4 +1,4 @@ -/* $Id: cmd.c,v 1.61 2008-07-01 20:35:16 nicm Exp $ */ +/* $Id: cmd.c,v 1.62 2008-07-19 10:07:50 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -150,6 +150,10 @@ cmd_parse(int argc, char **argv, char **cause) if (entry != NULL) goto ambiguous; entry = *entryp; + + /* Bail now if an exact match. */ + if (strcmp(entry->name, argv[0]) == 0) + break; } if (entry == NULL) { xasprintf(cause, "unknown command: %s", argv[0]);