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

Reply via email to