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