Subject: [alpine-devel] [PATCH 1/2] Allow "apk search -x" for -e

From: Dubiousjim <[email-masked]>
Date: Sun, 30 Jun 2013 04:02:18 -0400

---
 src/search.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/search.c b/src/search.c
index 7ccf98a..c85892b 100644
--- a/src/search.c
+++ b/src/search.c
@@ -79,6 +79,7 @@ static int search_parse(void *ctx, struct apk_db_options *dbopts,
 		ictx->show_all = 1;
 		break;
 	case 'e':
+	case 'x':
 		ictx->search_exact = 1;
 		break;
 	case 'o':
@@ -166,7 +167,8 @@ static int search_main(void *pctx, struct apk_database *db, struct apk_string_ar
 static struct apk_option search_options[] = {
 	{ 'a', "all",		"Show all package versions (instead of latest only)" },
 	{ 'd', "description",	"Search package descriptions (implies -a)" },
-	{ 'e', "exact",		"Require exact match (instead of substring match)" },
+	{ 'x', "exact",		"Require exact match (instead of substring match)" },
+	{ 'e', NULL,	        "Synonym for -x (deprecated)" },
 	{ 'o', "origin",	"Print origin package name instead of the subpackage" },
 	{ 'r', "rdepends",	"Print reverse dependencies of package" },
 };
-- 
1.8.3.1

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---

---

From: Dubiousjim <[email-masked]>
Date: Sun, 30 Jun 2013 04:02:19 -0400

---
 src/apk.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/apk.c b/src/apk.c
index 17e87d5..a236b37 100644
--- a/src/apk.c
+++ b/src/apk.c
@@ -111,13 +111,14 @@ static void print_usage(const char *cmd, const char *args, int num_opts,
 	int i, j;
 
 	indent.x = printf("\nusage: apk %s", cmd) - 1;
-	for (i = 0; i < num_opts; i++) {
-		j = 0;
-		word[j++] = '[';
-		j += format_option(&word[j], sizeof(word) - j, &opts[i], "|");
-		word[j++] = ']';
-		apk_print_indented(&indent, APK_BLOB_PTR_LEN(word, j));
-	}
+	for (i = 0; i < num_opts; i++)
+		if (opts[i].name != NULL) {
+			j = 0;
+			word[j++] = '[';
+			j += format_option(&word[j], sizeof(word) - j, &opts[i], "|");
+			word[j++] = ']';
+			apk_print_indented(&indent, APK_BLOB_PTR_LEN(word, j));
+		}
 	if (args != NULL)
 		apk_print_indented(&indent, APK_BLOB_STR(args));
 	printf("\n");
@@ -230,7 +231,7 @@ static void merge_options(struct option *opts, struct apk_option *ao, int num)
 	int i;
 
 	for (i = 0; i < num; i++, opts++, ao++) {
-		opts->name = ao->name;
+		opts->name = ao->name ?: "";
 		opts->has_arg = ao->has_arg;
 		opts->flag = NULL;
 		opts->val = ao->val;
-- 
1.8.3.1

---