X-Git-Url: https://git.llucax.com/software/mutt-debian.git/blobdiff_plain/5d81d183a92497924d4f784426e9863a83998c83..939639fcf1dad1b8f3a85d641f41d11c49281f3c:/debian/patches/features/compressed-folders?ds=sidebyside diff --git a/debian/patches/features/compressed-folders b/debian/patches/features/compressed-folders index b1abd8c..5a16ce8 100644 --- a/debian/patches/features/compressed-folders +++ b/debian/patches/features/compressed-folders @@ -15,6 +15,9 @@ The home page for this patch is: - 2009-09-15 myon: refreshed for mutt-1.5.19 status.c:103: add sizeof (tmp) to mutt_pretty_mailbox - 2009-09-15 scotton: removed doc/Muttrc for mutt-1.5.19 (only patch doc/Muttrc.head) + - 2009-09-11 antonio: removed DefaultMagic, see 541360 + - 2010-05-31 myon: remove commented paragraph "Use folders..." in + doc/Muttrc.head, see #578096 == END PATCH --- /dev/null @@ -172,7 +175,7 @@ The home page for this patch is: + ctx->realpath = ctx->path; + + /* Uncompress to /tmp */ -+ mutt_mktemp (tmppath); ++ mutt_mktemp (tmppath, sizeof(tmppath)); + ctx->path = safe_malloc (strlen (tmppath) + 1); + strcpy (ctx->path, tmppath); +} @@ -226,7 +229,7 @@ The home page for this patch is: +static char *get_compression_cmd (const char* cmd, const CONTEXT* ctx) +{ + char expanded[_POSIX_PATH_MAX]; -+ mutt_FormatString (expanded, sizeof (expanded), 0, cmd, ++ mutt_FormatString (expanded, sizeof (expanded), 0, cmd, + compresshook_format_str, (unsigned long) ctx, 0); + return safe_strdup (expanded); +} @@ -300,6 +303,9 @@ The home page for this patch is: + ctx->magic = 0; + FREE (&ctx->compressinfo); + mutt_error (_("Error executing: %s : unable to open the mailbox!\n"), cmd); ++ // remove the partial uncompressed file ++ remove_file (ctx); ++ restore_path (ctx); + } + FREE (&cmd); + if (rc) @@ -343,10 +349,7 @@ The home page for this patch is: + + set_path (ctx); + -+ ctx->magic = DefaultMagic; -+ + if (!is_new (ctx->realpath)) -+ if (ctx->magic == M_MBOX || ctx->magic == M_MMDF) + if ((fh = fopen (ctx->path, "w"))) + fclose (fh); + /* No error checking - the parent function will catch it */ @@ -366,8 +369,8 @@ The home page for this patch is: + fclose (ctx->fp); + ctx->fp = NULL; + /* if the folder was removed, remove the gzipped folder too */ -+ if ((ctx->magic > 0) -+ && (access (ctx->path, F_OK) != 0) ++ if ((ctx->magic > 0) ++ && (access (ctx->path, F_OK) != 0) + && ! option (OPTSAVEEMPTY)) + remove (ctx->realpath); + else @@ -446,7 +449,7 @@ The home page for this patch is: + if (! (ctx->append + && ((append = get_append_command (ctx->realpath, ctx)) + || (append = ci->close)))) -+ { ++ { + /* if we can not or should not append, we only have to remove the */ + /* compressed info, because sync was already called */ + mutt_fast_close_compressed (ctx); @@ -551,7 +554,7 @@ The home page for this patch is: +void mutt_fast_close_compressed (CONTEXT *); --- a/configure.ac +++ b/configure.ac -@@ -795,6 +795,11 @@ AC_ARG_ENABLE(locales-fix, AC_HELP_STRIN +@@ -812,6 +812,11 @@ AC_DEFINE(LOCALES_HACK,1,[ Define if the result of isprint() is unreliable. ]) fi]) @@ -565,7 +568,7 @@ The home page for this patch is: AC_DEFINE_UNQUOTED(EXECSHELL, "$withval", --- a/curs_main.c +++ b/curs_main.c -@@ -1128,6 +1128,11 @@ int mutt_index_menu (void) +@@ -1153,6 +1153,11 @@ { int check; @@ -579,7 +582,7 @@ The home page for this patch is: --- a/doc/manual.xml.head +++ b/doc/manual.xml.head -@@ -5160,6 +5160,205 @@ macro pager \cb |urlview\n +@@ -6116,6 +6116,205 @@ @@ -612,9 +615,9 @@ The home page for this patch is: +For example: + + -+open-hook \\.gz$ "gzip -cd %f > %t" ++open-hook \\.gz$ "gzip -cd %f > %t" +close-hook \\.gz$ "gzip -c %t > %f" -+append-hook \\.gz$ "gzip -c %t >> %f" ++append-hook \\.gz$ "gzip -c %t >> %f" + + +You do not have to specify all of the commands. If you omit -+open-hook \\.gz$ "gzip -cd %f > %t" ++open-hook \\.gz$ "gzip -cd %f > %t" + + +If the command is empty, this operation is @@ -728,7 +731,7 @@ The home page for this patch is: +Example: + + -+append-hook \\.gz$ "gzip -c %t >> %f" ++append-hook \\.gz$ "gzip -c %t >> %f" + + +When append-hook is used, the folder @@ -785,23 +788,9 @@ The home page for this patch is: Mutt's MIME Support ---- a/doc/Muttrc.head -+++ b/doc/Muttrc.head -@@ -29,6 +29,11 @@ macro generic,pager " - macro index,pager y "?" "show incoming mailboxes list" - bind browser y exit - -+# Use folders which match on \\.gz$ as gzipped folders: -+# open-hook \\.gz$ "gzip -cd %f > %t" -+# close-hook \\.gz$ "gzip -c %t > %f" -+# append-hook \\.gz$ "gzip -c %t >> %f" -+ - # If Mutt is unable to determine your site's domain name correctly, you can - # set the default here. - # --- a/doc/muttrc.man.head +++ b/doc/muttrc.man.head -@@ -345,6 +345,24 @@ specify the ID of the public key to be u +@@ -346,6 +346,24 @@ to a certain recipient. The meaning of "key ID" is to be taken broadly: This can be a different e-mail address, a numerical key ID, or even just an arbitrary search string. @@ -817,7 +806,7 @@ The home page for this patch is: +"\fI\\\\.gz$\fP"). The commands tell Mutt how to uncompress a folder +(\fBopen-hook\fP), compress a folder (\fBclose-hook\fP) or append a +compressed mail to a compressed folder (\fBappend-hook\fP). The -+\fIcommand\fP string is the ++\fIcommand\fP string is the +.BR printf (3) +like format string, and it should accept two parameters: \fB%f\fP, +which is replaced with the (compressed) folder name, and \fB%t\fP @@ -839,7 +828,7 @@ The home page for this patch is: #include #include #include -@@ -92,6 +96,16 @@ int mutt_parse_hook (BUFFER *buf, BUFFER +@@ -92,6 +96,16 @@ memset (&pattern, 0, sizeof (pattern)); pattern.data = safe_strdup (path); } @@ -858,7 +847,7 @@ The home page for this patch is: ) --- a/init.h +++ b/init.h -@@ -3452,6 +3452,11 @@ struct command_t Commands[] = { +@@ -3530,6 +3530,11 @@ { "fcc-hook", mutt_parse_hook, M_FCCHOOK }, { "fcc-save-hook", mutt_parse_hook, M_FCCHOOK | M_SAVEHOOK }, { "folder-hook", mutt_parse_hook, M_FOLDERHOOK }, @@ -867,12 +856,12 @@ The home page for this patch is: + { "close-hook", mutt_parse_hook, M_CLOSEHOOK }, + { "append-hook", mutt_parse_hook, M_APPENDHOOK }, +#endif - { "group", parse_group, 0 }, - { "ungroup", parse_ungroup, 0 }, + { "group", parse_group, M_GROUP }, + { "ungroup", parse_group, M_UNGROUP }, { "hdr_order", parse_list, UL &HeaderOrderList }, --- a/main.c +++ b/main.c -@@ -402,6 +402,12 @@ static void show_version (void) +@@ -401,6 +401,12 @@ #else "-LOCALES_HACK " #endif @@ -887,7 +876,7 @@ The home page for this patch is: "+HAVE_WC_FUNCS " --- a/Makefile.am +++ b/Makefile.am -@@ -18,7 +18,7 @@ BUILT_SOURCES = keymap_defs.h patchlist. +@@ -22,7 +22,7 @@ bin_PROGRAMS = mutt @DOTLOCK_TARGET@ @PGPAUX_TARGET@ mutt_SOURCES = \ addrbook.c alias.c attach.c base64.c browser.c buffy.c color.c \ @@ -896,7 +885,7 @@ The home page for this patch is: commands.c complete.c compose.c copy.c curs_lib.c curs_main.c date.c \ edit.c enter.c flags.c init.c filter.c from.c \ getdomain.c group.c \ -@@ -57,7 +57,7 @@ EXTRA_mutt_SOURCES = account.c bcache.c +@@ -61,7 +61,7 @@ bcache.h browser.h hcache.h mbyte.h mutt_idna.h remailer.h url.h EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP OPS.CRYPT OPS.SMIME TODO UPDATING \ @@ -918,7 +907,7 @@ The home page for this patch is: #include #include #include -@@ -1038,6 +1042,12 @@ bail: /* Come here in case of disaster +@@ -1070,6 +1074,12 @@ int mbox_close_mailbox (CONTEXT *ctx) { mx_unlock_file (ctx->path, fileno (ctx->fp), 1); @@ -933,7 +922,7 @@ The home page for this patch is: return 0; --- a/mutt.h +++ b/mutt.h -@@ -140,6 +140,11 @@ typedef enum +@@ -146,6 +146,11 @@ #define M_ACCOUNTHOOK (1<<9) #define M_REPLYHOOK (1<<10) #define M_SEND2HOOK (1<<11) @@ -945,7 +934,7 @@ The home page for this patch is: /* tree characters for linearize_tree and print_enriched_string */ #define M_TREE_LLCORNER 1 -@@ -872,6 +877,11 @@ typedef struct _context +@@ -887,6 +892,11 @@ int flagged; /* how many flagged messages */ int msgnotreadyet; /* which msg "new" in pager, -1 if none */ @@ -970,7 +959,7 @@ The home page for this patch is: #ifdef USE_IMAP #include "imap.h" #endif -@@ -445,6 +449,10 @@ int mx_get_magic (const char *path) +@@ -414,6 +418,10 @@ return (-1); } @@ -981,7 +970,7 @@ The home page for this patch is: return (magic); } -@@ -484,6 +492,13 @@ static int mx_open_mailbox_append (CONTE +@@ -453,6 +461,13 @@ { struct stat sb; @@ -995,7 +984,7 @@ The home page for this patch is: ctx->append = 1; #ifdef USE_IMAP -@@ -647,7 +662,12 @@ CONTEXT *mx_open_mailbox (const char *pa +@@ -616,7 +631,12 @@ } ctx->magic = mx_get_magic (path); @@ -1009,7 +998,7 @@ The home page for this patch is: if(ctx->magic == 0) mutt_error (_("%s is not a mailbox."), path); -@@ -748,6 +768,10 @@ void mx_fastclose_mailbox (CONTEXT *ctx) +@@ -721,6 +741,10 @@ mutt_free_header (&ctx->hdrs[i]); FREE (&ctx->hdrs); FREE (&ctx->v2r); @@ -1020,7 +1009,7 @@ The home page for this patch is: FREE (&ctx->path); FREE (&ctx->pattern); if (ctx->limit_pattern) -@@ -800,6 +824,12 @@ static int sync_mailbox (CONTEXT *ctx, i +@@ -773,6 +797,12 @@ if (tmp && tmp->new == 0) mutt_update_mailbox (tmp); @@ -1033,7 +1022,7 @@ The home page for this patch is: return rc; } -@@ -1058,6 +1088,11 @@ int mx_close_mailbox (CONTEXT *ctx, int +@@ -1043,6 +1073,11 @@ !mutt_is_spool(ctx->path) && !option (OPTSAVEEMPTY)) mx_unlink_empty (ctx->path); @@ -1045,7 +1034,7 @@ The home page for this patch is: mx_fastclose_mailbox (ctx); return 0; -@@ -1373,6 +1408,11 @@ int mx_check_mailbox (CONTEXT *ctx, int +@@ -1361,6 +1396,11 @@ { int rc; @@ -1059,80 +1048,55 @@ The home page for this patch is: if (ctx->locked) lock = 0; --- a/mx.h +++ b/mx.h -@@ -40,6 +40,9 @@ enum - #ifdef USE_POP - , M_POP - #endif +@@ -36,6 +36,9 @@ + M_MAILDIR, + M_IMAP, + M_POP +#ifdef USE_COMPRESSED + , M_COMPRESSED +#endif }; WHERE short DefaultMagic INITVAL (M_MBOX); +--- a/po/POTFILES.in ++++ b/po/POTFILES.in +@@ -8,6 +8,7 @@ + color.c + commands.c + compose.c ++compress.c + crypt-gpgme.c + crypt.c + cryptglue.c +--- a/status.c ++++ b/status.c +@@ -96,6 +96,14 @@ + + case 'f': + snprintf (fmt, sizeof(fmt), "%%%ss", prefix); ++#ifdef USE_COMPRESSED ++ if (Context && Context->compressinfo && Context->realpath) ++ { ++ strfcpy (tmp, Context->realpath, sizeof (tmp)); ++ mutt_pretty_mailbox (tmp, sizeof (tmp)); ++ } ++ else ++#endif + if (Context && Context->path) + { + strfcpy (tmp, Context->path, sizeof (tmp)); --- a/po/de.po +++ b/po/de.po -@@ -3,7 +3,7 @@ msgstr "" - "Project-Id-Version: 1.5.18\n" - "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2009-01-05 16:36-0800\n" --"PO-Revision-Date: 2008-05-18 10:28+0200\n" -+"PO-Revision-Date: 2009-01-15 23:09+0100\n" - "Last-Translator: Roland Rosenfeld \n" - "Language-Team: German \n" - "MIME-Version: 1.0\n" -@@ -1975,6 +1975,10 @@ msgstr "Hilfe für %s" - msgid "Bad history file format (line %d)" - msgstr "Falsches Format der Datei früherer Eingaben (Zeile %d)" - -+#: hook.c:96 -+msgid "badly formatted command string" -+msgstr "Hook enthält nicht die Muster %f und %t" -+ - #: hook.c:251 - #, c-format - msgid "unhook: Can't do unhook * from within a hook." -@@ -2718,18 +2722,10 @@ msgstr "Lese %s..." - msgid "Mailbox is corrupt!" - msgstr "Mailbox fehlerhaft!" +@@ -5159,6 +5159,36 @@ + msgid "show S/MIME options" + msgstr "Zeige S/MIME Optionen" --#: mbox.c:678 --msgid "Mailbox was corrupted!" --msgstr "Mailbox wurde zerstört!" -- - #: mbox.c:719 mbox.c:976 - msgid "Fatal error! Could not reopen mailbox!" - msgstr "Fataler Fehler, konnte Mailbox nicht erneut öffnen!" - --#: mbox.c:728 --msgid "Unable to lock mailbox!" --msgstr "Kann Mailbox nicht für exklusiven Zugriff sperren!" -- - #. this means ctx->changed or ctx->deleted was set, but no - #. * messages were found to be changed or deleted. This should - #. * never happen, is we presume it is a bug in mutt. -@@ -5298,3 +5294,45 @@ msgstr "Zeige S/MIME Optionen" - - #~ msgid "Authentication method is unknown." - #~ msgstr "Authentifizierungsmethode unbekannt." -+ -+#: compress.c:203 mbox.c:661 -+msgid "Mailbox was corrupted!" -+msgstr "Mailbox wurde zerstört!" + +#: compress.c:228 compress.c:253 +#, c-format +msgid "Decompressing %s...\n" +msgstr "Entpacke %s...\n" + -+#: compress.c:246 compress.c:367 compress.c:443 mbox.c:706 -+msgid "Unable to lock mailbox!" -+msgstr "Kann Mailbox nicht für exklusiven Zugriff sperren!" -+ -+#: compress.c:264 -+#, c-format -+msgid "Error executing: %s : unable to open the mailbox!\n" -+msgstr "Fehler beim Ausführen von %s : Kann die Mailbox nicht öffnen!\n" -+ +#: compress.c:350 compress.c:377 compress.c:423 compress.c:454 +#, c-format +msgid "Compressing %s...\n" @@ -1156,34 +1120,7 @@ The home page for this patch is: +#, c-format +msgid " %s: Error compressing mailbox! Uncompressed one kept!\n" +msgstr " %s: Fehler beim packen der Mailbox! Entpackte Mailbox gespeichert!\n" ---- a/po/POTFILES.in -+++ b/po/POTFILES.in -@@ -8,6 +8,7 @@ charset.c - color.c - commands.c - compose.c -+compress.c - crypt-gpgme.c - crypt.c - cryptglue.c ---- a/status.c -+++ b/status.c -@@ -96,6 +96,14 @@ status_format_str (char *buf, size_t buf ++ + #~ msgid "Clear" + #~ msgstr "Klartext" - case 'f': - snprintf (fmt, sizeof(fmt), "%%%ss", prefix); -+#ifdef USE_COMPRESSED -+ if (Context && Context->compressinfo && Context->realpath) -+ { -+ strfcpy (tmp, Context->realpath, sizeof (tmp)); -+ mutt_pretty_mailbox (tmp, sizeof (tmp)); -+ } -+ else -+#endif - if (Context && Context->path) - { - strfcpy (tmp, Context->path, sizeof (tmp)); ---- a/PATCHES -+++ b/PATCHES -@@ -0,0 +1 @@ -+patch-1.5.18.rr.compressed.1