On Mo, 2011-06-20 at 17:27 +0100, Patrick Ohly wrote:
> Problem solved...

Except for one field:

      <!-- store extensions that don't match any of the other fields -->
      <field name="XPROPS" array="yes" type="string" compare="never"/>

Profile:
        <property name="X-*" suppressempty="yes" show="false">
          <value field="XPROPS"/>
          <position field="XPROPS" repeat="array" increment="1" minshow="0"/>
        </property>

This is getting set to AVAILABLE here:

  if (proplistP) {
    if (!itemTypeP->fReceivedFieldDefs) {
      // there is a propList, and we haven't scanned one already for this type
      // (could be the case for DS 1.2 vCalendar where we get events & tasks 
separately)
      // so disable all non-mandatory fields first (available ones will be 
re-enabled)
      for (sInt16 i=0; i<itemTypeP->fFieldDefinitionsP->numFields(); i++) {
        itemTypeP->getFieldOptions(i)->available=false;
      }
      // force mandatory+unprocessed properties to be always "available"
=>    setfieldoptions(NULL,fProfileDefinitionP,itemTypeP);
    }
    // now we have received fields
    itemTypeP->fReceivedFieldDefs=true;
  }

Verified with debugging output. I've not looked into setfieldoptions()
for the exact logic which enables the field.

This has the effect that my X-FOOBAR-EXTENSION and X-TEST extensions
(stored locally in XPROPS) are not getting preserved when importing the
updated contact from Google.

What would be a proper fix for this?

-- 
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