Commit Graph

28 Commits

Author SHA1 Message Date
b55e191421 update for lib/utils split
Update sources with the new paths
2019-12-22 15:26:45 +02:00
2aa299b3ac mu: add mu_msg_iter_is_(first|last)
This makes it a bit easier to process the output.
2018-11-11 12:11:06 +02:00
93c6ff1f85 mu: protect against overly long keys
We got some errors when some of the key values exceeded the Xapian
maximum; in particular the message-id.

So make all the key-methods check, and truncate the message-id if
necessary.
2018-08-14 21:57:33 +03:00
a0640a0532 Fix call to c_str() that sometimes dumps core on OpenBSD i386-current
The core dump only seems to occur if mu4e-headers-include-related is
set to t.

Apparently, std::string's c_str() method is confusing to many
people, c.f.
  http://stackoverflow.com/questions/22330250/how-to-return-a-stdstring-c-str

The answer seems to be that the pointer c_str() returns may not be
valid past the current statement; returning it, or even using it
subsequently can have you sending a wild pointer into e.g. g_strdup().

In short, it seems idioms like this are okay:

    return g_strcmp0 (s1.c_str(), s2.c_str()) < 0;

Whereas idioms like this are not:

    const char *msgid (iter->msgid().c_str());

    return msgid ? g_strdup (msgid) : NULL;

At least in my environment by the time we get to g_strdup() the
pointer returned by c_str() is wild and points at garbage.  Since
g_strdup() returns NULL if passed NULL, it seems collapsing it into a
single line is not only possible but necessary.

I've looked at all of the calls to c_str() in mu and it appears to
me this was the one remaining one that was bad.
2015-07-02 15:14:29 -05:00
baebd53fb8 Fix a core dump under OpenBSD
Based on a patch by StAlphonsos
2015-03-06 00:12:34 +02:00
057fa6430e * mu: fix duplicate detection 2013-04-30 21:53:16 +03:00
3dc98724b3 * mu: provide fake-msgids for messages without; this fixes the problem where e.g. draft messages
were not visible when using --include-related
2013-04-09 21:20:25 +03:00
855e81db99 * update copyright years 2013-03-30 11:32:07 +02:00
342195a248 * mu: fix pre-condition warning when getting related messages without threads 2013-03-16 18:25:19 +02:00
70356a62f5 * mu-query/mu-msg-iter: when showing related message (--include-related),
favor the ones that were in the original set
2012-12-28 14:48:00 +02:00
3d875307e2 * mu-msg-iter: temporarily disable skipping duplicates when threading
(we need thread-info for all duplicates too, since we do not know which one
  will end up in the final result set)
2012-12-27 15:59:15 +02:00
05b04bdaed * mu-msg-iter.cc: don't skip dups on when threading
(due to sorting, we do not know if the same message are 'dup' or 'original'
  in the final results, so we need to calculate threading info for both)
2012-12-27 12:07:43 +02:00
99f473945e * mu-msg-iter: re-introduce MU_MSG_ITER_FLAG_THREADS, and special-case queries
with thread support
2012-12-27 11:07:52 +02:00
27a80dcb67 * handle the no-matches-found case correctly 2012-12-25 20:33:02 +02:00
f525c54356 * mu-msg-iter.cc: get /all/ matches on the first go, thread those, then return
maxnum

  in situations where the number of matches is significantly greater than
  maxnum, results are much better this way.
2012-12-25 18:49:14 +02:00
03921e6cf1 * mu-msg-iter: add mu_msg_iter_get_thread_id, make using threads non-optional 2012-12-25 17:32:43 +02:00
f366c0f680 * mu-msg-iter: add mu_msg_iter_get_msgid and mu_msg_iter_get_refs 2012-12-24 14:59:48 +02:00
836c932f2a * mu-msg-iter.cc: cleanup the skip-dup checking a bit; in particular, include
the first one
2012-12-24 12:06:09 +02:00
c36906a254 * mu-msg-iter.cc: if we're using threaded search results, get *all* matches,
calculate threads and then return maxnum matches
2012-12-23 16:42:44 +02:00
4c47b0b122 * mu-msg-iter.cc: improve dup checking 2012-12-22 21:12:11 +02:00
76adc694c0 * add basic support for skipping dups, unreadable messages in mu-msg-iter 2012-12-17 22:29:39 +02:00
8fdd82d549 * mu-msg-iter.{cc,h}: make flag names a bit clearer 2012-12-16 15:08:03 +02:00
50f5c7affb * mu-msg-iter: add basic implemenation of checking for msgid dups, msg file
existence
2012-12-16 14:17:58 +02:00
bc90df6c53 * cosmetics / minor 2012-10-23 20:29:24 +03:00
8ad01e4aa8 * lib: threading: pre-sort the threaded results, add some more comments 2012-10-17 17:59:33 +03:00
93171a5b90 * lib: try to reopen database when it got updated from the outside (for guile) 2012-08-19 09:57:49 +03:00
d92ad056e1 * cosmetics 2012-07-23 00:56:01 +03:00
46f10cfde9 * refactoring: split src/ into mu/ and lib/ 2012-05-21 09:25:53 +03:00