]> err.no Git - sope/blobdiff - sope-ical/NGiCal/NGVCardSaxHandler.m
added some properties
[sope] / sope-ical / NGiCal / NGVCardSaxHandler.m
index aec3c3d4c57fb7f32f15d8f43f2908a99fe51419..b169e2ed3933ce7150fa994c5d92685ec18391b5 100644 (file)
        andAddTo:self->fburl];
 }
 
+/* OGo?? tags */
+
+- (void)startProfile:(id<SaxAttributes>)_attrs {
+  [self startCollectingContent];
+}
+- (void)endProfile {
+  [self->vCard setProfile:[self finishCollectingContent]];
+}
+
+- (void)startSource:(id<SaxAttributes>)_attrs {
+  [self startCollectingContent];
+}
+- (void)endSource {
+  [self->vCard setSource:[self finishCollectingContent]];
+}
+
+- (void)startName:(id<SaxAttributes>)_attrs {
+  [self startCollectingContent];
+}
+- (void)endName {
+  [self->vCard setVName:[self finishCollectingContent]];
+}
+
 
 /* element events */
 
     [self startFN:_attrs];
   else if (c0 == 'g' && [_localName isEqualToString:@"geo"])
     [self startGeo];
+  // TODO: following are generated by LSAddress, but not in spec?
+  else if (c0 == 'P' && [_localName isEqualToString:@"PROFILE"])
+    [self startProfile:_attrs];
+  else if (c0 == 'S' && [_localName isEqualToString:@"SOURCE"])
+    [self startSource:_attrs];
+  else if (c0 == 'N' && [_localName isEqualToString:@"NAME"])
+    [self startName:_attrs];
   else {
     if (self->vcs.isInN || self->vcs.isInOrg || self->vcs.isInAdr || 
        self->vcs.isInGeo)
     [self endFN];
   else if (c0 == 'g' && [_localName isEqualToString:@"geo"])
     [self endGeo];
+  else if (c0 == 'P' && [_localName isEqualToString:@"PROFILE"])
+    [self endProfile];
+  else if (c0 == 'S' && [_localName isEqualToString:@"SOURCE"])
+    [self endSource];
+  else if (c0 == 'N' && [_localName isEqualToString:@"NAME"])
+    [self endName];
   else {
     if (self->vcs.isInN || self->vcs.isInOrg || self->vcs.isInAdr ||
        self->vcs.isInGeo)