Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package imapfilter for openSUSE:Factory 
checked in at 2024-01-03 12:25:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/imapfilter (Old)
 and      /work/SRC/openSUSE:Factory/.imapfilter.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "imapfilter"

Wed Jan  3 12:25:51 2024 rev:50 rq:1135768 version:2.8.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/imapfilter/imapfilter.changes    2023-05-29 
22:47:54.426338143 +0200
+++ /work/SRC/openSUSE:Factory/.imapfilter.new.28375/imapfilter.changes 
2024-01-03 12:25:54.309487900 +0100
@@ -1,0 +2,9 @@
+Sat Dec 30 16:37:02 UTC 2023 - Dirk Müller <[email protected]>
+
+- update to 2.8.2:
+  * Add IMAP support for UTF-8 (RFC 6855) when "charset" is
+    set to "UTF-8"
+  * Don't use FETCH FAST macro use for better compatibility
+  * Bug fix; recovery mechanism error on Lua 5.1
+
+-------------------------------------------------------------------

Old:
----
  imapfilter-2.8.1.tar.gz

New:
----
  imapfilter-2.8.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ imapfilter.spec ++++++
--- /var/tmp/diff_new_pack.NHUk7s/_old  2024-01-03 12:25:55.913546507 +0100
+++ /var/tmp/diff_new_pack.NHUk7s/_new  2024-01-03 12:25:55.933547239 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           imapfilter
-Version:        2.8.1
+Version:        2.8.2
 Release:        0
 Summary:        A mail filtering utility
 License:        MIT

++++++ imapfilter-2.8.1.tar.gz -> imapfilter-2.8.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.8.1/NEWS new/imapfilter-2.8.2/NEWS
--- old/imapfilter-2.8.1/NEWS   2023-01-08 14:43:35.000000000 +0100
+++ new/imapfilter-2.8.2/NEWS   2023-12-26 20:20:05.000000000 +0100
@@ -1,3 +1,8 @@
+IMAPFilter 2.8.2 - Dec 26, 2023
+  - Add IMAP support for UTF-8 (RFC 6855) when "charset" is set to "UTF-8"
+  - Don't use FETCH FAST macro use for better compatibility
+  - Bug fix; recovery mechanism error on Lua 5.1
+
 IMAPFilter 2.8.1 - Jan 8, 2023
   - Add support for non-write actions on read-only mailboxes.
   - Add new parameter to write process ID (PID) to file.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.8.1/doc/imapfilter.1 
new/imapfilter-2.8.2/doc/imapfilter.1
--- old/imapfilter-2.8.1/doc/imapfilter.1       2023-01-08 14:43:35.000000000 
+0100
+++ new/imapfilter-2.8.2/doc/imapfilter.1       2023-12-26 20:20:05.000000000 
+0100
@@ -1,4 +1,4 @@
-.Dd Jan 6, 2023
+.Dd Dec 26, 2023
 .Dt IMAPFILTER 1
 .Os
 .Sh NAME
@@ -94,7 +94,7 @@
 .Bl -tag -width Ds
 .It IMAP4rev1:
 RFC 3501, RFC 3348, RFC 2683, RFC 2595, RFC 2342, RFC 2195,
-RFC 2177
+RFC 2177, RFC 5161, RFC 6855
 .It IMAP4:
 RFC 1730
 .El
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.8.1/src/auxiliary.lua 
new/imapfilter-2.8.2/src/auxiliary.lua
--- old/imapfilter-2.8.1/src/auxiliary.lua      2023-01-08 14:43:35.000000000 
+0100
+++ new/imapfilter-2.8.2/src/auxiliary.lua      2023-12-26 20:20:05.000000000 
+0100
@@ -73,11 +73,11 @@
 
     count = 0
     while true do
-        local r = table.pack(pcall(commands))
+        local r = {pcall(commands)}
         if retries == nil or count < retries then
-            if r[1] then return table.unpack(r) end
+            if r[1] then return r end
         else
-            if not r[1] then return table.unpack(r) end
+            if not r[1] then return r end
         end
         collectgarbage()
         count = count + 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.8.1/src/imapfilter.h 
new/imapfilter-2.8.2/src/imapfilter.h
--- old/imapfilter-2.8.1/src/imapfilter.h       2023-01-08 14:43:35.000000000 
+0100
+++ new/imapfilter-2.8.2/src/imapfilter.h       2023-12-26 20:20:05.000000000 
+0100
@@ -33,6 +33,8 @@
 #define CAPABILITY_CHILDREN            0x04
 #define CAPABILITY_IDLE                        0x08
 #define CAPABILITY_XOAUTH2             0x10
