Re: [Evolution-hackers] There's no need to be so hard on iconv
On Thu, 2007-10-11 at 12:14 +0200, Philip Van Hoof wrote: I also have this one, for example Subject: =?ISO-2022-JP?B?GyRCJSIlaiUsLUUtRRsoQg==?= ( =?ISO-2022-JP?B?GyRCITchJiZYISYbKEI=?=)o =?ISO-2022-JP?B?GyRCIlwbKEI=?= =?ISO-2022-JP?B?GyRCIiglUSE8JXMbKEI=?= !! =?ISO-2022-JP?B?GyRCISMhJhsoQg==?= :*: =?ISO-2022-JP?B?GyRCISYbKEI=?= =?ISO-2022-JP?B?GyRCISwheRsoQg==?= I know that the characters (, )o , !! and :*: should not be there (at least, I think they shouldn't), I guess this is done by spam bots to confuse spamassassin (not sure, though). This check in the code (line 842 in camel-mime-utils.c) makes any such string become the base64 one. This is of course really not readable for normal human beings (although, it depends on what you call a normal one). 842: .. /* quick check to see if this could possibly be a real encoded word */ 843: .. if (len 8 || !(in[0] == '=' in[1] == '?' in[len-1] == '=' in[len-2] == '?')) { 844: .. d(printf(invalid\n)); 845: .. return NULL; 846: .. } When just trying to decode the string, ignoring the check, it does work quite well. At least for this case. I'm attaching yet another patch that ignores this check. The entire check should not be ignored. The len8 check, for example, is important. So don't commit this patch :-) On Thu, 2007-10-11 at 11:52 +0200, Philip Van Hoof wrote: In case iconv does not succeed in decoding for example the Subject header, it returns the base64 encoded one. That is is obviously not readable at all. The decoded one after base64 decoding (which did succeed in my test case) or whatever iconv could recover from it, sounds like a better option. This changeset (patch) on camel-mime-utils.c deals with the error situation (in case iconv did not return -1) by returning what(ever) iconv could recover from the string: http://tinymail.org/trac/tinymail/changeset/2830#file2 I attached: svn diff libtinymail-camel/camel-lite/camel/camel-mime-utils.c -r 2829 /home/pvanhoof/diff.diff This is the Subject line of my test target: Subject: =?ISO-2022-JP?B?GyRCM048QiRLOkdEY0Z8NWsbKEI=?= =?ISO-2022-JP?B?GyRCIzJLfDFfIUFGfEonJCQkRyQqRU8kN0NXJDckXiQ5ISMlYSE8GyhC?= =?ISO-2022-JP?B?GyRCJWslXiUsJTglcxsoQg==?= I also opened a bug for this one: http://bugzilla.gnome.org/show_bug.cgi?id=485677 ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers -- Philip Van Hoof, software developer home: me at pvanhoof dot be gnome: pvanhoof at gnome dot org http://www.pvanhoof.be/blog ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Difficulty of storing flags on IMAP server
On Thu, 2007-10-11 at 18:29 +0200, Philip Van Hoof wrote: On Thu, 2007-10-11 at 09:18 -0700, Ross Boylan wrote: I believe that some of the flags associated with messages (e.g., follow-up) are stored by the evolution client, rather than kept on the server. For at least some IMAP servers it should be possible to define custom flags on the server and use them. This would be very useful to me, since I'm accessing the mail from different locations. Any idea how big a job this would be to add? I might do it, if it's easy. BTW, is anyone planning on working on the problem that messages flagged initially flagged as follow-up and later flagged as completed still show up when you filter by follow-up? Search for CAMEL_MESSAGE_INFO_USER_FLAGS and uses of mi-user_flags in Camel (better search for -user_flags as that mi part is sometimes called info and sometimes with a bunch of casting around it called mi). In camel-imap-folder.c you can take an example from functions like flags_to_label. I guess you'll need to convert your user_flags to custom IMAP flags somehow. Not sure how easy that is. You can also add new tags (user_tags), which is similar to how user_flags work in Camel. It looks like those are already stored remotely. I think tags define the colour of the rows in your summary view (Important, Personal, Work, etc etc). I did some work to implement syncing custom flags support. So that you can have custom labels in addition to the 5 standard labels. The patch is at http://bugzilla.gnome.org/show_bug.cgi?id=211353 I tested it against a GroupWise IMAP implementation and it was working. IIRC, The only problem was all the flags were synced everytime instead of the newly set ones alone. And I needed to verify it was working with the rest of the IMAP servers. I stopped working on it because of personal reasons. If someone is interested can take up and complete. You'll have to write ui pieces for this too, in Evolution, of course. -- Sankar P Harver's Law: A drunken man's words are a sober man's thoughts Novell, Inc. Software for the Open Enterpriseā¢ http://www.novell.com ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] How does evo find its components? (switching installs of evo)
Hi all; I've been using my makefile to build Evolution from SVN for my Ubuntu Feisty systems; the makefile installs everything in /opt/evo so that I don't interfere with the packages managed by the system. When I run /opt/evo/bin/evolution, it starts up e-d-s and evo-exchange, etc. from /opt/evo as well (which is what I want). However, I recently upgraded one of my systems to Ubuntu Gutsy RC1, which has its own version of Evo 2.12.0. I know there have already been some bug fixes since that was released but I wanted to try out the distro version to see how it's working. But, when I run /usr/bin/evolution, it's STILL trying to run e-d-s etc. out of /opt/evo instead of the ones in /usr/bin: this fails because the ones in /opt/evo were compiled against Feisty libraries, some of which have been upgraded in Gutsy. How does Evolution decide where to get e-d-s, plugins, etc.? How can I reset it to run the ones in /usr/bin and ignore the stuff in /opt/evo? I don't remember doing anything special to switch it over to /opt/evo in the first place. Note that deleting my ~/.evolution directory or similar is out of the question; I have too much stuff there. -- - Paul D. Smith [EMAIL PROTECTED] http://make.mad-scientist.us Please remain calm--I may be mad, but I am a professional.--Mad Scientist ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] How does evo find its components? (switching installs of evo)
On Fri, 2007-10-12 at 13:17 -0400, Paul Smith wrote: How does Evolution decide where to get e-d-s, plugins, etc.? How can I reset it to run the ones in /usr/bin and ignore the stuff in /opt/evo? I don't remember doing anything special to switch it over to /opt/evo in the first place. You can control it with environment variables: LD_LIBRARY_PATH=/opt/evo/lib Overrides the search path for dynamically loaded libraries. BONOBO_ACTIVATION_PATH=/opt/evo/lib/bonobo/servers Overrides the search path for Bonobo servers. These need to be set at run time. Hope this helps, Matthew Barnes ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers