X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-mx%2Fcompress.c;h=044392ef496446ebd236aa45c33464f2e8bb0497;hp=3770fef1ec87a4116430f9ff559111c8422637de;hb=15d63145b9f11a1fa58c74abbeab7533ea2e5d21;hpb=8476307969a605bea67f6b702b0c1e7a52038bed diff --git a/lib-mx/compress.c b/lib-mx/compress.c index 3770fef..044392e 100644 --- a/lib-mx/compress.c +++ b/lib-mx/compress.c @@ -134,17 +134,17 @@ static int get_size (const char *path) return (sb.st_size); } -static const char *compresshook_format_str (char *dest, ssize_t destlen, - char op, const char *src, - const char *fmt, - const char *ifstring __attribute__ ((unused)), - const char *elsestring __attribute__ ((unused)), - unsigned long data, - format_flag flags __attribute__ ((unused))) +static const char * +compresshook_format_str(char *dest, ssize_t destlen, + char op, const char *src, const char *fmt, + const char *ifstr __attribute__ ((unused)), + const char *elstr __attribute__ ((unused)), + anytype data, + format_flag flags __attribute__ ((unused))) { - char tmp[SHORT_STRING]; + char tmp[STRING]; - CONTEXT *ctx = (CONTEXT *) data; + CONTEXT *ctx = data.ptr; switch (op) { case 'f': @@ -167,13 +167,11 @@ int mutt_test_compress_command (const char *cmd) return (strstr (cmd, "%f") && strstr (cmd, "%t")) ? 0 : -1; } -static char *get_compression_cmd (const char *cmd, const CONTEXT * ctx) +static char *get_compression_cmd(const char *cmd, const CONTEXT *ctx) { - char expanded[_POSIX_PATH_MAX]; - - mutt_FormatString (expanded, sizeof (expanded), cmd, - compresshook_format_str, (unsigned long) ctx, 0); - return m_strdup(expanded); + char buf[_POSIX_PATH_MAX]; + m_strformat(buf, sizeof(buf), 0, cmd, compresshook_format_str, (void*)ctx, 0); + return m_strdup(buf); } int mutt_check_mailbox_compressed (CONTEXT * ctx) @@ -221,7 +219,7 @@ int mutt_open_read_compressed (CONTEXT * ctx) } mutt_block_signals (); if (mbox_lock_compressed (ctx, fp, 0, 1) == -1) { - fclose (fp); + m_fclose(&fp); mutt_unblock_signals (); mutt_error _("Unable to lock mailbox!"); @@ -236,7 +234,7 @@ int mutt_open_read_compressed (CONTEXT * ctx) rc = mutt_system (cmd); mbox_unlock_compressed (ctx, fp); mutt_unblock_signals (); - fclose (fp); + m_fclose(&fp); if (rc) { mutt_any_key_to_continue (NULL); @@ -290,7 +288,7 @@ int mutt_open_append_compressed (CONTEXT * ctx) if (!is_new (ctx->realpath)) if (ctx->magic == M_MBOX || ctx->magic == M_MMDF) if ((fh = safe_fopen (ctx->path, "w"))) - fclose (fh); + m_fclose(&fh); /* No error checking - the parent function will catch it */ return (0); @@ -300,9 +298,8 @@ int mutt_open_append_compressed (CONTEXT * ctx) void mutt_fast_close_compressed (CONTEXT * ctx) { if (ctx->cinfo) { - if (ctx->fp) - fclose (ctx->fp); - ctx->fp = NULL; + 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); @@ -335,7 +332,7 @@ int mutt_sync_compressed (CONTEXT * ctx) } mutt_block_signals (); if (mbox_lock_compressed (ctx, fp, 1, 1) == -1) { - fclose (fp); + m_fclose(&fp); mutt_unblock_signals (); mutt_error _("Unable to lock mailbox!"); @@ -359,7 +356,7 @@ int mutt_sync_compressed (CONTEXT * ctx) mbox_unlock_compressed (ctx, fp); mutt_unblock_signals (); - fclose (fp); + m_fclose(&fp); p_delete(&cmd); @@ -383,9 +380,7 @@ int mutt_slow_close_compressed (CONTEXT * ctx) return (0); } - if (ctx->fp) - fclose (ctx->fp); - ctx->fp = NULL; + m_fclose(&ctx->fp); if (!ctx->quiet) { if (append == ci->close) @@ -405,7 +400,7 @@ int mutt_slow_close_compressed (CONTEXT * ctx) } mutt_block_signals (); if (mbox_lock_compressed (ctx, fp, 1, 1) == -1) { - fclose (fp); + m_fclose(&fp); mutt_unblock_signals (); mutt_error _("Unable to lock mailbox!"); @@ -430,13 +425,13 @@ int mutt_slow_close_compressed (CONTEXT * ctx) p_delete(&cmd); mbox_unlock_compressed (ctx, fp); mutt_unblock_signals (); - fclose (fp); + m_fclose(&fp); return (-1); } mbox_unlock_compressed (ctx, fp); mutt_unblock_signals (); - fclose (fp); + m_fclose(&fp); remove_file (ctx); restore_path (ctx); p_delete(&cmd);