+#define CAPABILITY_ENABLE              0x20
+#define CAPABILITY_UTF8                        0x40
 
 /* Status responses and response codes. */
 #define STATUS_BYE                     -2
@@ -135,8 +137,8 @@
 char *xstrncpy(char *dest, const char *src, size_t size);
 
 /*     namespace.c     */
-const char *apply_namespace(const char *mbox, char *prefix, char delim);
-const char *reverse_namespace(const char *mbox, char *prefix, char delim);
+const char *apply_namespace(const char *mbox, session *ssn);
+const char *reverse_namespace(const char *mbox, session *ssn);
 
 /*     pcre.c          */
 LUALIB_API int luaopen_ifre(lua_State *lua);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.8.1/src/namespace.c 
new/imapfilter-2.8.2/src/namespace.c
--- old/imapfilter-2.8.1/src/namespace.c        2023-01-08 14:43:35.000000000 
+0100
+++ new/imapfilter-2.8.2/src/namespace.c        2023-12-26 20:20:05.000000000 
+0100
@@ -3,6 +3,7 @@
 #include <errno.h>
 
 #include "imapfilter.h"
+#include "session.h"
 #include "buffer.h"
 
 
@@ -23,7 +24,7 @@
  * by the mail server, from internal to mail server format.
  */
 const char *
-apply_namespace(const char *mbox, char *prefix, char delim)
+apply_namespace(const char *mbox, session *ssn)
 {
        int n;
        char *c;
@@ -32,22 +33,24 @@
        if (!strcasecmp(mbox, "INBOX"))
                return mbox;
 
-       m = apply_conversion(mbox);
+       m = mbox;
+       if (!ssn->utf8)
+               m = apply_conversion(mbox);
 
-       if ((prefix == NULL && delim == '\0') ||
-           (prefix == NULL && delim == '/'))
+       if ((ssn->ns.prefix == NULL && ssn->ns.delim == '\0') ||
+           (ssn->ns.prefix == NULL && ssn->ns.delim == '/'))
                return m;
 
        buffer_reset(&nbuf);
 
-       n = snprintf(nbuf.data, nbuf.size + 1, "%s%s", (prefix ? prefix : ""),
-           m);
+       n = snprintf(nbuf.data, nbuf.size + 1, "%s%s",
+           (ssn->ns.prefix ? ssn->ns.prefix : ""), m);
        if (n > (int)nbuf.size) {
                buffer_check(&nbuf, n);
                snprintf(nbuf.data, nbuf.size + 0, "%s%s",
-                   (prefix ? prefix : ""), m);
+                   (ssn->ns.prefix ? ssn->ns.prefix : ""), m);
        }
-       for (c = nbuf.data; (c = strchr(c, '/')) != NULL; *(c++) = delim);
+       for (c = nbuf.data; (c = strchr(c, '/')) != NULL; *(c++) = 
ssn->ns.delim);
 
        debug("namespace: '%s' -> '%s'\n", m, nbuf.data);
 
@@ -60,7 +63,7 @@
  * the mail server, from mail server format to internal format.
  */
 const char *
-reverse_namespace(const char *mbox, char *prefix, char delim)
+reverse_namespace(const char *mbox, session *ssn)
 {
        int n, o;
        char *c;
@@ -68,14 +71,17 @@
        if (!strcasecmp(mbox, "INBOX"))
                return mbox;
 
-       if ((prefix == NULL && delim == '\0') ||
-           (prefix == NULL && delim == '/'))
-               return reverse_conversion(mbox);
+       if ((ssn->ns.prefix == NULL && ssn->ns.delim == '\0') ||
+           (ssn->ns.prefix == NULL && ssn->ns.delim == '/')) {
+               if (!ssn->utf8)
+                       return reverse_conversion(mbox);
+               return mbox;
+       }
 
        buffer_reset(&nbuf);
 
-       o = strlen(prefix ? prefix : "");
-       if (strncasecmp(mbox, (prefix ? prefix : ""), o))
+       o = strlen(ssn->ns.prefix ? ssn->ns.prefix : "");
+       if (strncasecmp(mbox, (ssn->ns.prefix ? ssn->ns.prefix : ""), o))
                o = 0;
 
        n = snprintf(nbuf.data, nbuf.size + 1, "%s", mbox + o);
@@ -83,7 +89,7 @@
                buffer_check(&nbuf, n);
                snprintf(nbuf.data, nbuf.size + 1, "%s", mbox + o);
        }
-       for (c = nbuf.data; (c = strchr(c, delim)) != NULL; *(c++) = '/');
+       for (c = nbuf.data; (c = strchr(c, ssn->ns.delim)) != NULL; *(c++) = 
'/');
 
        debug("namespace: '%s' <- '%s'\n", mbox, nbuf.data);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.8.1/src/request.c 
