X-Git-Url: https://git.llucax.com/software/mutt-debian.git/blobdiff_plain/63918bfd01f66dbb07af0cac82359c0032ce6376..03799e24b23b9a04aee38d40898625a71b92b5e6:/debian/patches/features/compressed-folders diff --git a/debian/patches/features/compressed-folders b/debian/patches/features/compressed-folders index 027bbec..16baf3c 100644 --- a/debian/patches/features/compressed-folders +++ b/debian/patches/features/compressed-folders @@ -7,21 +7,20 @@ The home page for this patch is: http://www.spinnaker.de/mutt/compressed/ * Patch last synced with upstream: - - Date: 2005-09-29 - - File: http://www.spinnaker.de/mutt/compressed/patch-1.5.11.rr.compressed.1.gz + - Date: 2008-05-20 + - File: http://www.spinnaker.de/mutt/compressed/patch-1.5.18.rr.compressed.1.gz * Changes made: - - filterdiff -p1 \ - $(for f in Makefile.in config.h.in configure 'Muttrc*' doc/manual.txt \ - doc/manual.sgml 'doc/manual*.html' doc/muttrc.man; do echo "-x $f"; done) - - adjust the init.h hunk to the presence of group & ungroup - - 2006-07-15: adjust Makefile.am and doc/manual.xml.head to mutt-1.5.12 - - 2006-08-16: adjust Makefile.am mutt-1.5.13 + - 2008-05-20 myon: refreshed to remove hunks in auto* files + - 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 == END PATCH --- /dev/null -+++ compress.c -@@ -0,0 +1,487 @@ ++++ b/compress.c +@@ -0,0 +1,496 @@ +/* + * Copyright (C) 1997 Alain Penders + * @@ -128,7 +127,19 @@ The home page for this patch is: + int magic; + + if (is_new (path)) -+ return (find_compress_hook (M_CLOSEHOOK, path) ? 1 : 0); ++ { ++ char *dir_path = safe_strdup(path); ++ char *aux = strrchr(dir_path, '/'); ++ int dir_valid = 1; ++ if (aux) ++ { ++ *aux='\0'; ++ if (access(dir_path, W_OK|X_OK)) ++ dir_valid = 0; ++ } ++ safe_free((void**)&dir_path); ++ return dir_valid && (find_compress_hook (M_CLOSEHOOK, path) ? 1 : 0); ++ } + + magic = mx_get_magic (path); + @@ -182,10 +193,10 @@ The home page for this patch is: +} + +static const char * -+compresshook_format_str (char *dest, size_t destlen, char op, const char *src, -+ const char *fmt, const char *ifstring, -+ const char *elsestring, unsigned long data, -+ format_flag flags) ++compresshook_format_str (char *dest, size_t destlen, size_t col, char op, ++ const char *src, const char *fmt, ++ const char *ifstring, const char *elsestring, ++ unsigned long data, format_flag flags) +{ + char tmp[SHORT_STRING]; + @@ -216,8 +227,8 @@ 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), cmd, compresshook_format_str, -+ (unsigned long) ctx, 0); ++ mutt_FormatString (expanded, sizeof (expanded), 0, cmd, ++ compresshook_format_str, (unsigned long) ctx, 0); + return safe_strdup (expanded); +} + @@ -243,7 +254,7 @@ The home page for this patch is: + COMPRESS_INFO *ci = set_compress_info (ctx); + if (!ci->open) { + ctx->magic = 0; -+ FREE (ctx->compressinfo); ++ FREE (&ctx->compressinfo); + return (-1); + } + if (!ci->close || access (ctx->path, W_OK) != 0) @@ -288,7 +299,7 @@ The home page for this patch is: + { + mutt_any_key_to_continue (NULL); + ctx->magic = 0; -+ FREE (ctx->compressinfo); ++ FREE (&ctx->compressinfo); + mutt_error (_("Error executing: %s : unable to open the mailbox!\n"), cmd); + } + FREE (&cmd); @@ -333,10 +344,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 */ @@ -356,8 +364,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 @@ -436,7 +444,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); @@ -510,7 +518,7 @@ The home page for this patch is: + +#endif /* USE_COMPRESSED */ --- /dev/null -+++ compress.h ++++ b/compress.h @@ -0,0 +1,27 @@ +/* + * Copyright (C) 1997 Alain Penders @@ -539,9 +547,9 @@ The home page for this patch is: +int mutt_test_compress_command (const char *); +int mutt_check_mailbox_compressed (CONTEXT *); +void mutt_fast_close_compressed (CONTEXT *); ---- configure.in.orig -+++ configure.in -@@ -798,6 +798,11 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -805,6 +805,11 @@ AC_DEFINE(LOCALES_HACK,1,[ Define if the result of isprint() is unreliable. ]) fi]) @@ -553,9 +561,9 @@ The home page for this patch is: AC_ARG_WITH(exec-shell, AC_HELP_STRING([--with-exec-shell=SHELL], [Specify alternate shell (ONLY if /bin/sh is broken)]), [if test $withval != yes; then AC_DEFINE_UNQUOTED(EXECSHELL, "$withval", ---- curs_main.c.orig -+++ curs_main.c -@@ -1096,6 +1096,11 @@ +--- a/curs_main.c ++++ b/curs_main.c +@@ -1135,6 +1135,11 @@ { int check; @@ -567,11 +575,11 @@ The home page for this patch is: mutt_str_replace (&LastFolder, Context->path); oldcount = Context ? Context->msgcount : 0; ---- doc/manual.xml.head.orig -+++ doc/manual.xml.head -@@ -4749,6 +4749,205 @@ +--- a/doc/manual.xml.head ++++ b/doc/manual.xml.head +@@ -5678,6 +5678,205 @@ - + + +Compressed folders Support (OPTIONAL) @@ -602,9 +610,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 @@ -718,7 +726,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 @@ -772,12 +780,26 @@ The home page for this patch is: + + + - - ---- doc/muttrc.man.head.orig -+++ doc/muttrc.man.head -@@ -316,6 +316,24 @@ + Mutt's MIME Support + +--- a/doc/Muttrc.head ++++ b/doc/Muttrc.head +@@ -29,6 +29,11 @@ + 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 @@ 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. @@ -793,7 +815,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 @@ -802,8 +824,8 @@ The home page for this patch is: .TP \fBpush\fP \fIstring\fP This command adds the named \fIstring\fP to the keyboard buffer. ---- hook.c.orig -+++ hook.c +--- a/hook.c ++++ b/hook.c @@ -24,6 +24,10 @@ #include "mailbox.h" #include "mutt_crypt.h" @@ -824,31 +846,31 @@ The home page for this patch is: + { + if (mutt_test_compress_command (command.data)) + { -+ strfcpy (err->data, _("bad formatted command string"), err->dsize); ++ strfcpy (err->data, _("badly formatted command string"), err->dsize); + return (-1); + } + } +#endif - else if (DefaultHook && !(data & (M_CHARSETHOOK | M_ACCOUNTHOOK)) + else if (DefaultHook && !(data & (M_CHARSETHOOK | M_ICONVHOOK | M_ACCOUNTHOOK)) && (!WithCrypto || !(data & M_CRYPTHOOK)) ) ---- init.h.orig -+++ init.h -@@ -3119,6 +3119,11 @@ +--- a/init.h ++++ b/init.h +@@ -3504,6 +3504,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 }, - { "group", parse_group, 0 }, - { "ungroup", parse_ungroup, 0 }, +#ifdef USE_COMPRESSED + { "open-hook", mutt_parse_hook, M_OPENHOOK }, + { "close-hook", mutt_parse_hook, M_CLOSEHOOK }, + { "append-hook", mutt_parse_hook, M_APPENDHOOK }, +#endif + { "group", parse_group, 0 }, + { "ungroup", parse_ungroup, 0 }, { "hdr_order", parse_list, UL &HeaderOrderList }, - #ifdef HAVE_ICONV - { "iconv-hook", mutt_parse_hook, M_ICONVHOOK }, ---- main.c.orig -+++ main.c -@@ -398,6 +398,12 @@ +--- a/main.c ++++ b/main.c +@@ -402,6 +402,12 @@ #else "-LOCALES_HACK " #endif @@ -861,19 +883,19 @@ The home page for this patch is: #ifdef HAVE_WC_FUNCS "+HAVE_WC_FUNCS " ---- Makefile.am.orig -+++ Makefile.am +--- a/Makefile.am ++++ b/Makefile.am @@ -18,7 +18,7 @@ bin_PROGRAMS = mutt @DOTLOCK_TARGET@ @PGPAUX_TARGET@ - mutt_SOURCES = $(BUILT_SOURCES) \ + mutt_SOURCES = \ addrbook.c alias.c attach.c base64.c browser.c buffy.c color.c \ - crypt.c cryptglue.c \ + crypt.c cryptglue.c compress.c \ 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 \ -@@ -66,7 +66,7 @@ - crypt-gpgme.c crypt-mod-pgp-gpgme.c crypt-mod-smime-gpgme.c +@@ -57,7 +57,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 \ - configure account.h \ @@ -881,11 +903,11 @@ The home page for this patch is: attach.h buffy.h charset.h copy.h crypthash.h dotlock.h functions.h gen_defs \ globals.h hash.h history.h init.h keymap.h mutt_crypt.h \ mailbox.h mapping.h md5.h mime.h mutt.h mutt_curses.h mutt_menu.h \ ---- mbox.c.orig -+++ mbox.c -@@ -28,6 +28,10 @@ - #include "sort.h" +--- a/mbox.c ++++ b/mbox.c +@@ -29,6 +29,10 @@ #include "copy.h" + #include "mutt_curses.h" +#ifdef USE_COMPRESSED +#include "compress.h" @@ -894,7 +916,7 @@ The home page for this patch is: #include #include #include -@@ -1014,6 +1018,12 @@ +@@ -1048,6 +1052,12 @@ int mbox_close_mailbox (CONTEXT *ctx) { mx_unlock_file (ctx->path, fileno (ctx->fp), 1); @@ -907,9 +929,9 @@ The home page for this patch is: mutt_unblock_signals (); mx_fastclose_mailbox (ctx); return 0; ---- mutt.h.orig -+++ mutt.h -@@ -157,6 +157,11 @@ +--- a/mutt.h ++++ b/mutt.h +@@ -146,6 +146,11 @@ #define M_ACCOUNTHOOK (1<<9) #define M_REPLYHOOK (1<<10) #define M_SEND2HOOK (1<<11) @@ -921,9 +943,9 @@ The home page for this patch is: /* tree characters for linearize_tree and print_enriched_string */ #define M_TREE_LLCORNER 1 -@@ -864,6 +869,11 @@ - void *data; /* driver specific data */ - #endif /* USE_IMAP */ +@@ -882,6 +887,11 @@ + int flagged; /* how many flagged messages */ + int msgnotreadyet; /* which msg "new" in pager, -1 if none */ +#ifdef USE_COMPRESSED + void *compressinfo; /* compressed mbox module private data */ @@ -932,9 +954,9 @@ The home page for this patch is: + short magic; /* mailbox type */ - unsigned int locked : 1; /* is the mailbox locked? */ ---- mx.c.orig -+++ mx.c + unsigned char rights[(RIGHTSMAX + 7)/8]; /* ACL bits */ +--- a/mx.c ++++ b/mx.c @@ -30,6 +30,10 @@ #include "keymap.h" #include "url.h" @@ -946,7 +968,7 @@ The home page for this patch is: #ifdef USE_IMAP #include "imap.h" #endif -@@ -454,6 +458,10 @@ +@@ -415,6 +419,10 @@ return (-1); } @@ -957,7 +979,7 @@ The home page for this patch is: return (magic); } -@@ -493,6 +501,13 @@ +@@ -454,6 +462,13 @@ { struct stat sb; @@ -971,7 +993,7 @@ The home page for this patch is: ctx->append = 1; #ifdef USE_IMAP -@@ -653,7 +668,12 @@ +@@ -617,7 +632,12 @@ } ctx->magic = mx_get_magic (path); @@ -985,7 +1007,7 @@ The home page for this patch is: if(ctx->magic == 0) mutt_error (_("%s is not a mailbox."), path); -@@ -759,6 +779,10 @@ +@@ -718,6 +738,10 @@ mutt_free_header (&ctx->hdrs[i]); FREE (&ctx->hdrs); FREE (&ctx->v2r); @@ -996,10 +1018,10 @@ The home page for this patch is: FREE (&ctx->path); FREE (&ctx->pattern); if (ctx->limit_pattern) -@@ -816,6 +840,12 @@ +@@ -770,6 +794,12 @@ + if (tmp && tmp->new == 0) mutt_update_mailbox (tmp); - #endif + +#ifdef USE_COMPRESSED + if (rc == 0 && ctx->compressinfo) @@ -1009,7 +1031,7 @@ The home page for this patch is: return rc; } -@@ -1017,6 +1047,11 @@ +@@ -1033,6 +1063,11 @@ !mutt_is_spool(ctx->path) && !option (OPTSAVEEMPTY)) mx_unlink_empty (ctx->path); @@ -1021,7 +1043,7 @@ The home page for this patch is: mx_fastclose_mailbox (ctx); return 0; -@@ -1326,6 +1361,11 @@ +@@ -1355,6 +1390,11 @@ { int rc; @@ -1033,8 +1055,8 @@ The home page for this patch is: if (ctx) { if (ctx->locked) lock = 0; ---- mx.h.orig -+++ mx.h +--- a/mx.h ++++ b/mx.h @@ -40,6 +40,9 @@ #ifdef USE_POP , M_POP @@ -1045,36 +1067,51 @@ The home page for this patch is: }; WHERE short DefaultMagic INITVAL (M_MBOX); ---- PATCHES.orig -+++ PATCHES -@@ -1,2 +1,3 @@ -+patch-1.5.11.rr.compressed.1 - patch-1.5.6.tt.assumed_charset.1 - patch-1.5.6.dw.maildir-mtime.1 ---- po/de.po.orig -+++ po/de.po -@@ -1267,6 +1267,48 @@ - msgid "Failed to figure out sender" - msgstr "Kann Absender nicht ermitteln" +--- a/po/de.po ++++ b/po/de.po +@@ -2005,6 +2005,10 @@ + 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." +@@ -2766,7 +2770,7 @@ + msgid "Mailbox is corrupt!" + msgstr "Mailbox fehlerhaft!" + +-#: mbox.c:678 ++#: mbox.c:678 compress.c:203 mbox.c:661 + msgid "Mailbox was corrupted!" + msgstr "Mailbox wurde zerstört!" + +@@ -2774,10 +2778,11 @@ + msgid "Fatal error! Could not reopen mailbox!" + msgstr "Fataler Fehler, konnte Mailbox nicht erneut öffnen!" + +-#: mbox.c:746 ++#: mbox.c:746 compress.c:264 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!" + ++ + #. 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. +@@ -5378,3 +5383,32 @@ -+#: compress.c:203 mbox.c:661 -+msgid "Mailbox was corrupted!" -+msgstr "Mailbox wurde zerstört!" + #~ msgid "Authentication method is unknown." + #~ msgstr "Authentifizierungsmethode unbekannt." + +#: 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" @@ -1098,42 +1135,8 @@ 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" -+ - #: crypt.c:69 - #, c-format - msgid " (current time: %c)" -@@ -1915,6 +1957,10 @@ - msgid "Help for %s" - msgstr "Hilfe für %s" - -+#: hook.c:96 -+msgid "bad formatted command string" -+msgstr "Hook enthält nicht die Muster %f und %t" -+ - #: hook.c:246 - #, c-format - msgid "unhook: Can't do unhook * from within a hook." -@@ -3422,18 +3468,10 @@ - msgid "Mailbox is corrupt!" - msgstr "Mailbox fehlerhaft!" - --#: mbox.c:662 --msgid "Mailbox was corrupted!" --msgstr "Mailbox wurde zerstört!" -- - #: mbox.c:701 mbox.c:952 - msgid "Fatal error! Could not reopen mailbox!" - msgstr "Fataler Fehler, konnte Mailbox nicht erneut öffnen!" - --#: mbox.c:710 --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. ---- po/POTFILES.in.orig -+++ po/POTFILES.in +--- a/po/POTFILES.in ++++ b/po/POTFILES.in @@ -8,6 +8,7 @@ color.c commands.c @@ -1142,9 +1145,9 @@ The home page for this patch is: crypt-gpgme.c crypt.c cryptglue.c ---- status.c.orig -+++ status.c -@@ -97,6 +97,14 @@ +--- a/status.c ++++ b/status.c +@@ -96,6 +96,14 @@ case 'f': snprintf (fmt, sizeof(fmt), "%%%ss", prefix); @@ -1152,7 +1155,7 @@ The home page for this patch is: + if (Context && Context->compressinfo && Context->realpath) + { + strfcpy (tmp, Context->realpath, sizeof (tmp)); -+ mutt_pretty_mailbox (tmp); ++ mutt_pretty_mailbox (tmp, sizeof (tmp)); + } + else +#endif