mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 10:58:10 +01:00
notmuch: Add a talloc context argument to each top-level command function.
I had noticed several times earlier that having a talloc context passed in would make things more convenient. I'm not exercising that convenience yet, but the context is there now, (and there's one fewer item on our TODO list).
This commit is contained in:
parent
c96021a477
commit
2405b45a06
2 changed files with 18 additions and 18 deletions
3
TODO
3
TODO
|
@ -1,6 +1,3 @@
|
||||||
Add a talloc context as the first argument to each command in
|
|
||||||
notmuch.c.
|
|
||||||
|
|
||||||
Write a notmuch man page.
|
Write a notmuch man page.
|
||||||
|
|
||||||
Compile and install a libnotmuch library.
|
Compile and install a libnotmuch library.
|
||||||
|
|
33
notmuch.c
33
notmuch.c
|
@ -60,7 +60,7 @@
|
||||||
|
|
||||||
#define ARRAY_SIZE(arr) (sizeof (arr) / sizeof (arr[0]))
|
#define ARRAY_SIZE(arr) (sizeof (arr) / sizeof (arr[0]))
|
||||||
|
|
||||||
typedef int (*command_function_t) (int argc, char *argv[]);
|
typedef int (*command_function_t) (void *ctx, int argc, char *argv[]);
|
||||||
|
|
||||||
typedef struct command {
|
typedef struct command {
|
||||||
const char *name;
|
const char *name;
|
||||||
|
@ -471,7 +471,7 @@ count_files (const char *path, int *count)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
setup_command (unused (int argc), unused (char *argv[]))
|
setup_command (unused (void *ctx), unused (int argc), unused (char *argv[]))
|
||||||
{
|
{
|
||||||
notmuch_database_t *notmuch = NULL;
|
notmuch_database_t *notmuch = NULL;
|
||||||
char *default_path, *mail_directory = NULL;
|
char *default_path, *mail_directory = NULL;
|
||||||
|
@ -629,7 +629,7 @@ tag_inbox_and_unread (notmuch_message_t *message)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
new_command (unused (int argc), unused (char *argv[]))
|
new_command (unused (void *ctx), unused (int argc), unused (char *argv[]))
|
||||||
{
|
{
|
||||||
notmuch_database_t *notmuch;
|
notmuch_database_t *notmuch;
|
||||||
const char *mail_directory;
|
const char *mail_directory;
|
||||||
|
@ -807,9 +807,9 @@ _format_relative_date (void *ctx, time_t then)
|
||||||
#undef DAY
|
#undef DAY
|
||||||
|
|
||||||
static int
|
static int
|
||||||
search_command (int argc, char *argv[])
|
search_command (void *ctx, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
void *local = talloc_new (NULL);
|
void *local = talloc_new (ctx);
|
||||||
notmuch_database_t *notmuch = NULL;
|
notmuch_database_t *notmuch = NULL;
|
||||||
notmuch_query_t *query;
|
notmuch_query_t *query;
|
||||||
notmuch_threads_t *threads;
|
notmuch_threads_t *threads;
|
||||||
|
@ -897,9 +897,9 @@ _get_one_line_summary (void *ctx, notmuch_message_t *message)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
show_command (unused (int argc), unused (char *argv[]))
|
show_command (void *ctx, unused (int argc), unused (char *argv[]))
|
||||||
{
|
{
|
||||||
void *local = talloc_new (NULL);
|
void *local = talloc_new (ctx);
|
||||||
char *query_string;
|
char *query_string;
|
||||||
notmuch_database_t *notmuch = NULL;
|
notmuch_database_t *notmuch = NULL;
|
||||||
notmuch_query_t *query = NULL;
|
notmuch_query_t *query = NULL;
|
||||||
|
@ -997,7 +997,7 @@ show_command (unused (int argc), unused (char *argv[]))
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
tag_command (unused (int argc), unused (char *argv[]))
|
tag_command (void *ctx, unused (int argc), unused (char *argv[]))
|
||||||
{
|
{
|
||||||
void *local;
|
void *local;
|
||||||
int *add_tags, *remove_tags;
|
int *add_tags, *remove_tags;
|
||||||
|
@ -1011,7 +1011,7 @@ tag_command (unused (int argc), unused (char *argv[]))
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
local = talloc_new (NULL);
|
local = talloc_new (ctx);
|
||||||
if (local == NULL) {
|
if (local == NULL) {
|
||||||
ret = 1;
|
ret = 1;
|
||||||
goto DONE;
|
goto DONE;
|
||||||
|
@ -1102,7 +1102,7 @@ tag_command (unused (int argc), unused (char *argv[]))
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dump_command (int argc, char *argv[])
|
dump_command (unused (void *ctx), int argc, char *argv[])
|
||||||
{
|
{
|
||||||
FILE *output = NULL;
|
FILE *output = NULL;
|
||||||
notmuch_database_t *notmuch = NULL;
|
notmuch_database_t *notmuch = NULL;
|
||||||
|
@ -1178,7 +1178,7 @@ dump_command (int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
restore_command (int argc, char *argv[])
|
restore_command (unused (void *ctx), int argc, char *argv[])
|
||||||
{
|
{
|
||||||
FILE *input = NULL;
|
FILE *input = NULL;
|
||||||
notmuch_database_t *notmuch = NULL;
|
notmuch_database_t *notmuch = NULL;
|
||||||
|
@ -1287,7 +1287,7 @@ restore_command (int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
help_command (int argc, char *argv[]);
|
help_command (void *ctx, int argc, char *argv[]);
|
||||||
|
|
||||||
command_t commands[] = {
|
command_t commands[] = {
|
||||||
{ "setup", setup_command,
|
{ "setup", setup_command,
|
||||||
|
@ -1404,7 +1404,7 @@ usage (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
help_command (int argc, char *argv[])
|
help_command (unused (void *ctx), int argc, char *argv[])
|
||||||
{
|
{
|
||||||
command_t *command;
|
command_t *command;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
@ -1435,17 +1435,18 @@ help_command (int argc, char *argv[])
|
||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
void *local = talloc_new (NULL);
|
||||||
command_t *command;
|
command_t *command;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
if (argc == 1)
|
if (argc == 1)
|
||||||
return setup_command (0, NULL);
|
return setup_command (local, 0, NULL);
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE (commands); i++) {
|
for (i = 0; i < ARRAY_SIZE (commands); i++) {
|
||||||
command = &commands[i];
|
command = &commands[i];
|
||||||
|
|
||||||
if (strcmp (argv[1], command->name) == 0)
|
if (strcmp (argv[1], command->name) == 0)
|
||||||
return (command->function) (argc - 2, &argv[2]);
|
return (command->function) (local, argc - 2, &argv[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Don't complain about "help" being an unknown command when we're
|
/* Don't complain about "help" being an unknown command when we're
|
||||||
|
@ -1453,5 +1454,7 @@ main (int argc, char *argv[])
|
||||||
fprintf (stderr, "Error: Unknown command '%s' (see \"notmuch help\")\n",
|
fprintf (stderr, "Error: Unknown command '%s' (see \"notmuch help\")\n",
|
||||||
argv[1]);
|
argv[1]);
|
||||||
|
|
||||||
|
talloc_free (local);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue