aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2007-01-30 08:26:06 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2007-01-30 08:26:06 +0000
commita381897d19f69b21bbb072e3559ea13d5953b58a (patch)
tree7eaa1fccd9078275bd47131ea4201a62b17beb42
parent490f8a3c8523df7b71399d30cf61fd3e503c54da (diff)
also scan symbolic links on MH mailboxes.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@1513 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r--ChangeLog6
-rw-r--r--ChangeLog.ja7
-rw-r--r--configure.in2
-rw-r--r--libsylph/mh.c2
-rw-r--r--libsylph/utils.c11
5 files changed, 24 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 96760ebe..3645919a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2007-01-30
+ * libsylph/mh.c: mh_scan_tree_recursive(): also scan symbolic links.
+ * libsylph/utils.c: remove_dir_recursive_real(): if rmdir() fails,
+ try unlink() for symbolic links.
+
+2007-01-30
+
* src/mainwindow.[ch]
src/prefs_toolbar.[ch]: added new toolbar items.
diff --git a/ChangeLog.ja b/ChangeLog.ja
index 41bfbedd..f9637cf1 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,5 +1,12 @@
2007-01-30
+ * libsylph/mh.c: mh_scan_tree_recursive(): シンボリックリンクも
+ スキャンするようにした。
+ * libsylph/utils.c: remove_dir_recursive_real(): rmdir() が失敗した
+ 場合は unlink() を試すようにした(シンボリックリンクの対策)。
+
+2007-01-30
+
* src/mainwindow.[ch]
src/prefs_toolbar.[ch]: ツールバーの項目を新規に追加。
diff --git a/configure.in b/configure.in
index bdab124e..15e39b07 100644
--- a/configure.in
+++ b/configure.in
@@ -9,7 +9,7 @@ MINOR_VERSION=4
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=beta1
+EXTRA_VERSION=beta2
BUILD_REVISION=0
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
diff --git a/libsylph/mh.c b/libsylph/mh.c
index 12c1c966..b677f9fc 100644
--- a/libsylph/mh.c
+++ b/libsylph/mh.c
@@ -1520,7 +1520,7 @@ static void mh_scan_tree_recursive(FolderItem *item)
#else
#if HAVE_DIRENT_D_TYPE
d->d_type == DT_DIR ||
- (d->d_type == DT_UNKNOWN &&
+ ((d->d_type == DT_UNKNOWN || d->d_type == DT_LNK) &&
#endif
g_stat(entry, &s) == 0 && S_ISDIR(s.st_mode)
#if HAVE_DIRENT_D_TYPE
diff --git a/libsylph/utils.c b/libsylph/utils.c
index 5e3ba645..85758fe3 100644
--- a/libsylph/utils.c
+++ b/libsylph/utils.c
@@ -2425,8 +2425,15 @@ static gint remove_dir_recursive_real(const gchar *dir)
g_free(prev_dir);
if (g_rmdir(dir) < 0) {
- FILE_OP_ERROR(dir, "rmdir");
- return -1;
+ if (ENOTDIR == errno) {
+ if (g_unlink(dir) < 0) {
+ FILE_OP_ERROR(dir, "unlink");
+ return -1;
+ }
+ } else {
+ FILE_OP_ERROR(dir, "rmdir");
+ return -1;
+ }
}
return 0;