new/imapfilter-2.8.2/src/request.c
--- old/imapfilter-2.8.1/src/request.c  2023-01-08 14:43:35.000000000 +0100
+++ new/imapfilter-2.8.2/src/request.c  2023-12-26 20:20:05.000000000 +0100
@@ -212,6 +212,16 @@
        TRY(t = send_request(ssn, "CAPABILITY"));
        TRY(response_capability(ssn, t));
 
+       if (!strcasecmp(get_option_string("charset"), "UTF-8")) {
+               if (ssn->capabilities & CAPABILITY_ENABLE &&
+                       ssn->capabilities & CAPABILITY_UTF8) {
+                       TRY(t = send_request(ssn, "ENABLE UTF8=ACCEPT"));
+                       TRY(r = response_generic(ssn, t));
+                       if (r == STATUS_OK)
+                               ssn->utf8 = 1;
+               }
+       }
+
        if (ssn->capabilities & CAPABILITY_NAMESPACE &&
            get_option_boolean("namespace")) {
                TRY(t = send_request(ssn, "NAMESPACE"));
@@ -251,7 +261,7 @@
        int t, r;
        const char *m;
 
-       m = apply_namespace(mbox, ssn->ns.prefix, ssn->ns.delim);
+       m = apply_namespace(mbox, ssn);
 
        if (ssn->protocol == PROTOCOL_IMAP4REV1) {
                TRY(t = send_request(ssn,
@@ -275,7 +285,7 @@
        int t, r;
        const char *m;
 
-       m = apply_namespace(mbox, ssn->ns.prefix, ssn->ns.delim);
+       m = apply_namespace(mbox, ssn);
 
        TRY(t = send_request(ssn, "SELECT \"%s\"", m));
        TRY(r = response_select(ssn, t));
@@ -327,7 +337,7 @@
        int t, r;
        const char *n;
 
-       n = apply_namespace(name, ssn->ns.prefix, ssn->ns.delim);
+       n = apply_namespace(name, ssn);
        
        TRY(t = send_request(ssn, "LIST \"%s\" \"%s\"", refer, n));
        TRY(r = response_list(ssn, t, mboxs, folders));
@@ -346,7 +356,7 @@
        int t, r;
        const char *n;
 
-       n = apply_namespace(name, ssn->ns.prefix, ssn->ns.delim);
+       n = apply_namespace(name, ssn);
 
        TRY(t = send_request(ssn, "LSUB \"%s\" \"%s\"", refer, n));
        TRY(r = response_list(ssn, t, mboxs, folders));
@@ -364,7 +374,7 @@
 {
        int t, r;
 
-       if (charset != NULL && *charset != '\0') {
+       if (charset != NULL && *charset != '\0' && !ssn->utf8) {
                TRY(t = send_request(ssn, "UID SEARCH CHARSET \"%s\" %s",
                    charset, criteria));
        } else {
@@ -385,7 +395,7 @@
 {
        int t, r;
 
-       TRY(t = send_request(ssn, "UID FETCH %s FAST", mesg));
+       TRY(t = send_request(ssn, "UID FETCH %s (FLAGS INTERNALDATE 
RFC822.SIZE)", mesg));
        TRY(r = response_fetchfast(ssn, t, flags, date, size));
 
        return r;
@@ -567,7 +577,7 @@
        if (opts.dryrun)
                return STATUS_DRYRUN;
 
-       m = apply_namespace(mbox, ssn->ns.prefix, ssn->ns.delim);
+       m = apply_namespace(mbox, ssn);
 
        TRY(t = send_request(ssn, "UID COPY %s \"%s\"", mesg, m));
        TRY(r = response_generic(ssn, t));
@@ -601,7 +611,7 @@
        if (opts.dryrun)
                return STATUS_DRYRUN;
 
-       m = apply_namespace(mbox, ssn->ns.prefix, ssn->ns.delim);
+       m = apply_namespace(mbox, ssn);
 
        TRY(t = send_request(ssn, "APPEND \"%s\"%s%s%s%s%s%s {%d}", m,
            (flags ? " (" : ""), (flags ? flags : ""),
@@ -650,7 +660,7 @@
        if (opts.dryrun)
                return STATUS_DRYRUN;
 
-       m = apply_namespace(mbox, ssn->ns.prefix, ssn->ns.delim);
+       m = apply_namespace(mbox, ssn);
 
        TRY(t = send_request(ssn, "CREATE \"%s\"", m));
        TRY(r = response_generic(ssn, t));
@@ -671,7 +681,7 @@
        if (opts.dryrun)
                return STATUS_DRYRUN;
 
-       m = apply_namespace(mbox, ssn->ns.prefix, ssn->ns.delim);
+       m = apply_namespace(mbox, ssn);
 
        TRY(t = send_request(ssn, "DELETE \"%s\"", m));
        TRY(r = response_generic(ssn, t));
@@ -692,8 +702,8 @@
        if (opts.dryrun)
                return STATUS_DRYRUN;
 
-       o = xstrdup(apply_namespace(oldmbox, ssn->ns.prefix, ssn->ns.delim));
-       n = xstrdup(apply_namespace(newmbox, ssn->ns.prefix, ssn->ns.delim));
+       o = xstrdup(apply_namespace(oldmbox, ssn));
+       n = xstrdup(apply_namespace(newmbox, ssn));
 
        TRY(t = send_request(ssn, "RENAME \"%s\" \"%s\"", o, n));
        TRY(r = response_generic(ssn, t));
@@ -714,7 +724,7 @@
        if (opts.dryrun)
                return STATUS_DRYRUN;
 
-       m = apply_namespace(mbox, ssn->ns.prefix, ssn->ns.delim);
+       m = apply_namespace(mbox, ssn);
 
        TRY(t = send_request(ssn, "SUBSCRIBE \"%s\"", m));
        TRY(r = response_generic(ssn, t));
@@ -735,7 +745,7 @@
        if (opts.dryrun)
                return STATUS_DRYRUN;
 
-       m = apply_namespace(mbox, ssn->ns.prefix, ssn->ns.delim);
+       m = apply_namespace(mbox, ssn);
 
        TRY(t = send_request(ssn, "UNSUBSCRIBE \"%s\"", m));
        TRY(r = response_generic(ssn, t));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.8.1/src/response.c 
new/imapfilter-2.8.2/src/response.c
--- old/imapfilter-2.8.1/src/response.c 2023-01-08 14:43:35.000000000 +0100
+++ new/imapfilter-2.8.2/src/response.c 2023-12-26 20:20:05.000000000 +0100
@@ -350,6 +350,10 @@
                        ssn->capabilities |= CAPABILITY_IDLE;
                if (xstrcasestr(s, "AUTH=XOAUTH2"))
                        ssn->capabilities |= CAPABILITY_XOAUTH2;
+               if (xstrcasestr(s, "ENABLE"))
+                       ssn->capabilities |= CAPABILITY_ENABLE;
+               if (xstrcasestr(s, "UTF8=ACCEPT"))
+                       ssn->capabilities |= CAPABILITY_UTF8;
 
                xfree(s);
        }
@@ -535,7 +539,7 @@
                        s = xstrndup(b + re->pmatch[8].rm_so, strtoul(b +
                            re->pmatch[7].rm_so, NULL, 10));
 
-               v = reverse_namespace(s, ssn->ns.prefix, ssn->ns.delim);
+               v = reverse_namespace(s, ssn);
                n = strlen(v);
 
                if (!xstrcasestr(a, "\\NoSelect")) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.8.1/src/session.c 
new/imapfilter-2.8.2/src/session.c
--- old/imapfilter-2.8.1/src/session.c  2023-01-08 14:43:35.000000000 +0100
+++ new/imapfilter-2.8.2/src/session.c  2023-12-26 20:20:05.000000000 +0100
@@ -41,6 +41,7 @@
        ssn->capabilities = CAPABILITY_NONE;
        ssn->ns.prefix = NULL;
        ssn->ns.delim = '\0';
+       ssn->utf8 = 0;
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.8.1/src/session.h 
new/imapfilter-2.8.2/src/session.h
--- old/imapfilter-2.8.1/src/session.h  2023-01-08 14:43:35.000000000 +0100
+++ new/imapfilter-2.8.2/src/session.h  2023-12-26 20:20:05.000000000 +0100
@@ -16,6 +16,7 @@
                char *prefix;   /* Namespace prefix. */
                char delim;     /* Namespace delimiter. */
        } ns;
+       int utf8;               /* UTF8 enabled. */
 } session;
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imapfilter-2.8.1/src/version.h 
new/imapfilter-2.8.2/src/version.h
--- old/imapfilter-2.8.1/src/version.h  2023-01-08 14:43:35.000000000 +0100
+++ new/imapfilter-2.8.2/src/version.h  2023-12-26 20:20:05.000000000 +0100
@@ -3,7 +3,7 @@
 
 
 /* Program's version number. */
-#define VERSION                "2.8.1"
+#define VERSION                "2.8.2"
 
 /* Program's copyright. */
 #define COPYRIGHT      "Copyright (c) 2001-2023 Eleftherios Chatzimparmpas"

Reply via email to