0.13.0 / master segfaults on 32-bit archs when printing 64-bit ints
geary master segfaults on IA32 / i386 due to wrong int format specifiers in debug() (i.e. printf).
Particularly, a segfault occurs when moving messages to trash. This crash is avoided with this patch:
--- a/src/engine/imap-engine/replay-ops/imap-engine-replay-removal.vala
+++ b/src/engine/imap-engine/replay-ops/imap-engine-replay-removal.vala
@@ -148,7 +148,7 @@ private class Geary.ImapEngine.ReplayRemoval : Geary.ImapEngine.ReplayOperation
}
debug("%s ReplayRemoval: completed, "
- + "(this.remote_count=%d local_count=%d starting local_count=%d this.position=%ld local_position=%ld marked=%s)",
+ + "(this.remote_count=%d local_count=%d starting local_count=%d this.position=%ld local_position=%lld marked=%s)",
this.owner.to_string(),
this.remote_count, new_local_count, local_count,
this.position.value, local_position, marked.to_string());
I don't know enough vala to fix this portably, since C macros like PRId64 are not supported.
It's likely that this is not the only place in geary code where a bug like this is hiding.