X-Git-Url: https://git.llucax.com/software/mutt-debian.git/blobdiff_plain/a68126c0642d9ea6881a17ba2b1ef9fe71c5d1e1..c5b192a33a305c26dfc056daa813c9a5d435da43:/debian/patches/features/compressed-folders?ds=sidebyside diff --git a/debian/patches/features/compressed-folders b/debian/patches/features/compressed-folders index 5c43021..7f6e233 100644 --- a/debian/patches/features/compressed-folders +++ b/debian/patches/features/compressed-folders @@ -7,20 +7,22 @@ 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 + - 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 + - 2010-05-31 myon: remove commented paragraph "Use folders..." in + doc/Muttrc.head, see #578096 == END PATCH --- /dev/null -+++ compress.c -@@ -0,0 +1,487 @@ ++++ b/compress.c +@@ -0,0 +1,496 @@ +/* + * Copyright (C) 1997 Alain Penders + * @@ -127,7 +129,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); + @@ -161,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); +} @@ -181,10 +195,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]; + @@ -215,8 +229,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); +} + @@ -242,7 +256,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) @@ -287,7 +301,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); @@ -332,10 +346,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 */ @@ -355,8 +366,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 @@ -435,7 +446,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); @@ -509,7 +520,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 @@ -538,9 +549,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 -@@ -745,6 +745,11 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -812,6 +812,11 @@ AC_DEFINE(LOCALES_HACK,1,[ Define if the result of isprint() is unreliable. ]) fi]) @@ -552,9 +563,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 +@@ -1153,6 +1153,11 @@ { int check; @@ -566,11 +577,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 -@@ -4745,6 +4745,205 @@ +--- a/doc/manual.xml.head ++++ b/doc/manual.xml.head +@@ -6116,6 +6116,205 @@ - + + +Compressed folders Support (OPTIONAL) @@ -601,9 +612,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 @@ -717,7 +728,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 @@ -771,12 +782,12 @@ 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.man.head ++++ b/doc/muttrc.man.head +@@ -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. @@ -792,7 +803,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 @@ -801,8 +812,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" @@ -823,31 +834,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 -@@ -3108,6 +3108,11 @@ +--- a/init.h ++++ b/init.h +@@ -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 }, - { "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, M_GROUP }, + { "ungroup", parse_group, M_UNGROUP }, { "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 +@@ -401,6 +401,12 @@ #else "-LOCALES_HACK " #endif @@ -860,19 +871,19 @@ The home page for this patch is: #ifdef HAVE_WC_FUNCS "+HAVE_WC_FUNCS " ---- Makefile.am.orig -+++ Makefile.am -@@ -18,7 +18,7 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -22,7 +22,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 \ +- 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 \ -@@ -68,7 +68,7 @@ - crypt-gpgme.c crypt-mod-pgp-gpgme.c crypt-mod-smime-gpgme.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 \ - configure account.h \ @@ -880,11 +891,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" @@ -893,7 +904,7 @@ The home page for this patch is: #include #include #include -@@ -1014,6 +1018,12 @@ +@@ -1070,6 +1074,12 @@ int mbox_close_mailbox (CONTEXT *ctx) { mx_unlock_file (ctx->path, fileno (ctx->fp), 1); @@ -906,9 +917,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) @@ -920,9 +931,9 @@ The home page for this patch is: /* tree characters for linearize_tree and print_enriched_string */ #define M_TREE_LLCORNER 1 -@@ -863,6 +868,11 @@ - void *data; /* driver specific data */ - #endif /* USE_IMAP */ +@@ -887,6 +892,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 */ @@ -931,9 +942,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" @@ -945,7 +956,7 @@ The home page for this patch is: #ifdef USE_IMAP #include "imap.h" #endif -@@ -454,6 +458,10 @@ +@@ -414,6 +418,10 @@ return (-1); } @@ -956,7 +967,7 @@ The home page for this patch is: return (magic); } -@@ -493,6 +501,13 @@ +@@ -453,6 +461,13 @@ { struct stat sb; @@ -970,7 +981,7 @@ The home page for this patch is: ctx->append = 1; #ifdef USE_IMAP -@@ -653,7 +668,12 @@ +@@ -616,7 +631,12 @@ } ctx->magic = mx_get_magic (path); @@ -984,7 +995,7 @@ The home page for this patch is: if(ctx->magic == 0) mutt_error (_("%s is not a mailbox."), path); -@@ -759,6 +779,10 @@ +@@ -721,6 +741,10 @@ mutt_free_header (&ctx->hdrs[i]); FREE (&ctx->hdrs); FREE (&ctx->v2r); @@ -995,10 +1006,10 @@ The home page for this patch is: FREE (&ctx->path); FREE (&ctx->pattern); if (ctx->limit_pattern) -@@ -816,6 +840,12 @@ +@@ -773,6 +797,12 @@ + if (tmp && tmp->new == 0) mutt_update_mailbox (tmp); - #endif + +#ifdef USE_COMPRESSED + if (rc == 0 && ctx->compressinfo) @@ -1008,7 +1019,7 @@ The home page for this patch is: return rc; } -@@ -1017,6 +1047,11 @@ +@@ -1043,6 +1073,11 @@ !mutt_is_spool(ctx->path) && !option (OPTSAVEEMPTY)) mx_unlink_empty (ctx->path); @@ -1020,7 +1031,7 @@ The home page for this patch is: mx_fastclose_mailbox (ctx); return 0; -@@ -1326,6 +1361,11 @@ +@@ -1361,6 +1396,11 @@ { int rc; @@ -1032,48 +1043,57 @@ The home page for this patch is: if (ctx) { if (ctx->locked) lock = 0; ---- mx.h.orig -+++ mx.h -@@ -40,6 +40,9 @@ - #ifdef USE_POP - , M_POP - #endif +--- a/mx.h ++++ b/mx.h +@@ -36,6 +36,9 @@ + M_MAILDIR, + M_IMAP, + M_POP +#ifdef USE_COMPRESSED + , M_COMPRESSED +#endif }; 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 -@@ -1262,6 +1262,48 @@ - msgid "Failed to figure out sender" - msgstr "Kann Absender nicht ermitteln" +--- 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 +@@ -5159,6 +5159,36 @@ + msgid "show S/MIME options" + msgstr "Zeige S/MIME Optionen" -+#: 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" @@ -1098,63 +1118,6 @@ The home page for this patch is: +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)" -@@ -1910,6 +1952,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." -@@ -3424,18 +3470,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 -@@ -8,6 +8,7 @@ - color.c - commands.c - compose.c -+compress.c - crypt-gpgme.c - crypt.c - cryptglue.c ---- status.c.orig -+++ status.c -@@ -97,6 +97,14 @@ + #~ 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); -+ } -+ else -+#endif - if (Context && Context->path) - { - strfcpy (tmp, Context->path, sizeof (tmp));