Hi, I've written a patch to allow you to run a command based on the least
unambiguous portion of the command name. For example, prev can be called
with pr, pre or prev, but not p becuase of play and playlist.

The patch is attached.

Thanks
Rory McNamara
From 96eba0ce0bfdb9051fd81617f5d231fd0fbeecbf Mon Sep 17 00:00:00 2001
From: PsychoMario <[email protected]>
Date: Tue, 11 Nov 2014 13:05:15 +0000
Subject: [PATCH 1/2] added least unambiguous to find_command

---
 src/main.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/main.c b/src/main.c
index 7c30ff6..fb87cbe 100644
--- a/src/main.c
+++ b/src/main.c
@@ -214,8 +214,18 @@ setup_connection(void)
 static struct command *
 find_command(const char *name)
 {
+	int matches, len = 0;
+	do {
+		matches = 0;
+		len += 1;
+		for (unsigned i = 0; mpc_table[i].command != NULL; ++i)
+			if (strncmp(name, mpc_table[i].command, len) == 0)
+				matches += 1;
+	} while (matches > 1);
+	if (matches == 0)
+		return NULL;
 	for (unsigned i = 0; mpc_table[i].command != NULL; ++i)
-		if (strcmp(name, mpc_table[i].command) == 0)
+		if (strncmp(name, mpc_table[i].command, len) == 0)
 			return &mpc_table[i];
 
 	return NULL;
-- 
2.1.2


From 4c80442f71c2c99e7eb4d281d4e62a4d900c9cfc Mon Sep 17 00:00:00 2001
From: PsychoMario <[email protected]>
Date: Tue, 11 Nov 2014 14:15:40 +0000
Subject: [PATCH 2/2] added least unambiguous info to manpage

---
 doc/mpc.1 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/doc/mpc.1 b/doc/mpc.1
index 2bea9a6..b119c81 100644
--- a/doc/mpc.1
+++ b/doc/mpc.1
@@ -96,6 +96,7 @@ If you specify an absolute path, mpc attempts a connection via Unix Domain Socke
 The port to connect to; if not given, the value of the environment variable MPD_PORT is checked before defaulting to 6600.  This default can be changed at compile-time.
 .br
 .SH COMMANDS
+Commands can be used from the least unambiguous prefix (e.g insert or ins)
 .TP
 .B add <file>
 Adds a song from the music database to the playlist. Can also read input from pipes. Use "mpc ls | mpc add" to add all files to the playlist.
-- 
2.1.2

_______________________________________________
mpd-devel mailing list
[email protected]
http://mailman.blarg.de/listinfo/mpd-devel

Reply via email to