X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fwhatnow.c;h=c60a11c6be67337baf5ffe8d37f7a5b64a69f97a;hb=10e03b3fba3e01052baf92c963c46a2a5529b4e0;hp=273921c9c24d7aae269d1315f0a0f41da97a639b;hpb=6b1eba7d43dcd9d28c0d4ac2bae23a55f487a9b8;p=mmh diff --git a/uip/whatnow.c b/uip/whatnow.c index 273921c..c60a11c 100644 --- a/uip/whatnow.c +++ b/uip/whatnow.c @@ -4,35 +4,6 @@ ** This code is Copyright (c) 2002, by the authors of nmh. See the ** COPYRIGHT file in the root directory of the nmh distribution for ** complete copyright information. -** -** The inclusion of attachments is eased by -** using the header field name mechanism added to anno and send. -** The header field name for attachments is predefined. -** -** Several commands have been added at the whatnow prompt: -** -** cd [ directory ] This option works just like the shell's -** cd command and lets the user change the -** directory from which attachments are -** taken so that long path names are not -** needed with every file. -** -** ls [ ls-options ] This option works just like the normal -** ls command and exists to allow the user -** to verify file names in the directory. -** -** pwd This option works just like the normal -** pwd command and exists to allow the user -** to verify the directory. -** -** attach files This option attaches the named files to -** the draft. -** -** alist This option lists the attachments on the -** draft. -** -** detach numbers This option removes attachments by -** attachment number from the draft. */ #include @@ -41,7 +12,7 @@ #include #include -static struct swit whatnowswitches[] = { +static struct swit switches[] = { #define EDITRSW 0 { "editor editor", 0 }, #define PRMPTSW 1 @@ -58,31 +29,33 @@ static struct swit whatnowswitches[] = { */ static struct swit aleqs[] = { #define EDITSW 0 - { "edit [ ]", 0 }, -#define REFILEOPT 1 - { "refile [] +folder", 0 }, + { "edit [editor [switches]]", 0 }, +#define LISTSW 1 + { "list", 0 }, #define DISPSW 2 { "display", 0 }, -#define LISTSW 3 - { "list", 0 }, +#define WHOMSW 3 + { "whom", 0 }, #define SENDSW 4 - { "send []", 0 }, -#define QUITSW 5 - { "quit", 0 }, + { "send", 0 }, +#define REFILEOPT 5 + { "refile +folder", 0 }, #define DELETESW 6 { "delete", 0 }, -#define CDCMDSW 7 +#define QUITSW 7 + { "quit", 0 }, +#define CDCMDSW 8 { "cd [directory]", 0 }, -#define PWDCMDSW 8 +#define PWDCMDSW 9 { "pwd", 0 }, -#define LSCMDSW 9 +#define LSCMDSW 10 { "ls", 0 }, -#define ATTACHCMDSW 10 - { "attach", 0 }, -#define DETACHCMDSW 11 - { "detach", 0 }, -#define ALISTCMDSW 12 +#define ALISTCMDSW 11 { "alist", 0 }, +#define ATTACHCMDSW 12 + { "attach files", 0 }, +#define DETACHCMDSW 13 + { "detach numbers", 0 }, { NULL, 0 } }; @@ -96,9 +69,9 @@ static int sendfile(char **, char *); static int refile(char **, char *); static int removefile(char *); static void writelscmd(char *, int, char **); -static void writesomecmd(char *buf, int bufsz, char *cmd, char *trailcmd, char **argp); -static FILE* popen_in_dir(const char *dir, const char *cmd, const char *type); -static int system_in_dir(const char *dir, const char *cmd); +static void writesomecmd(char *, int, char *, char *, char **); +static FILE* popen_in_dir(const char *, const char *, const char *); +static int system_in_dir(const char *, const char *); int @@ -134,9 +107,9 @@ main(int argc, char **argv) while ((cp = *argp++)) { if (*cp == '-') { - switch (smatch(++cp, whatnowswitches)) { + switch (smatch(++cp, switches)) { case AMBIGSW: - ambigsw(cp, whatnowswitches); + ambigsw(cp, switches); done(1); case UNKWNSW: adios(NULL, "-%s unknown", cp); @@ -145,7 +118,7 @@ main(int argc, char **argv) snprintf(buf, sizeof(buf), "%s [switches] [file]", invo_name); - print_help(buf, whatnowswitches, 1); + print_help(buf, switches, 1); done(1); case VERSIONSW: print_version(invo_name); @@ -399,6 +372,12 @@ main(int argc, char **argv) } break; + case WHOMSW: + /* list recipients */ + snprintf(buf, sizeof buf, "%s '%s'", "whom", drft); + system(buf); + break; + default: /* Unknown command */ advise(NULL, "say what?"); @@ -609,7 +588,7 @@ sendfile(char **arg, char *file) /* fall */ case OK: vecp = 0; - vec[vecp++] = invo_name; + vec[vecp++] = "send"; if (arg) while (*arg) vec[vecp++] = *arg++;