X-Git-Url: https://git.llucax.com/software/mutt-debian.git/blobdiff_plain/a68126c0642d9ea6881a17ba2b1ef9fe71c5d1e1..5d81d183a92497924d4f784426e9863a83998c83:/debian/patches/features/compressed-folders diff --git a/debian/patches/features/compressed-folders b/debian/patches/features/compressed-folders index 5c43021..b1abd8c 100644 --- a/debian/patches/features/compressed-folders +++ b/debian/patches/features/compressed-folders @@ -7,20 +7,19 @@ 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) == END PATCH --- /dev/null -+++ compress.c -@@ -0,0 +1,487 @@ ++++ b/compress.c +@@ -0,0 +1,499 @@ +/* + * Copyright (C) 1997 Alain Penders + * @@ -127,7 +126,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); + @@ -181,10 +192,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 +226,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 +253,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 +298,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); @@ -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 +@@ -795,6 +795,11 @@ AC_ARG_ENABLE(locales-fix, AC_HELP_STRIN 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 +@@ -1128,6 +1128,11 @@ int mutt_index_menu (void) { 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 +@@ -5160,6 +5160,205 @@ macro pager \cb |urlview\n - + + +Compressed folders Support (OPTIONAL) @@ -771,12 +782,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 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 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. @@ -801,8 +826,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" @@ -814,7 +839,7 @@ The home page for this patch is: #include #include #include -@@ -92,6 +96,16 @@ +@@ -92,6 +96,16 @@ int mutt_parse_hook (BUFFER *buf, BUFFER memset (&pattern, 0, sizeof (pattern)); pattern.data = safe_strdup (path); } @@ -823,31 +848,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 +@@ -3452,6 +3452,11 @@ struct command_t Commands[] = { + { "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 @@ static void show_version (void) #else "-LOCALES_HACK " #endif @@ -860,19 +885,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 +@@ -18,7 +18,7 @@ BUILT_SOURCES = keymap_defs.h patchlist. 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 +@@ -57,7 +57,7 @@ EXTRA_mutt_SOURCES = account.c bcache.c + 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 +905,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 +918,7 @@ The home page for this patch is: #include #include #include -@@ -1014,6 +1018,12 @@ +@@ -1038,6 +1042,12 @@ bail: /* Come here in case of disaster int mbox_close_mailbox (CONTEXT *ctx) { mx_unlock_file (ctx->path, fileno (ctx->fp), 1); @@ -906,9 +931,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 +@@ -140,6 +140,11 @@ typedef enum #define M_ACCOUNTHOOK (1<<9) #define M_REPLYHOOK (1<<10) #define M_SEND2HOOK (1<<11) @@ -920,9 +945,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 */ +@@ -872,6 +877,11 @@ typedef struct _context + 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 +956,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 +970,7 @@ The home page for this patch is: #ifdef USE_IMAP #include "imap.h" #endif -@@ -454,6 +458,10 @@ +@@ -445,6 +449,10 @@ int mx_get_magic (const char *path) return (-1); } @@ -956,7 +981,7 @@ The home page for this patch is: return (magic); } -@@ -493,6 +501,13 @@ +@@ -484,6 +492,13 @@ static int mx_open_mailbox_append (CONTE { struct stat sb; @@ -970,7 +995,7 @@ The home page for this patch is: ctx->append = 1; #ifdef USE_IMAP -@@ -653,7 +668,12 @@ +@@ -647,7 +662,12 @@ CONTEXT *mx_open_mailbox (const char *pa } ctx->magic = mx_get_magic (path); @@ -984,7 +1009,7 @@ The home page for this patch is: if(ctx->magic == 0) mutt_error (_("%s is not a mailbox."), path); -@@ -759,6 +779,10 @@ +@@ -748,6 +768,10 @@ void mx_fastclose_mailbox (CONTEXT *ctx) mutt_free_header (&ctx->hdrs[i]); FREE (&ctx->hdrs); FREE (&ctx->v2r); @@ -995,10 +1020,10 @@ The home page for this patch is: FREE (&ctx->path); FREE (&ctx->pattern); if (ctx->limit_pattern) -@@ -816,6 +840,12 @@ +@@ -800,6 +824,12 @@ static int sync_mailbox (CONTEXT *ctx, i + if (tmp && tmp->new == 0) mutt_update_mailbox (tmp); - #endif + +#ifdef USE_COMPRESSED + if (rc == 0 && ctx->compressinfo) @@ -1008,7 +1033,7 @@ The home page for this patch is: return rc; } -@@ -1017,6 +1047,11 @@ +@@ -1058,6 +1088,11 @@ int mx_close_mailbox (CONTEXT *ctx, int !mutt_is_spool(ctx->path) && !option (OPTSAVEEMPTY)) mx_unlink_empty (ctx->path); @@ -1020,7 +1045,7 @@ The home page for this patch is: mx_fastclose_mailbox (ctx); return 0; -@@ -1326,6 +1361,11 @@ +@@ -1373,6 +1408,11 @@ int mx_check_mailbox (CONTEXT *ctx, int { int rc; @@ -1032,9 +1057,9 @@ The home page for this patch is: if (ctx) { if (ctx->locked) lock = 0; ---- mx.h.orig -+++ mx.h -@@ -40,6 +40,9 @@ +--- a/mx.h ++++ b/mx.h +@@ -40,6 +40,9 @@ enum #ifdef USE_POP , M_POP #endif @@ -1044,18 +1069,52 @@ 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 -@@ -1262,6 +1262,48 @@ - msgid "Failed to figure out sender" - msgstr "Kann Absender nicht ermitteln" +--- 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!" + +-#: 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!" @@ -1097,43 +1156,9 @@ 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)" -@@ -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 @@ +--- a/po/POTFILES.in ++++ b/po/POTFILES.in +@@ -8,6 +8,7 @@ charset.c color.c commands.c compose.c @@ -1141,9 +1166,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 @@ status_format_str (char *buf, size_t buf case 'f': snprintf (fmt, sizeof(fmt), "%%%ss", prefix); @@ -1151,10 +1176,14 @@ 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 if (Context && Context->path) { strfcpy (tmp, Context->path, sizeof (tmp)); +--- a/PATCHES ++++ b/PATCHES +@@ -0,0 +1 @@ ++patch-1.5.18.rr.compressed.1