CLI: remove alias machinery, and "part", "search-tags" commands

The commands are long deprecated, so removal is probably overdue. The
real motivation is to simplify argument handling for notmuch so that
we can migrate to the common argument parsing framework.
This commit is contained in:
David Bremner 2013-01-19 14:25:53 -04:00
parent bdf7955cd5
commit a76682a2d2
3 changed files with 9 additions and 56 deletions

8
NEWS
View file

@ -1,3 +1,11 @@
Notmuch 0.16 (2013-MM-DD)
=========================
Command-Line Interface
----------------------
Deprecated commands "part" and "search-tags" are removed.
Notmuch 0.15 (2013-01-18)
=========================

View file

@ -118,13 +118,6 @@ file.
Allow configuration for filename patterns that should be ignored when
indexing.
Replace the "notmuch part --part=id" command with "notmuch show
--part=id", (David Edmondson wants to rewrite some of "notmuch show" to
provide more MIME-structure information in its output first).
Replace the "notmuch search-tags" command with "notmuch search
--output=tags".
Fix to avoid this ugly message:
(process:17197): gmime-CRITICAL **: g_mime_message_get_mime_part: assertion `GMIME_IS_MESSAGE (message)' failed

View file

@ -31,18 +31,6 @@ typedef struct command {
const char *summary;
} command_t;
#define MAX_ALIAS_SUBSTITUTIONS 3
typedef struct alias {
const char *name;
const char *substitutions[MAX_ALIAS_SUBSTITUTIONS];
} alias_t;
alias_t aliases[] = {
{ "part", { "show", "--format=raw"}},
{ "search-tags", {"search", "--output=tags", "*"}}
};
static int
notmuch_help_command (void *ctx, int argc, char *argv[]);
@ -260,9 +248,7 @@ main (int argc, char *argv[])
{
void *local;
command_t *command;
alias_t *alias;
unsigned int i, j;
const char **argv_local;
unsigned int i;
talloc_enable_null_tracking ();
@ -285,40 +271,6 @@ main (int argc, char *argv[])
return 0;
}
for (i = 0; i < ARRAY_SIZE (aliases); i++) {
alias = &aliases[i];
if (strcmp (argv[1], alias->name) == 0)
{
int substitutions;
argv_local = talloc_size (local, sizeof (char *) *
(argc + MAX_ALIAS_SUBSTITUTIONS - 1));
if (argv_local == NULL) {
fprintf (stderr, "Out of memory.\n");
return 1;
}
/* Copy all substution arguments from the alias. */
argv_local[0] = argv[0];
for (j = 0; j < MAX_ALIAS_SUBSTITUTIONS; j++) {
if (alias->substitutions[j] == NULL)
break;
argv_local[j+1] = alias->substitutions[j];
}
substitutions = j;
/* And copy all original arguments (skipping the argument
* that matched the alias of course. */
for (j = 2; j < (unsigned) argc; j++) {
argv_local[substitutions+j-1] = argv[j];
}
argc += substitutions - 1;
argv = (char **) argv_local;
}
}
for (i = 0; i < ARRAY_SIZE (commands); i++) {
command = &commands[i];