static gint mh_create_tree(Folder *folder) { gchar *rootpath, *f; cm_return_val_if_fail(folder != NULL, -1); CHDIR_RETURN_VAL_IF_FAIL(get_mail_base_dir(), -1); rootpath = LOCAL_FOLDER(folder)->rootpath; MAKE_DIR_IF_NOT_EXIST(rootpath); CHDIR_RETURN_VAL_IF_FAIL(rootpath, -1); /* Create special directories as needed */ if (folder->inbox != NULL && folder->inbox->path != NULL) f = folder->inbox->path; else f = INBOX_DIR; MAKE_DIR_IF_NOT_EXIST(f); if (folder->outbox != NULL && folder->outbox->path != NULL) f = folder->outbox->path; else f = OUTBOX_DIR; MAKE_DIR_IF_NOT_EXIST(f); if (folder->draft != NULL && folder->draft->path != NULL) f = folder->draft->path; else f = DRAFT_DIR; MAKE_DIR_IF_NOT_EXIST(f); if (folder->queue != NULL && folder->queue->path != NULL) f = folder->queue->path; else f = QUEUE_DIR; MAKE_DIR_IF_NOT_EXIST(f); if (folder->trash != NULL && folder->trash->path != NULL) f = folder->trash->path; else f = TRASH_DIR; MAKE_DIR_IF_NOT_EXIST(f); return 0; }
gint syl_setup_rc_dir(void) { if (!is_dir_exist(get_rc_dir())) { if (make_dir_hier(get_rc_dir()) < 0) return -1; } MAKE_DIR_IF_NOT_EXIST(get_mail_base_dir()); CHDIR_RETURN_VAL_IF_FAIL(get_rc_dir(), -1); MAKE_DIR_IF_NOT_EXIST(get_imap_cache_dir()); MAKE_DIR_IF_NOT_EXIST(get_news_cache_dir()); MAKE_DIR_IF_NOT_EXIST(get_mime_tmp_dir()); MAKE_DIR_IF_NOT_EXIST(get_tmp_dir()); MAKE_DIR_IF_NOT_EXIST(UIDL_DIR); MAKE_DIR_IF_NOT_EXIST(PLUGIN_DIR); /* remove temporary files */ remove_all_files(get_tmp_dir()); remove_all_files(get_mime_tmp_dir()); return 0; }