X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=mbox.c;h=5f76334032d67b348f77e01656105518a4a4c76b;hp=3b9fba0ab0991558f0bd7988aee7ef80da1b31dd;hb=dbacadf0ce81052365d7a43373ac7d4ac67ff91e;hpb=2ea77d3b2827ba23feb756ce2fb936565ae38998 diff --git a/mbox.c b/mbox.c index 3b9fba0..5f76334 100644 --- a/mbox.c +++ b/mbox.c @@ -13,9 +13,22 @@ # include "config.h" #endif +#include +#include +#include +#include +#include +#include +#include +#include + #include #include #include +#include +#include + +#include #include "mutt.h" #include "mx.h" @@ -24,21 +37,7 @@ #include "sort.h" #include "thread.h" #include "copy.h" - -#ifdef USE_COMPRESSED #include "compress.h" -#endif - -#include "lib/debug.h" - -#include -#include -#include -#include -#include -#include -#include -#include /* struct used by mutt_sync_mailbox() to store new offsets */ struct m_update_t { @@ -50,7 +49,7 @@ struct m_update_t { }; -static int mbox_open_new_message (MESSAGE * msg, CONTEXT * dest, HEADER * hdr) +static int mbox_open_new_message (MESSAGE * msg, CONTEXT * dest, HEADER * hdr __attribute__ ((unused))) { msg->fp = dest->fp; return 0; @@ -99,10 +98,6 @@ static int mmdf_parse_mailbox (CONTEXT * ctx) HEADER *hdr; struct stat sb; -#ifdef NFS_ATTRIBUTE_HACK - struct utimbuf newtime; -#endif - if (stat (ctx->path, &sb) == -1) { mutt_perror (ctx->path); return (-1); @@ -110,21 +105,13 @@ static int mmdf_parse_mailbox (CONTEXT * ctx) ctx->mtime = sb.st_mtime; ctx->size = sb.st_size; -#ifdef NFS_ATTRIBUTE_HACK - if (sb.st_mtime > sb.st_atime) { - newtime.modtime = sb.st_mtime; - newtime.actime = time (NULL); - utime (ctx->path, &newtime); - } -#endif - /* precompute the local timezone to speed up calculation of the received time */ tz = mutt_local_tz (0); buf[sizeof (buf) - 1] = 0; - FOREVER { + for (;;) { if (fgets (buf, sizeof (buf) - 1, ctx->fp) == NULL) break; @@ -139,7 +126,7 @@ static int mmdf_parse_mailbox (CONTEXT * ctx) if (ctx->msgcount == ctx->hdrmax) mx_alloc_memory (ctx); - ctx->hdrs[ctx->msgcount] = hdr = mutt_new_header (); + ctx->hdrs[ctx->msgcount] = hdr = header_new(); hdr->offset = loc; hdr->index = ctx->msgcount; @@ -202,7 +189,7 @@ static int mmdf_parse_mailbox (CONTEXT * ctx) rfc822_parse_adrlist (hdr->env->return_path, return_path); if (!hdr->env->from) - hdr->env->from = rfc822_cpy_adr (hdr->env->return_path); + hdr->env->from = address_list_dup (hdr->env->return_path); ctx->msgcount++; } @@ -235,10 +222,6 @@ static int mbox_parse_mailbox (CONTEXT * ctx) int count = 0, lines = 0; off_t loc; -#ifdef NFS_ATTRIBUTE_HACK - struct utimbuf newtime; -#endif - /* Save information about the folder at the time we opened it. */ if (stat (ctx->path, &sb) == -1) { mutt_perror (ctx->path); @@ -248,14 +231,6 @@ static int mbox_parse_mailbox (CONTEXT * ctx) ctx->size = sb.st_size; ctx->mtime = sb.st_mtime; -#ifdef NFS_ATTRIBUTE_HACK - if (sb.st_mtime > sb.st_atime) { - newtime.modtime = sb.st_mtime; - newtime.actime = time (NULL); - utime (ctx->path, &newtime); - } -#endif - if (!ctx->readonly) ctx->readonly = access (ctx->path, W_OK) ? 1 : 0; @@ -288,7 +263,7 @@ static int mbox_parse_mailbox (CONTEXT * ctx) if (ctx->msgcount == ctx->hdrmax) mx_alloc_memory (ctx); - curhdr = ctx->hdrs[ctx->msgcount] = mutt_new_header (); + curhdr = ctx->hdrs[ctx->msgcount] = header_new(); curhdr->received = t - tz; curhdr->offset = loc; curhdr->index = ctx->msgcount; @@ -312,7 +287,7 @@ static int mbox_parse_mailbox (CONTEXT * ctx) */ if (fseeko (ctx->fp, tmploc, SEEK_SET) != 0 || fgets (buf, sizeof (buf), ctx->fp) == NULL || - str_ncmp ("From ", buf, 5) != 0) { + m_strncmp("From ", buf, 5) != 0) { debug_print (1, ("bad content-length in message %d (cl=%zd)\n", curhdr->index, curhdr->content->length)); debug_print (1, ("LINE: %s\n", buf)); @@ -358,7 +333,7 @@ static int mbox_parse_mailbox (CONTEXT * ctx) rfc822_parse_adrlist (curhdr->env->return_path, return_path); if (!curhdr->env->from) - curhdr->env->from = rfc822_cpy_adr (curhdr->env->return_path); + curhdr->env->from = address_list_dup (curhdr->env->return_path); lines = 0; } @@ -469,7 +444,7 @@ static int _mbox_check_mailbox (CONTEXT * ctx, int *index_hint) if (fseeko (ctx->fp, ctx->size, SEEK_SET) != 0) debug_print (1, ("fseeko() failed\n")); if (fgets (buffer, sizeof (buffer), ctx->fp) != NULL) { - if ((ctx->magic == M_MBOX && str_ncmp ("From ", buffer, 5) == 0) + if ((ctx->magic == M_MBOX && m_strncmp("From ", buffer, 5) == 0) || (ctx->magic == M_MMDF && m_strcmp(MMDF_SEP, buffer) == 0)) { if (fseeko (ctx->fp, ctx->size, SEEK_SET) != 0) debug_print (1, ("fseeko() failed\n")); @@ -546,7 +521,7 @@ static int mbox_check_mailbox (CONTEXT* ctx, int* index_hint, int lock) { * 0 success * -1 failure */ -static int _mbox_sync_mailbox (CONTEXT * ctx, int unused, int *index_hint) +static int _mbox_sync_mailbox (CONTEXT * ctx, int unused __attribute__ ((unused)), int *index_hint) { char tempfile[_POSIX_PATH_MAX]; char buf[32]; @@ -751,7 +726,7 @@ static int _mbox_sync_mailbox (CONTEXT * ctx, int unused, int *index_hint) if (fseeko (ctx->fp, offset, SEEK_SET) != 0 || /* seek the append location */ /* do a sanity check to make sure the mailbox looks ok */ fgets (buf, sizeof (buf), ctx->fp) == NULL || - (ctx->magic == M_MBOX && str_ncmp ("From ", buf, 5) != 0) || + (ctx->magic == M_MBOX && m_strncmp("From ", buf, 5) != 0) || (ctx->magic == M_MMDF && m_strcmp(MMDF_SEP, buf) != 0)) { debug_print (1, ("message not in expected position.\n")); debug_print (1, ("LINE: %s\n", buf)); @@ -887,10 +862,8 @@ int mbox_close_mailbox (CONTEXT * ctx) { mx_unlock_file (ctx->path, fileno (ctx->fp), 1); -#ifdef USE_COMPRESSED if (ctx->compressinfo) mutt_slow_close_compressed (ctx); -#endif mutt_unblock_signals (); mx_fastclose_mailbox (ctx); @@ -934,7 +907,7 @@ static int mbox_reopen_mailbox (CONTEXT * ctx, int *index_hint) p_delete(&ctx->v2r); if (ctx->readonly) { for (i = 0; i < ctx->msgcount; i++) - mutt_free_header (&(ctx->hdrs[i])); /* nothing to do! */ + header_delete(&(ctx->hdrs[i])); /* nothing to do! */ p_delete(&ctx->hdrs); } else { @@ -980,7 +953,7 @@ static int mbox_reopen_mailbox (CONTEXT * ctx, int *index_hint) if (rc == -1) { /* free the old headers */ for (j = 0; j < old_msgcount; j++) - mutt_free_header (&(old_hdrs[j])); + header_delete(&(old_hdrs[j])); p_delete(&old_hdrs); ctx->quiet = 0; @@ -1038,14 +1011,14 @@ static int mbox_reopen_mailbox (CONTEXT * ctx, int *index_hint) mutt_set_flag (ctx, ctx->hdrs[i], M_TAG, old_hdrs[j]->tagged); /* we don't need this header any more */ - mutt_free_header (&(old_hdrs[j])); + header_delete(&(old_hdrs[j])); } } /* free the remaining old headers */ for (j = 0; j < old_msgcount; j++) { if (old_hdrs[j]) { - mutt_free_header (&(old_hdrs[j])); + header_delete(&(old_hdrs[j])); msg_mod = 1; } } @@ -1093,7 +1066,7 @@ int mbox_is_magic (const char* path, struct stat* st) { struct utimbuf times; #endif fgets (tmp, sizeof (tmp), f); - if (str_ncmp ("From ", tmp, 5) == 0) + if (m_strncmp("From ", tmp, 5) == 0) magic = M_MBOX; else if (m_strcmp(MMDF_SEP, tmp) == 0) magic = M_MMDF; @@ -1112,14 +1085,12 @@ int mbox_is_magic (const char* path, struct stat* st) { return (-1); /* fopen failed */ } -#ifdef USE_COMPRESSED if (magic == -1 && mutt_can_read_compressed (path)) return (M_COMPRESSED); -#endif return (magic); } -static int commit_message (MESSAGE* msg, CONTEXT* ctx, int mbox) { +static int commit_message (MESSAGE* msg, CONTEXT* ctx __attribute__ ((unused)), int mbox) { if ((mbox && fputc ('\n', msg->fp) == EOF) || (!mbox && fputs (MMDF_SEP, msg->fp) == EOF)) return (-1);