Hello community,

here is the log from the commit of package maildir-utils for openSUSE:Factory 
checked in at 2017-12-19 10:58:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/maildir-utils (Old)
 and      /work/SRC/openSUSE:Factory/.maildir-utils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "maildir-utils"

Tue Dec 19 10:58:44 2017 rev:6 rq:558069 version:1.0~alpha3

Changes:
--------
--- /work/SRC/openSUSE:Factory/maildir-utils/maildir-utils.changes      
2017-11-14 12:57:13.174954153 +0100
+++ /work/SRC/openSUSE:Factory/.maildir-utils.new/maildir-utils.changes 
2017-12-19 10:58:46.520516592 +0100
@@ -1,0 +2,10 @@
+Mon Dec 18 11:05:36 UTC 2017 - [email protected]
+
+- Update to 1.0-alpha3:
+  * parser: promote single value to a range for range-fields 
+  * mu: support 'raw' query (internally) 
+  * mu: handle funny msgids 
+  * mu4e: improve msgid quoting 
+  * mu4e: fix typo in mu4e~docid-msgid-param 
+
+-------------------------------------------------------------------

Old:
----
  mu-1.0-alpha2.tar.xz

New:
----
  mu-1.0-alpha3.tar.xz

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

Other differences:
------------------
++++++ maildir-utils.spec ++++++
--- /var/tmp/diff_new_pack.L5eG2e/_old  2017-12-19 10:58:47.180484732 +0100
+++ /var/tmp/diff_new_pack.L5eG2e/_new  2017-12-19 10:58:47.184484539 +0100
@@ -16,9 +16,9 @@
 #
 
 
-%define _version 1.0-alpha2
+%define _version 1.0-alpha3
 Name:           maildir-utils
-Version:        1.0~alpha2
+Version:        1.0~alpha3
 Release:        0
 Summary:        Maildir indexer and searcher
 License:        GPL-3.0+

++++++ mu-1.0-alpha2.tar.xz -> mu-1.0-alpha3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.0-alpha2/NEWS.org new/mu-1.0-alpha3/NEWS.org
--- old/mu-1.0-alpha2/NEWS.org  2017-10-31 05:57:39.000000000 +0100
+++ new/mu-1.0-alpha3/NEWS.org  2017-12-17 16:19:42.000000000 +0100
@@ -1,6 +1,44 @@
 #+STARTUP:showall
 * NEWS (user visible changes)
 
