Hello!
I am adding support for PHOTO;VALUE=uri to SyncEvolution. A
straight-forward solution is this:
<field name="PHOTO" type="blob" compare="never" merge="fillempty"/>
<field name="PHOTO_TYPE" type="integer" compare="never"
merge="fillempty"/>
<field name="PHOTO_VALUE" type="string" compare="never"
merge="fillempty"/>
But... what if one contact has PHOTO:<binary data> and gets merged with
a contact that has PHOTO;VALUE=uri:http://foo.bar?
My fear is that I'll end up with PHOTO;VALUE=uri:<binary data>, because
of the "fillempty" merge mode for PHOTO_VALUE. A similar problem also
exists for PHOTO_TYPE.
What I would need is a "fillempty" for PHOTO and a
"copy-if-photo-was-copied" for the other two fields.
I don't think that exists, so my current approach is to have an incoming
script which ensures that the PHOTO_VALUE is never empty (sets "binary"
if unset) and an outgoing script which strips it again (to emulate
current behavior). It's not working 100% correctly because for field
lists populated with PARSETEXTWITHPROFILE() the incoming script is not
executed.
Am I on the right track or should I simply ignore the problem?
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.
_______________________________________________
os-libsynthesis mailing list
[email protected]
http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis