From 213dad2c099e381de87461c1e753bc6a4b83ac36 Mon Sep 17 00:00:00 2001 From: hiro Date: Thu, 20 Jan 2005 10:48:53 +0000 Subject: also migrate templates. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@25 ee746299-78ed-0310-b773-934348b2243d --- src/codeconv.c | 35 +++++++++++++++++++++++++++++++++++ src/codeconv.h | 3 +++ src/main.c | 3 +++ 3 files changed, 41 insertions(+) (limited to 'src') diff --git a/src/codeconv.c b/src/codeconv.c index 3502f1d3..28659b2f 100644 --- a/src/codeconv.c +++ b/src/codeconv.c @@ -1812,3 +1812,38 @@ gint conv_copy_file(const gchar *src, const gchar *dest, const gchar *encoding) return 0; } + +gint conv_copy_dir(const gchar *src, const gchar *dest, const gchar *encoding) +{ + DIR *dp; + struct dirent *d; + gchar *src_file; + gchar *dest_file; + + if ((dp = opendir(src)) == NULL) { + FILE_OP_ERROR(src, "opendir"); + return -1; + } + + if (make_dir_hier(dest) < 0) { + closedir(dp); + return -1; + } + + while ((d = readdir(dp)) != NULL) { + if (!strcmp(d->d_name, ".") || !strcmp(d->d_name, "..")) + continue; + + src_file = g_strconcat(src, G_DIR_SEPARATOR_S, d->d_name, NULL); + dest_file = g_strconcat(dest, G_DIR_SEPARATOR_S, d->d_name, + NULL); + if (is_file_exist(src_file)) + conv_copy_file(src_file, dest_file, encoding); + g_free(dest_file); + g_free(src_file); + } + + closedir(dp); + + return 0; +} diff --git a/src/codeconv.h b/src/codeconv.h index 2c1ff3c7..7f3fee8c 100644 --- a/src/codeconv.h +++ b/src/codeconv.h @@ -240,5 +240,8 @@ void conv_encode_header (gchar *dest, gint conv_copy_file (const gchar *src, const gchar *dest, const gchar *src_encoding); +gint conv_copy_dir (const gchar *src, + const gchar *dest, + const gchar *src_encoding); #endif /* __CODECONV_H__ */ diff --git a/src/main.c b/src/main.c index 45112282..65a755a4 100644 --- a/src/main.c +++ b/src/main.c @@ -722,6 +722,9 @@ static void migrate_old_config(void) copy_file(OLD_RC_DIR G_DIR_SEPARATOR_S FOLDER_LIST, RC_DIR G_DIR_SEPARATOR_S FOLDER_LIST, FALSE); + conv_copy_dir(OLD_RC_DIR G_DIR_SEPARATOR_S TEMPLATE_DIR, + RC_DIR G_DIR_SEPARATOR_S TEMPLATE_DIR, + conv_get_locale_charset_str()); copy_dir(OLD_RC_DIR G_DIR_SEPARATOR_S "uidl", RC_DIR G_DIR_SEPARATOR_S "uidl"); -- cgit v1.2.3