GNOME Bugzilla – Bug 336055
Win32 Evolution doesn't show the hour an email was received
Last modified: 2013-09-10 14:04:15 UTC
Please describe the problem: The Windows version of Evolution does not display the hour an e-mail was received, or at least not in the inboxes. This has affected me on both my primary computer, and my secondary Windows XP SP2 computer using different email accounts, one IMAP and the other POP3. For the sake of troubleshooting purposes, I deleted all my settings, and started over again in evolution following all the default settings in the wizard, except for setting it to IMAP and setting the IMAP and SMTP server addresses. I then tested evolution 2.6 on gnome 2.12.2 from thse openSUSE factory, and this bug was not present. This was done using the official win32 builds of the gnome 2.14.0 platform and evolution, found below: http://ftp.gnome.org/pub/GNOME/desktop/2.14/2.14.0/win32/ http://ftp.gnome.org/pub/GNOME/platform/2.14/2.14.0/win32/ Steps to reproduce: 1. Download all the binary win32 zip archives, under both the platform and desktop folders, and extract them to the same folder. 2. Add the two required folders to your windows PATH (such as: C:\evolution\lib\evolution\2.6\components;C:\evolution\bin ) 3. Run evolution-2.6.exe. 4. This seems to happen with pretty different settings, but it does specifically happen with a setup of using imap, entering the imap and smtp server addresses, and then using all the default settings in the wizard. 5. Open your IMAP account's inbox using the pane on the left. Actual results: The hour an email was received is not displayed. You only see the day and the minute it was received. Expected results: Does this happen every time? This happens every time. Other information: The windows version of evolution is supposed to have its bugs mentioned here, according to Tor Lillqvist. Expect alot of them.
Created attachment 62019 [details] Evolution missing the hour on windows XP.
Created attachment 62020 [details] evolution showing the hour on suse with same account
I forgot to mention, the time zone is set to America/New_York, and my language (from Windows) is English (United States.) I figure these are not what TML has set.
Created attachment 62021 [details] Output from starting evolution with no settings, following the wizard as described above, and then checking the IMAP account's inbox.
Yup, can verify after changing locale in Regional Options to English (US).
The problem is that the function ecd_get_text() in widgets/table/e-cell-date.c() uses the strftime() specifier %l which is a GNU extension and not implemented in the Microsoft C library. There are also several other places where %l is used when calling (eventually) strftime(). And in fact the function filter_date() in mail/message-list.c looks largely the same as ecd_get_text(), yet another case of lovely copy-paste coding habits. Most of the uses of the %l strftime format pass through e_utf8_strftime_fix_am_pm(), so it would be simplest to add Win32-specific code there that looks for %l and handles it appropriately: Change to %I, then afterwards check if the hour has a leading zero, and if so, change the zero to a blank. The exception is format_date_and_time_x() in plugins/itip-formatter/itip-view.c. On the other hand, that static function is always called with the third parameter use_24_hour_format TRUE, so the cases where it would try to use %l are never reached, d'oh.
Created attachment 62073 [details] [review] Suggested patch OK to commit to HEAD and stable?
uhm... let's avoid the "ok, we missed it, move it to the next milestone"-spam by just using a general "2.6" milestone and not a 2.6.1 one...
Oh well, no response, but as this is a change that affects Win32 only, went ahead and committed to HEAD and gnome-2-14.