comparison buddytrans.c @ 75:6419cd5286ae

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