+** 1.0 (unreleased)
+   
+   mu 1.0, after 10 years or so!
+
+*** mu
+
+    - New, custom query parser which Xapian's 'QueryParser' both in mu
+      and mu4e. Existing queries should generally still work, but the
+      new engine handles non-alphanum much better.
+    - Support regular expression queries (with the new query engine)
+    - cfind: ensure nicks are unique
+    
+*** mu4e
+
+    - allow for rewriting message bodies
+    - electric-quote-(local-)mode work when composing emails
+    - Respect format=flowed and delsp=yes for viewing plain-text
+      messages
+    - Added new mu4e-split-view mode: single-window
+    - Unbreak abbrevs in mu4e-compose-mode
+    - Allow forwarding messages as attachments
+      (`mu4e-compose-forward-as-attachment')
+    - Updated documentation
+
+*** Contributors for this release:
+
+    Ævar Arnfjörð Bjarmason, Alex Bennée, Arne Köhn, Christophe
+    Troestler, Damien Garaud, Dirk-Jan C. Binnema, galaunay, Hong Xu,
+    Ian Kelling, John Whitbeck, Josiah Schwab, Jun Hao, Krzysztof
+    Jurewicz, maxime, Mekeor Melire, Nathaniel Nicandro, Ronald Evers,
+    Sean 'Shaleh' Perry, Sébastien Le Callonnec, Stig Brautaset,
+    Thierry Volpiatto, Titus von der Malsburg, Vladimir Sedach, Wataru
+    Ashihara, Yuri D'Elia.
+
+    And all the people on the mailing-list and in github, with bug
+    reports, questions and suggestions.
+
+
 ** 0.9.18
 
    New development series which will lead to 0.9.18.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.0-alpha2/configure new/mu-1.0-alpha3/configure
--- old/mu-1.0-alpha2/configure 2017-11-12 13:38:33.000000000 +0100
+++ new/mu-1.0-alpha3/configure 2017-12-17 16:22:40.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for mu 1.0-alpha2.
+# Generated by GNU Autoconf 2.69 for mu 1.0-alpha3.
 #
 # Report bugs to <https://github.com/djcb/mu/issues>.
 #
@@ -592,8 +592,8 @@
 # Identity of this package.
 PACKAGE_NAME='mu'
 PACKAGE_TARNAME='mu'
-PACKAGE_VERSION='1.0-alpha2'
-PACKAGE_STRING='mu 1.0-alpha2'
+PACKAGE_VERSION='1.0-alpha3'
+PACKAGE_STRING='mu 1.0-alpha3'
 PACKAGE_BUGREPORT='https://github.com/djcb/mu/issues'
 PACKAGE_URL=''
 
@@ -1418,7 +1418,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures mu 1.0-alpha2 to adapt to many kinds of systems.
+\`configure' configures mu 1.0-alpha3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1488,7 +1488,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of mu 1.0-alpha2:";;
+     short | recursive ) echo "Configuration of mu 1.0-alpha3:";;
    esac
   cat <<\_ACEOF
 
@@ -1645,7 +1645,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-mu configure 1.0-alpha2
+mu configure 1.0-alpha3
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2194,7 +2194,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by mu $as_me 1.0-alpha2, which was
+It was created by mu $as_me 1.0-alpha3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3171,7 +3171,7 @@
 
 # Define the identity of the package.
  PACKAGE='mu'
- VERSION='1.0-alpha2'
+ VERSION='1.0-alpha3'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -22481,7 +22481,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by mu $as_me 1.0-alpha2, which was
+This file was extended by mu $as_me 1.0-alpha3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -22547,7 +22547,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-mu config.status 1.0-alpha2
+mu config.status 1.0-alpha3
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.0-alpha2/configure.ac 
new/mu-1.0-alpha3/configure.ac
--- old/mu-1.0-alpha2/configure.ac      2017-11-12 13:37:53.000000000 +0100
+++ new/mu-1.0-alpha3/configure.ac      2017-12-17 16:22:13.000000000 +0100
@@ -15,7 +15,7 @@
 ## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 AC_PREREQ([2.68])
-AC_INIT([mu],[1.0-alpha2],[https://github.com/djcb/mu/issues],[mu])
+AC_INIT([mu],[1.0-alpha3],[https://github.com/djcb/mu/issues],[mu])
 AC_COPYRIGHT([Copyright (C) 2008-2017 Dirk-Jan C. Binnema])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_SRCDIR([mu/mu.cc])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.0-alpha2/lib/mu-query.cc 
new/mu-1.0-alpha3/lib/mu-query.cc
--- old/mu-1.0-alpha2/lib/mu-query.cc   2017-11-02 07:06:48.000000000 +0100
+++ new/mu-1.0-alpha3/lib/mu-query.cc   2017-12-03 13:04:06.000000000 +0100
@@ -194,22 +194,20 @@
 };
 
 static const Xapian::Query
-get_query (MuQuery *mqx, const char* searchexpr, GError **err)
-{
-       try {
-               Mux::WarningVec warns;
-               const auto tree = Mux::parse (searchexpr, warns,
-                                             
std::make_unique<MuProc>(mqx->db()));
-               for (const auto w: warns)
-                       std::cerr << w << std::endl;
+get_query (MuQuery *mqx, const char* searchexpr, bool raw, GError **err) try {
 
-               return Mux::xapian_query (tree);
-
-       } catch (...) {
-               mu_util_g_set_error (err,MU_ERROR_XAPIAN_QUERY,
-                                    "parse error in query");
-               throw;
-       }
+       Mux::WarningVec warns;
+       const auto tree = Mux::parse (searchexpr, warns,
+                                     std::make_unique<MuProc>(mqx->db()));
+       for (const auto w: warns)
+               std::cerr << w << std::endl;
+
+       return Mux::xapian_query (tree);
+
+} catch (...) {
+       mu_util_g_set_error (err,MU_ERROR_XAPIAN_QUERY,
+                            "parse error in query");
+       throw;
 }
 
 MuQuery*
@@ -279,16 +277,17 @@
 
 static Xapian::Enquire
 get_enquire (MuQuery *self, const char *searchexpr, MuMsgFieldId sortfieldid,
-            bool descending, GError **err)
+            bool descending, bool raw, GError **err)
 {
        Xapian::Enquire enq (self->db());
 
        try {
-               /* empty or "" means "matchall" */
-               if (!mu_str_is_empty(searchexpr) &&
+               if (raw)
+                       enq.set_query(Xapian::Query(Xapian::Query(searchexpr)));
+               else if (!mu_str_is_empty(searchexpr) &&
                    g_strcmp0 (searchexpr, "\"\"") != 0) /* NULL or "" or """" 
*/
-                       enq.set_query(get_query (self, searchexpr, err));
-               else
+                       enq.set_query(get_query (self, searchexpr, raw, err));
+               else/* empty or "" means "matchall" */
                        enq.set_query(Xapian::Query::MatchAll);
        } catch (...) {
                mu_util_g_set_error (err, MU_ERROR_XAPIAN_QUERY,
@@ -413,15 +412,16 @@
        try {
                MuMsgIter       *iter;
                MuQueryFlags     first_flags;
-               bool             inc_related  = flags & 
MU_QUERY_FLAG_INCLUDE_RELATED;
-               bool             descending   = flags & 
MU_QUERY_FLAG_DESCENDING;
+               const auto       inc_related  = flags & 
MU_QUERY_FLAG_INCLUDE_RELATED;
+               const auto       descending   = flags & 
MU_QUERY_FLAG_DESCENDING;
+               const auto       raw          = flags & MU_QUERY_FLAG_RAW;
                Xapian::Enquire enq (get_enquire(self, searchexpr, sortfieldid,
-                                                descending, err));
+                                                descending, raw, err));
 
-               /* when we're doing a 'include-related query', we're
-                * actually doing /two/ queries; one to get the
-                * initial matches, and based on that one to get all
-                * messages in threads in those matches.
+               /* when we're doing a 'include-related query', wea're actually
+                * doing /two/ queries; one to get the initial matches, and
+                * based on that one to get all messages in threads in those
+                * matches.
                 */
 
                /* get the 'real' maxnum if it was specified as < 0 */
@@ -470,7 +470,7 @@
        g_return_val_if_fail (searchexpr, NULL);
 
        try {
-               Xapian::Query query (get_query(self, searchexpr, err));
+               Xapian::Query query (get_query(self, searchexpr, false, err));
                return g_strdup(query.get_description().c_str());
 
        } MU_XAPIAN_CATCH_BLOCK_RETURN(NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.0-alpha2/lib/mu-query.h 
new/mu-1.0-alpha3/lib/mu-query.h
--- old/mu-1.0-alpha2/lib/mu-query.h    2017-10-25 22:48:10.000000000 +0200
+++ new/mu-1.0-alpha3/lib/mu-query.h    2017-12-03 12:55:29.000000000 +0100
@@ -70,7 +70,8 @@
        MU_QUERY_FLAG_SKIP_UNREADABLE = 1 << 1, /**< skip unreadable msgs */
        MU_QUERY_FLAG_SKIP_DUPS       = 1 << 2, /**< skip duplicate msgs */
        MU_QUERY_FLAG_INCLUDE_RELATED = 1 << 3, /**< include related msgs */
-       MU_QUERY_FLAG_THREADS         = 1 << 4  /**< calculate threading info */
+       MU_QUERY_FLAG_THREADS         = 1 << 4, /**< calculate threading info */
+       MU_QUERY_FLAG_RAW             = 1 << 5  /**< don't parse the query */
 } MuQueryFlags;
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.0-alpha2/lib/parser/parser.cc 
new/mu-1.0-alpha3/lib/parser/parser.cc
--- old/mu-1.0-alpha2/lib/parser/parser.cc      2017-11-04 13:31:17.000000000 
+0100
+++ new/mu-1.0-alpha3/lib/parser/parser.cc      2017-12-03 11:39:27.000000000 
+0100
@@ -181,6 +181,10 @@
        if (dotdot != std::string::npos)
                return range(fields, val.substr(0, dotdot), val.substr(dotdot + 
2),
                             token.pos, proc, warnings);
+       else if (proc->is_range_field(fields.front().field)) {
+               // range field without a range - treat as field:val..val
+               return range (fields, val, val, token.pos, proc, warnings);
+       }
 
        // if nothing else, it's a value.
        return value (fields, val, token.pos, proc, warnings);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.0-alpha2/mu/mu-cmd-server.c 
new/mu-1.0-alpha3/mu/mu-cmd-server.c
--- old/mu-1.0-alpha2/mu/mu-cmd-server.c        2017-10-30 21:06:18.000000000 
+0100
+++ new/mu-1.0-alpha3/mu/mu-cmd-server.c        2017-12-03 21:03:21.000000000 
+0100
@@ -265,70 +265,37 @@
        } while (0);
 
 
-
-/* NOTE: this assumes there is only _one_ docid (message) for the
- * particular message id */
-static unsigned
-get_docid_from_msgid (MuQuery *query, const char *str, GError **err)
-{
-       gchar *querystr;
-       unsigned docid;
-       MuMsgIter *iter;
-
-       querystr = g_strdup_printf ("msgid:%s", str);
-       iter = mu_query_run (query, querystr,
-                            MU_MSG_FIELD_ID_NONE,
-                            1, MU_QUERY_FLAG_NONE, err);
-       g_free (querystr);
-
-       docid = MU_STORE_INVALID_DOCID;
-       if (!iter || mu_msg_iter_is_done (iter))
-               mu_util_g_set_error (err, MU_ERROR_NO_MATCHES,
-                                    "could not find message %s", str);
-       else {
-               MuMsg *msg;
-               msg = mu_msg_iter_get_msg_floating (iter);
-               if (!mu_msg_is_readable(msg)) {
-                       mu_util_g_set_error (err, MU_ERROR_FILE_CANNOT_READ,
-                                            "'%s' is not readable",
-                                            mu_msg_get_path(msg));
-               } else
-                       docid = mu_msg_iter_get_docid (iter);
-
-               mu_msg_iter_destroy (iter);
-       }
-
-       return docid;
-}
-
-
 /* get a *list* of all messages with the given message id */
 static GSList*
-get_docids_from_msgids (MuQuery *query, const char *str, GError **err)
+get_docids_from_msgids (MuQuery *query, const char *msgid,
+                       int max, GError **err)
 {
-       gchar *querystr;
-       MuMsgIter *iter;
-       GSList *lst;
-
-       querystr = g_strdup_printf ("msgid:%s", str);
-       iter = mu_query_run (query, querystr, MU_MSG_FIELD_ID_NONE,
-                            -1 /*unlimited*/, MU_QUERY_FLAG_NONE,
-                            err);
-       g_free (querystr);
+       char             xprefix;
+       char            *rawq, *tmp;
+       MuMsgIter       *iter;
+       GSList          *lst;
+
+       xprefix = mu_msg_field_xapian_prefix(MU_MSG_FIELD_ID_MSGID);
+       /*XXX this is a bit dodgy */
+       tmp     = g_ascii_strdown(msgid, -1);
+       rawq    = g_strdup_printf("%c%s", xprefix, tmp);
+       g_free(tmp);
+       iter    = mu_query_run (query, rawq, MU_MSG_FIELD_ID_NONE,
+                               max, MU_QUERY_FLAG_RAW, err);
+       g_free (rawq);
 
        if (!iter || mu_msg_iter_is_done (iter)) {
                mu_util_g_set_error (err, MU_ERROR_NO_MATCHES,
-                                    "could not find message %s", str);
+                                    "could not find message(s) for msgid %s",
+                                    msgid);
                return NULL;
        }
 
        lst = NULL;
        do {
                lst = g_slist_prepend
-                       (lst,
-                        GSIZE_TO_POINTER(mu_msg_iter_get_docid (iter)));
+                       (lst, GSIZE_TO_POINTER(mu_msg_iter_get_docid (iter)));
        } while (mu_msg_iter_next (iter));
-
        mu_msg_iter_destroy (iter);
 
        return lst;
@@ -342,7 +309,9 @@
 static unsigned
 determine_docid (MuQuery *query, GHashTable *args, GError **err)
 {
-       const char* docidstr, *msgidstr;
+       GSList          *docids;
+       unsigned         docid;
+       const char*      docidstr, *msgidstr;
 
        docidstr = get_string_from_args (args, "docid", TRUE, err);
        if (docidstr)
@@ -356,7 +325,14 @@
                return MU_STORE_INVALID_DOCID;
        }
 
-       return get_docid_from_msgid (query, msgidstr, err);
+       docids = get_docids_from_msgids (query, msgidstr, 1, err);
+       if (!docids)
+               return MU_STORE_INVALID_DOCID;
+
+       docid = GPOINTER_TO_UINT(docids->data);
+       g_slist_free (docids);
+
+       return docid;
 }
 
 
@@ -1291,7 +1267,8 @@
        if (!msgid || !flagstr || maildir)
                return FALSE;
 
-       if (!(docids = get_docids_from_msgids (ctx->query, msgid, err))) {
+       if (!(docids = get_docids_from_msgids (ctx->query, msgid,
+                                              -1/*unlimited*/, err))) {
                print_and_clear_g_error (err);
                return TRUE;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.0-alpha2/mu4e/mu4e-meta.el 
new/mu-1.0-alpha3/mu4e/mu4e-meta.el
--- old/mu-1.0-alpha2/mu4e/mu4e-meta.el 2017-11-12 13:38:44.000000000 +0100
+++ new/mu-1.0-alpha3/mu4e/mu4e-meta.el 2017-12-17 16:22:48.000000000 +0100
@@ -1,5 +1,5 @@
 ;; auto-generated
-(defconst mu4e-mu-version "1.0-alpha2"
+(defconst mu4e-mu-version "1.0-alpha3"
   "Required mu binary version; mu4e's version must agree with this.")
 
 (defconst mu4e-builddir "/home/djcb/Sources/mu"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mu-1.0-alpha2/mu4e/mu4e-proc.el 
new/mu-1.0-alpha3/mu4e/mu4e-proc.el
--- old/mu-1.0-alpha2/mu4e/mu4e-proc.el 2017-11-08 20:09:04.000000000 +0100
+++ new/mu-1.0-alpha3/mu4e/mu4e-proc.el 2017-12-10 12:51:52.000000000 +0100
@@ -314,7 +314,7 @@
   "Construct a backend parameter based on DOCID-OR-MSGID."
   (format
     (if (stringp docid-or-msgid)
-      "msgid:\"%s\""
+      (concat "msgid:"(mu4e~escape (format "%s" docid-or-msgid)))
       "docid:%d")
     docid-or-msgid))
 


Reply via email to