diff options
Diffstat (limited to 'mail')
-rw-r--r-- | mail/ChangeLog | 8 | ||||
-rw-r--r-- | mail/importers/elm-importer.c | 5 | ||||
-rw-r--r-- | mail/importers/evolution-mbox-importer.c | 11 | ||||
-rw-r--r-- | mail/importers/evolution-outlook-importer.c | 9 | ||||
-rw-r--r-- | mail/importers/mail-importer.c | 27 | ||||
-rw-r--r-- | mail/importers/netscape-importer.c | 3 | ||||
-rw-r--r-- | mail/importers/pine-importer.c | 5 |
7 files changed, 45 insertions, 23 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 7b11b14a0a..0d1c0c9236 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -29,6 +29,14 @@ * mail-tools.c (mail_tool_get_local_movemail_path): Not used, put in #if 0. + * importers/elm-importer.c + * importers/evolution-mbox-importer.c + * importers/evolution-outlook-importer.c + * importers/mail-importer.c + * importers/netscape-importer.c + * importers/pine-importer.c: Use GLib API when + applicable. + 2005-12-12 Karsten BrÀckelmann <guenther@rudersport.de> * em-folder-view.c: Mail Context Menu re-ordered correctly, diff --git a/mail/importers/elm-importer.c b/mail/importers/elm-importer.c index 7d8abdfa04..cf8479ef90 100644 --- a/mail/importers/elm-importer.c +++ b/mail/importers/elm-importer.c @@ -159,7 +159,6 @@ elm_supported(EImport *ei, EImportTarget *target, EImportImporter *im) const char *maildir; char *elmdir; gboolean mailexists, exists; - struct stat st; if (target->type != E_IMPORT_TARGET_HOME) return FALSE; @@ -167,7 +166,7 @@ elm_supported(EImport *ei, EImportTarget *target, EImportImporter *im) s = (EImportTargetHome *)target; elmdir = g_build_filename(s->homedir, ".elm", NULL); - exists = lstat(elmdir, &st) == 0 && S_ISDIR(st.st_mode); + exists = g_file_test(elmdir, G_FILE_TEST_IS_DIR); g_free(elmdir); if (!exists) return FALSE; @@ -181,7 +180,7 @@ elm_supported(EImport *ei, EImportTarget *target, EImportImporter *im) else elmdir = g_strdup (maildir); - mailexists = lstat(elmdir, &st) == 0 && S_ISDIR(st.st_mode); + mailexists = g_file_test(elmdir, G_FILE_TEST_IS_DIR); g_free (elmdir); return mailexists; diff --git a/mail/importers/evolution-mbox-importer.c b/mail/importers/evolution-mbox-importer.c index 804a137543..32d0ab60ef 100644 --- a/mail/importers/evolution-mbox-importer.c +++ b/mail/importers/evolution-mbox-importer.c @@ -40,6 +40,7 @@ #include <gtk/gtklabel.h> #include <glib/gi18n.h> +#include <glib/gstdio.h> #include <camel/camel-exception.h> @@ -102,6 +103,7 @@ mbox_supported(EImport *ei, EImportTarget *target, EImportImporter *im) gboolean ret = FALSE; int fd, n; EImportTargetURI *s; + char *filename; if (target->type != E_IMPORT_TARGET_URI) return FALSE; @@ -113,7 +115,9 @@ mbox_supported(EImport *ei, EImportTarget *target, EImportImporter *im) if (strncmp(s->uri_src, "file:///", strlen("file:///")) != 0) return FALSE; - fd = open(s->uri_src + strlen("file://"), O_RDONLY); + filename = g_filename_from_uri(s->uri_src, NULL, NULL); + fd = g_open(filename, O_RDONLY, 0); + g_free(filename); if (fd != -1) { n = read(fd, signature, 5); ret = n == 5 && memcmp(signature, "From ", 5) == 0; @@ -178,6 +182,7 @@ static void mbox_import(EImport *ei, EImportTarget *target, EImportImporter *im) { MboxImporter *importer; + char *filename; /* TODO: do we validate target? */ @@ -189,7 +194,9 @@ mbox_import(EImport *ei, EImportTarget *target, EImportImporter *im) importer->status_timeout_id = g_timeout_add(100, mbox_status_timeout, importer); importer->cancel = camel_operation_new(mbox_status, importer); - mail_importer_import_mbox(((EImportTargetURI *)target)->uri_src+strlen("file://"), ((EImportTargetURI *)target)->uri_dest, importer->cancel, mbox_import_done, importer); + filename = g_filename_from_uri(((EImportTargetURI *)target)->uri_src, NULL, NULL); + mail_importer_import_mbox(filename, ((EImportTargetURI *)target)->uri_dest, importer->cancel, mbox_import_done, importer); + g_free(filename); } static void diff --git a/mail/importers/evolution-outlook-importer.c b/mail/importers/evolution-outlook-importer.c index ca04678260..04f14bfc01 100644 --- a/mail/importers/evolution-outlook-importer.c +++ b/mail/importers/evolution-outlook-importer.c @@ -34,6 +34,9 @@ #include <ctype.h> #include <string.h> +#include <glib.h> +#include <glib/gstdio.h> + #include <gtk/gtkhbox.h> #include <gtk/gtklabel.h> #include <gtk/gtkmessagedialog.h> @@ -51,6 +54,8 @@ #include <importer/evolution-importer.h> #include <importer/GNOME_Evolution_Importer.h> +#include <e-util/e-util-private.h> + #include "mail/em-folder-selection-button.h" #include "mail/mail-component.h" @@ -154,7 +159,7 @@ support_format_fn(EvolutionImporter *importer, const char *filename, void *data) Taken from liboe 0.92 (STABLE) Copyright (C) 2000 Stephan B. Nedregård (stephan@micropop.com) */ - handle = fopen (filename, "rb"); + handle = g_fopen (filename, "rb"); if (handle == NULL) return FALSE; /* Can't open file: Can't support it :) */ @@ -332,7 +337,7 @@ import_outlook_import(struct _mail_msg *mm) int fd; off_t pos; - fd = open(m->path, O_RDONLY); + fd = g_open(m->path, O_RDONLY|O_BINARY, 0); if (fd == -1) { g_warning("cannot find source file to import '%s': %s", m->path, g_strerror(errno)); goto fail; diff --git a/mail/importers/mail-importer.c b/mail/importers/mail-importer.c index e1a7110be7..f317797c1d 100644 --- a/mail/importers/mail-importer.c +++ b/mail/importers/mail-importer.c @@ -28,12 +28,14 @@ #include <string.h> #include <sys/types.h> -#include <dirent.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <fcntl.h> +#include <glib.h> +#include <glib/gstdio.h> + #include <gmodule.h> #include <libgnome/gnome-util.h> #include <libgnome/gnome-i18n.h> @@ -196,7 +198,7 @@ import_mbox_import(struct _mail_msg *mm) int fd; CamelMessageInfo *info; - if (stat(m->path, &st) == -1) { + if (g_stat(m->path, &st) == -1) { g_warning("cannot find source file to import '%s': %s", m->path, g_strerror(errno)); return; } @@ -212,7 +214,7 @@ import_mbox_import(struct _mail_msg *mm) if (S_ISREG(st.st_mode)) { CamelOperation *oldcancel = NULL; - fd = open(m->path, O_RDONLY); + fd = g_open(m->path, O_RDONLY|O_BINARY, 0); if (fd == -1) { g_warning("cannot find source file to import '%s': %s", m->path, g_strerror(errno)); goto fail1; @@ -359,13 +361,13 @@ struct _import_folders_data { static void import_folders_rec(struct _import_folders_data *m, const char *filepath, const char *folderparent) { - DIR *dir; - struct dirent *d; + GDir *dir; + const char *d; struct stat st; char *filefull, *foldersub, *uri, *utf8_filename; const char *folder; - dir = opendir(filepath); + dir = g_dir_open(filepath, 0, NULL); if (dir == NULL) return; @@ -373,21 +375,21 @@ import_folders_rec(struct _import_folders_data *m, const char *filepath, const c camel_operation_start(NULL, _("Scanning %s"), utf8_filename); g_free (utf8_filename); - while ( (d=readdir(dir)) ) { - if (d->d_name[0] == '.') + while ( (d=g_dir_read_name(dir))) { + if (d[0] == '.') continue; - filefull = g_build_filename(filepath, d->d_name, NULL); + filefull = g_build_filename(filepath, d, NULL); /* skip non files and directories, and skip directories in mozilla mode */ - if (stat(filefull, &st) == -1 + if (g_stat(filefull, &st) == -1 || !(S_ISREG(st.st_mode) || (m->elmfmt && S_ISDIR(st.st_mode)))) { g_free(filefull); continue; } - folder = d->d_name; + folder = d; if (folderparent == NULL) { int i; @@ -412,7 +414,7 @@ import_folders_rec(struct _import_folders_data *m, const char *filepath, const c g_free(filefull); filefull = tmp; - if (stat(filefull, &st) == -1) { + if (g_stat(filefull, &st) == -1) { g_free(filefull); continue; } @@ -426,6 +428,7 @@ import_folders_rec(struct _import_folders_data *m, const char *filepath, const c g_free(filefull); } + g_dir_close(dir); camel_operation_end(NULL); } diff --git a/mail/importers/netscape-importer.c b/mail/importers/netscape-importer.c index d36f98ce73..518ca2fd4c 100644 --- a/mail/importers/netscape-importer.c +++ b/mail/importers/netscape-importer.c @@ -36,6 +36,7 @@ #include <dirent.h> #include <glib.h> +#include <glib/gstdio.h> #include <gnome.h> #include <gconf/gconf.h> @@ -1652,7 +1653,7 @@ is_dir_empty (const char *path) } fullpath = g_build_filename(path, contents->d_name, NULL); - if (lstat (fullpath, &buf) == -1) { + if (g_lstat (fullpath, &buf) == -1) { g_free(fullpath); continue; } diff --git a/mail/importers/pine-importer.c b/mail/importers/pine-importer.c index ea6c9b669b..05f893f678 100644 --- a/mail/importers/pine-importer.c +++ b/mail/importers/pine-importer.c @@ -74,7 +74,6 @@ pine_supported(EImport *ei, EImportTarget *target, EImportImporter *im) EImportTargetHome *s; char *maildir, *addrfile; gboolean md_exists, addr_exists; - struct stat st; if (target->type != E_IMPORT_TARGET_HOME) return FALSE; @@ -82,11 +81,11 @@ pine_supported(EImport *ei, EImportTarget *target, EImportImporter *im) s = (EImportTargetHome *)target; maildir = g_build_filename(s->homedir, "mail", NULL); - md_exists = lstat(maildir, &st) == 0 && S_ISDIR(st.st_mode); + md_exists = g_file_test(maildir, G_FILE_TEST_IS_DIR); g_free(maildir); addrfile = g_build_filename(s->homedir, ".addressbook", NULL); - addr_exists = lstat(addrfile, &st) == 0 && S_ISREG(st.st_mode); + addr_exists = g_file_test(addrfile, G_FILE_TEST_IS_REGULAR); g_free (addrfile); return md_exists || addr_exists; |