* mailboxes.
*/
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <dirent.h>
-#include <limits.h>
-#include <unistd.h>
-#include <fcntl.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <errno.h>
-#include <string.h>
+#include <lib-lib/lib-lib.h>
#include <utime.h>
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-#include <lib-lib/mem.h>
-#include <lib-lib/str.h>
-#include <lib-lib/macros.h>
-#include <lib-lib/file.h>
-#include <lib-lib/debug.h>
+#include <lib-ui/curses.h>
#include "mutt.h"
#include "mx.h"
/* XXX - we don't currently remove deleted messages from sequences we don't know. Should we? */
-void mh_update_sequences (CONTEXT * ctx)
+static void mh_update_sequences (CONTEXT * ctx)
{
FILE *ofp, *nfp;
/* FOO - really ignore the return value? */
- debug_print (2, ("parsing %s\n", de->d_name));
maildir_parse_entry (ctx, last, subdir, de->d_name, count, is_old,
#if HAVE_DIRENT_D_INO
de->d_ino
while (md) {
- debug_print (2, ("considering %s\n", NONULL (md->canon_fname)));
-
if (md->h) {
- debug_print (2, ("flags: %s%s%s%s%s\n", md->h->flagged ? "f" : "",
- md->h->deleted ? "D" : "", md->h->replied ? "r" : "",
- md->h->old ? "O" : "", md->h->read ? "R" : ""));
if (ctx->msgcount == ctx->hdrmax)
mx_alloc_memory (ctx);
* This function does the second parsing pass for a maildir-style
* folder.
*/
-void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md)
+static void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md)
{
struct maildir *p;
char fn[_POSIX_PATH_MAX];
return mh_mkstemp (dest, &msg->fp, &msg->path);
}
-int ch_compar (const void *a, const void *b)
+static int ch_compar (const void *a, const void *b)
{
return (int) (*((const char *) a) - *((const char *) b));
}
dest->path, subdir, (long) time (NULL),
(unsigned int) getpid (), Counter++, NONULL (Hostname), suffix);
- debug_print (2, ("trying %s.\n", path));
-
umask (Umask);
if ((fd = open (path, O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) {
if (errno != EEXIST) {
mutt_perror (path);
return -1;
}
- }
- else {
- debug_print (2, ("success.\n"));
+ } else {
msg->path = m_strdup(path);
break;
}
NONULL (Hostname), suffix);
snprintf (full, _POSIX_PATH_MAX, "%s/%s", ctx->path, path);
- debug_print (2, ("renaming %s to %s.\n", msg->path, full));
-
if (safe_rename (msg->path, full) == 0) {
if (hdr)
m_strreplace(&hdr->path, path);
h->lines = old_hdr_lines;
}
- mutt_free_body (&h->content->parts);
+ body_list_wipe(&h->content->parts);
return rc;
}
char *p;
if ((p = strrchr (h->path, '/')) == NULL) {
- debug_print (1, ("%s: unable to find subdir!\n", h->path));
return (-1);
}
p++;
* then again, it's called rarely.
*/
-FILE *_maildir_open_find_message (const char *folder, const char *unique,
- const char *subfolder)
+static FILE *_maildir_open_find_message (const char *folder, const char *unique,
+ const char *subfolder)
{
char dir[_POSIX_PATH_MAX];
char tunique[_POSIX_PATH_MAX];
* 0 if there are messages in the mailbox
* -1 on error
*/
-int mh_check_empty (const char *path)
+static int mh_check_empty (const char *path)
{
DIR *dp;
struct dirent *de;
return (-1);
}
-/* routines common to maildir and mh */
-static mx_t* reg_mx (void) {
- mx_t* fmt = p_new(mx_t, 1);
- fmt->local = 1;
- fmt->mx_access = access;
- fmt->mx_sync_mailbox = mh_sync_mailbox;
- return (fmt);
-}
-
static int mh_commit (MESSAGE* msg, CONTEXT* ctx) {
return (mh_commit_message (msg, ctx, NULL));
}
return (maildir_commit_message (msg, ctx, NULL));
}
-mx_t* mh_reg_mx (void) {
- mx_t* fmt = reg_mx ();
- fmt->type = M_MH;
- fmt->mx_check_empty = mh_check_empty;
- fmt->mx_is_magic = mh_is_magic;
- fmt->mx_open_mailbox = mh_read_dir;
- fmt->mx_open_new_message = mh_open_new_message;
- fmt->mx_check_mailbox = mh_check_mailbox;
- fmt->mx_commit_message = mh_commit;
- return (fmt);
-}
+mx_t const maildir_mx = {
+ M_MAILDIR,
+ 1,
+ maildir_is_magic,
+ maildir_check_empty,
+ access,
+ maildir_read_dir,
+ maildir_open_new_message,
+ NULL,
+ maildir_check_mailbox,
+ NULL,
+ mh_sync_mailbox,
+ maildir_commit
+};
-mx_t* maildir_reg_mx (void) {
- mx_t* fmt = reg_mx ();
- fmt->type = M_MAILDIR;
- fmt->mx_check_empty = maildir_check_empty;
- fmt->mx_is_magic = maildir_is_magic;
- fmt->mx_open_mailbox = maildir_read_dir;
- fmt->mx_open_new_message = maildir_open_new_message;
- fmt->mx_check_mailbox = maildir_check_mailbox;
- fmt->mx_commit_message = maildir_commit;
- return (fmt);
-}
+mx_t const mh_mx = {
+ M_MH,
+ 1,
+ mh_is_magic,
+ mh_check_empty,
+ access,
+ mh_read_dir,
+ mh_open_new_message,
+ NULL,
+ mh_check_mailbox,
+ NULL,
+ mh_sync_mailbox,
+ mh_commit
+};