*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
*/
#ifdef HAVE_CONFIG_H
if (max < num)
max = num;
}
+ if (num % 100 == 0)
+ GTK_EVENTS_FLUSH();
}
closedir(dp);
GRelation *relation)
{
gboolean dest_need_scan = FALSE;
+ gboolean src_need_scan = FALSE;
+ FolderItem *src = NULL;
gchar *srcfile;
gchar *destfile;
gint filemode = 0;
gint curnum = 0, total = 0;
gchar *srcpath = NULL;
gboolean full_fetch = FALSE;
- time_t last_mtime = (time_t)0;
+ time_t last_dest_mtime = (time_t)0;
+ time_t last_src_mtime = (time_t)0;
g_return_val_if_fail(dest != NULL, -1);
g_return_val_if_fail(msglist != NULL, -1);
if (msginfo->folder->folder != dest->folder)
full_fetch = TRUE;
+
+ if (FOLDER_TYPE(msginfo->folder->folder) == F_MH) {
+ src = msginfo->folder;
+ }
if (dest->last_num < 0) {
mh_get_last_num(folder, dest);
srcpath = folder_item_get_path(msginfo->folder);
dest_need_scan = mh_scan_required(dest->folder, dest);
- last_mtime = dest->mtime;
+ last_dest_mtime = dest->mtime;
+
+ if (src) {
+ src_need_scan = mh_scan_required(src->folder, src);
+ last_src_mtime = src->mtime;
+ }
total = g_slist_length(msglist);
if (total > 100) {
g_free(srcpath);
mh_write_sequences(dest, TRUE);
- if (dest->mtime == last_mtime && !dest_need_scan) {
+ if (dest->mtime == last_dest_mtime && !dest_need_scan) {
mh_set_mtime(dest);
}
+
+ if (src && src->mtime == last_src_mtime && !src_need_scan) {
+ mh_set_mtime(src);
+ }
+
if (total > 100) {
statusbar_progress_all(0,0,0);
statusbar_pop_all();
gchar *real_path = g_filename_from_utf8(path, -1, NULL, NULL, NULL);
if (!real_path) {
- g_warning("mh_filename_from_utf8: faild to convert character set\n");
+ g_warning("mh_filename_from_utf8: failed to convert character set\n");
real_path = g_strdup(path);
}
{
gchar *utf8path = g_filename_to_utf8(path, -1, NULL, NULL, NULL);
if (!utf8path) {
- g_warning("mh_filename_to_utf8: faild to convert character set\n");
+ g_warning("mh_filename_to_utf8: failed to convert character set\n");
utf8path = g_strdup(path);
}