Add support for tab-completion when selecting by rule
[alpine.git] / contrib / carmel / c-client / bzk2cml.c
blobfcff6438b95d75159de1a4638c53e663e1bd72ba
1 #include <stdio.h>
2 #include <ctype.h>
3 #include <pwd.h>
4 #include <sys/dir.h>
5 #include "mail.h"
6 #include "osdep.h"
7 #include "carmel2.h"
8 #include "carmel.h"
10 char *last_path(), *cpystr();
11 void carmel2_bezerk_mail();
12 extern DRIVER carmeldriver;
14 extern char carmel_20k_buf[20000];
17 main(argc, argv)
18 int argc;
19 char **argv;
21 char carmel_folder[500], *bezerk_folder;
22 MAILSTREAM *stream;
24 if(argc <= 1) {
25 fprintf(stderr, "Usage: bzk2cml <folder>\n");
26 exit(-1);
29 for(argv++; *argv != NULL; argv++) {
30 bezerk_folder = last_path(*argv); /* Only last component of path */
31 sprintf(carmel_folder, "#carmel#%s", bezerk_folder);
33 if(carmel_create(NULL, carmel_folder) == 0) {
34 continue;
38 stream = (MAILSTREAM *)fs_get(sizeof(MAILSTREAM));
39 stream->dtb = &carmeldriver;
40 stream->mailbox = cpystr(carmel_folder);
41 stream->local = NULL;
43 if(carmel_open(stream) == NULL) {
44 continue;
47 if(carmel2_lock(stream, stream->mailbox, WRITE_LOCK) < 0) {
48 fprintf(stderr, "Carmel folder %s locked\n", carmel_folder);
49 carmel_close(stream);
50 continue;
53 carmel2_spool_mail(stream, *argv, stream->mailbox, 0);
54 carmel2_unlock(stream, stream->mailbox, WRITE_LOCK);
55 fprintf(stderr, "Folder \"%s\" copied to \"%s\"\n", *argv,
56 carmel_folder);
57 carmel_close(stream);
68 char *last_path(path)
69 char *path;
71 char *p;
73 p = path + strlen(path) - 1;
75 while(p > path && *p != '/')
76 p--;
78 if(*p == '/')
79 p++;
80 return(p);
83 void
84 mm_log(mess, code)
85 char *mess;
86 int code;
88 fprintf(stderr, "%s\n", mess);
91 void
92 mm_fatal()
94 abort();
97 void mm_mailbox() {}
98 void mm_critical() {}
99 void mm_nocritical() {}
100 void mm_searched() {}
101 void mm_exists() {}
102 void mm_expunged() {}