buddytrans.c

Wed, 07 Feb 2001 21:46:40 +0000

author
Eric Warmenhoven <warmenhoven@yahoo.com>
date
Wed, 07 Feb 2001 21:46:40 +0000
changeset 1479
e7ec4ce61f5b
parent 82
33bc54b6c16a
permissions
-rw-r--r--

[gaim-migrate @ 1489]
save conversation history

75
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1 #include <fcntl.h>
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2 #include <sys/types.h>
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3 #include <sys/stat.h>
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4 #include <stdio.h>
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5 #include <stdlib.h>
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6 #include <string.h>
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
7
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
8 void do_trans(int, int);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
9
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
10 int main(int argc, char **argv) {
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
11 char *srcn;
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
12 char *destn;
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
13 int src;
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
14 int dest;
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
15 char *resp;
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
16
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
17
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
18 printf("Gaim - Buddy List Translator\n");
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
19 printf("----------------------------\n");
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
20
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
21 if (argc != 3) {
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
22 printf("Syntax: %s buddy.lst gaimlist\n", argv[0]);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
23 exit(0);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
24 }
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
25
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
26 srcn = argv[1];
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
27 destn = argv[2];
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
28
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
29 if ((src = open(srcn, O_RDONLY)) != -1) {
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
30 printf("Source=%s, Dest=%s\n", srcn, destn);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
31
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
32 if ((dest = open(destn, O_WRONLY | O_CREAT | O_EXCL)) == -1) {
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
33 printf("%s exists! Should I continue? ", destn);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
34 scanf("%s", resp);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
35 if (strchr(resp, 'y') || strchr(resp, 'Y')) {
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
36 dest = open(destn, O_WRONLY | O_CREAT |
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
37 O_TRUNC);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
38 do_trans(src, dest);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
39 } else
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
40 exit(0);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
41 } else
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
42 do_trans(src, dest);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
43 printf("Conversion Complete.\n");
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
44 } else {
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
45 printf("Source file must exist!\n\nSyntax: %s buddy.lst gaimlist\n", argv[0]);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
46 exit(0);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
47 }
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
48 return 0;
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
49 }
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
50
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
51 void do_trans(int source, int destin) {
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
52 FILE *src;
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
53 FILE *dest;
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
54 char line[1024];
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
55
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
56 umask(644);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
57 src = fdopen(source, "r");
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
58 dest = fdopen(destin, "w");
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
59
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
60 fprintf(dest, "toc_set_config {m 1\n");
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
61 while (fgets(line, sizeof line, src)) {
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
62 line[strlen(line) - 1] = 0;
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
63 if (strpbrk(line, "abcdefghijklmnopqrstuvwxyz"
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
64 "ABCDEFGHIJKLMNOPQRSTUVWXYZ")) {
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
65 char *field, *name;
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
66 if (line[0] == ' ' || line[0] == '\t' ||
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
67 line[0] == '\n' || line[0] == '\r' ||
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
68 line[0] == '\f')
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
69 field = strdup(line + 1);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
70 else
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
71 field = strdup(line);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
72 name = strpbrk(field, " \t\n\r\f");
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
73 name[0] = 0;
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
74 name += 2;
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
75 name[strlen(name) - 1] = 0;
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
76 printf("%s, %s\n", field, name);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
77 if (!strcmp("group", field)) {
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
78 fprintf(dest, "g %s\n", name);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
79 } else if (!strcmp("buddy", field)) {
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
80 fprintf(dest, "b %s\n", name);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
81 }
82
33bc54b6c16a [gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 75
diff changeset
82 free(field);
75
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
83 }
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
84 }
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
85 fprintf(dest, "}");
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
86 fclose(src);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
87 fclose(dest);
ddc473229c53 [gaim-migrate @ 85]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
88 }

mercurial