#include #include #include #include #include extern const char *__progname; #include "seq.h" #include "format.h" #include "msgarg.h" #include "folder.h" #include "system.h" #include "context.h" #include "message.h" #include "profile.h" static int nargs; static char **argstr; static ARG *args; static FOLDER *curfolder; static FOLDER *msgfolder; static FORMAT *fmt; static const char *progtag = "ls"; static void crack_arglist(int ac, char **av) { char *arg; int errs; for (ac--,av++;ac;ac--,av++) { if ((ac > 1) && !strcmp(*av,"-prog")) { progtag = av[1]; ac --; av ++; continue; } break; } nargs = 0; args = malloc(ac*sizeof(ARG)); argstr = malloc(ac*sizeof(char *)); errs = 0; for (;ac;ac--,av++) { arg = *av; if (! msgarg_parse(arg,args+nargs,0)) { fprintf(stderr,"%s: invalid argument `%s'\n",__progname,arg); errs ++; } else { argstr[nargs] = arg; nargs ++; } } if (errs) exit(1); } static void printline(const char *s, void *cookie __attribute__((__unused__))) { printf("%s\n",s); } static void process_it(MESSAGE *m) { format_run(fmt,m,printline,printline,0,FOPT_END); } static void do_messages(int *vec, int nv, void *cookie __attribute__((__unused__))) { MESSAGE *m; int i; for (i=0;i??\ s-\"(MULTIPLE)\"?|haa?.$+\": \"hs(Subject)$+$+\ ",EXT_WIDTH,EXT_END); s = context_lookup("folder"); if (s) { folder_lookup(s,&curfolder,0); free(s); } else { curfolder = 0; } for (a=0;a= nargs) { for (a=0;afolder = 0; args->type = AT_RANGE; args->u.range.first = MA_LIMIT; args->u.range.last = MA_LIMIT; nargs = 1; } for (a=0;a