Mercurial > pidgin
changeset 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 | e16ad7d73cd6 |
children | 4cef3d250f3c |
files | buddytrans.c |
diffstat | 1 files changed, 87 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/buddytrans.c Tue Mar 28 21:21:33 2000 +0000 @@ -0,0 +1,87 @@ +#include <fcntl.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +void do_trans(int, int); + +int main(int argc, char **argv) { + char *srcn; + char *destn; + int src; + int dest; + char *resp; + + + printf("Gaim - Buddy List Translator\n"); + printf("----------------------------\n"); + + if (argc != 3) { + printf("Syntax: %s buddy.lst gaimlist\n", argv[0]); + exit(0); + } + + srcn = argv[1]; + destn = argv[2]; + + if ((src = open(srcn, O_RDONLY)) != -1) { + printf("Source=%s, Dest=%s\n", srcn, destn); + + if ((dest = open(destn, O_WRONLY | O_CREAT | O_EXCL)) == -1) { + printf("%s exists! Should I continue? ", destn); + scanf("%s", resp); + if (strchr(resp, 'y') || strchr(resp, 'Y')) { + dest = open(destn, O_WRONLY | O_CREAT | + O_TRUNC); + do_trans(src, dest); + } else + exit(0); + } else + do_trans(src, dest); + printf("Conversion Complete.\n"); + } else { + printf("Source file must exist!\n\nSyntax: %s buddy.lst gaimlist\n", argv[0]); + exit(0); + } + return 0; +} + +void do_trans(int source, int destin) { + FILE *src; + FILE *dest; + char line[1024]; + + umask(644); + src = fdopen(source, "r"); + dest = fdopen(destin, "w"); + + fprintf(dest, "toc_set_config {m 1\n"); + while (fgets(line, sizeof line, src)) { + line[strlen(line) - 1] = 0; + if (strpbrk(line, "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ")) { + char *field, *name; + if (line[0] == ' ' || line[0] == '\t' || + line[0] == '\n' || line[0] == '\r' || + line[0] == '\f') + field = strdup(line + 1); + else + field = strdup(line); + name = strpbrk(field, " \t\n\r\f"); + name[0] = 0; + name += 2; + name[strlen(name) - 1] = 0; + printf("%s, %s\n", field, name); + if (!strcmp("group", field)) { + fprintf(dest, "g %s\n", name); + } else if (!strcmp("buddy", field)) { + fprintf(dest, "b %s\n", name); + } + } + } + fprintf(dest, "}"); + fclose(src); + fclose(dest); +}