X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-mx%2Fcompress.c;h=22fe01e838847c87484c4bbb64da029631aa83a7;hp=9e44f340c65de5f2497814921aa3d81d442538a9;hb=ec42b5f9dbca7a552524c138f6764671612fe385;hpb=fbb5e4651a646bb9556c43f26eca110a42274105 diff --git a/lib-mx/compress.c b/lib-mx/compress.c index 9e44f34..22fe01e 100644 --- a/lib-mx/compress.c +++ b/lib-mx/compress.c @@ -12,7 +12,7 @@ #include #include -#include +#include #include "mutt.h" @@ -174,7 +174,7 @@ int mutt_check_mailbox_compressed (CONTEXT * ctx) return 0; } -int mutt_open_read_compressed (CONTEXT * ctx) +int mutt_open_read_compressed(CONTEXT * ctx) { char *cmd; FILE *fp; @@ -196,17 +196,16 @@ int mutt_open_read_compressed (CONTEXT * ctx) ctx->realpath = ctx->path; /* Uncompress to /tmp */ - tmpfd = m_tempfd(tmppath, sizeof(tmppath), NONULL(Tempdir), NULL); + tmpfd = m_tempfd(tmppath, sizeof(tmppath), NONULL(mod_core.tmpdir), NULL); /* If we cannot open tempfile, that means the file already exists (!?) * or we are following a symlink, which is bad and insecure. */ - if(!tmpfd) { + if(tmpfd < 0) { return -1; } close(tmpfd); - - ctx->path = p_dupstr(tmppath, m_strlen(tmppath)); + ctx->path = p_dupstr(tmppath, m_strlen(tmppath)); ctx->cinfo->size = get_size(ctx->realpath); if (!ctx->quiet) @@ -267,7 +266,7 @@ static void restore_path (CONTEXT * ctx) /* remove the temporary mailbox */ static void remove_file (CONTEXT * ctx) { - if (ctx->magic == M_MBOX || ctx->magic == M_MMDF) + if (ctx->magic == M_MBOX) remove (ctx->path); } @@ -279,7 +278,7 @@ int mutt_open_append_compressed (CONTEXT * ctx) if (!get_append_command (ctx->path, ctx)) { if (ci->open && ci->close) - return mutt_open_read_compressed (ctx); + return mutt_open_read_compressed(ctx); ctx->magic = 0; p_delete(&ctx->cinfo); @@ -290,20 +289,17 @@ int mutt_open_append_compressed (CONTEXT * ctx) ctx->realpath = ctx->path; /* Uncompress to /tmp */ - fh = m_tempfile(tmppath, sizeof(tmppath), NONULL(Tempdir), NULL); + fh = m_tempfile(tmppath, sizeof(tmppath), NONULL(mod_core.tmpdir), NULL); m_fclose(&fh); ctx->path = p_dupstr(tmppath, m_strlen(tmppath)); ctx->magic = DefaultMagic; - if (is_new (ctx->realpath) || - (ctx->magic != M_MBOX && - ctx->magic != M_MMDF)) + if (is_new (ctx->realpath) || ctx->magic != M_MBOX) unlink(tmppath); /* No error checking - the parent function will catch it */ - return 0; } @@ -314,11 +310,7 @@ void mutt_fast_close_compressed (CONTEXT * ctx) m_fclose(&ctx->fp); /* if the folder was removed, remove the gzipped folder too */ - if (access (ctx->path, F_OK) != 0 && !option (OPTSAVEEMPTY)) - remove (ctx->realpath); - else - remove_file (ctx); - + remove_file (ctx); restore_path (ctx); p_delete(&ctx->cinfo); }