libidav/davqlexec.c

changeset 361
b6f2462ee055
parent 354
067ea2315a8a
child 365
f04ab0420512
equal deleted inserted replaced
355:5da2cf15eb44 361:b6f2462ee055
277 str = sstrdup_a(sn->mp->allocator, sstrn( 277 str = sstrdup_a(sn->mp->allocator, sstrn(
278 field_result.data.string, 278 field_result.data.string,
279 field_result.length)); 279 field_result.length));
280 } 280 }
281 } else if(field_result.type == 2) { 281 } else if(field_result.type == 2) {
282 // TODO: 282 node = dav_copy_node(field_result.data.node);
283 } else { 283 } else {
284 // unknown type 284 // unknown type
285 // TODO: error 285 // TODO: error
286 resource_free_properties(sn, new_properties); 286 resource_free_properties(sn, new_properties);
287 return -1; 287 return -1;
1070 DAVQL_PUSH(obj); 1070 DAVQL_PUSH(obj);
1071 break; 1071 break;
1072 } 1072 }
1073 case DAVQL_CMD_PROP_IDENTIFIER: { 1073 case DAVQL_CMD_PROP_IDENTIFIER: {
1074 //printf("property %s:%s\n", cmd.data.property.ns, cmd.data.property.name); 1074 //printf("property %s:%s\n", cmd.data.property.ns, cmd.data.property.name);
1075 char *value = dav_get_string_property_ns(res, cmd.data.property.ns, cmd.data.property.name); 1075 //char *value = dav_get_string_property_ns(res, cmd.data.property.ns, cmd.data.property.name);
1076 obj.type = 1; 1076 DavXmlNode *value = dav_get_property_ns(res, cmd.data.property.ns, cmd.data.property.name);
1077 obj.length = value ? strlen(value) : 0; 1077 if(dav_xml_isstring(value)) {
1078 obj.data.string = value; 1078 obj.type = 1;
1079 obj.length = (uint32_t)value->contentlength;
1080 obj.data.string = value->content;
1081 } else {
1082 obj.type = 2;
1083 obj.length = 0;
1084 obj.data.node = value;
1085 }
1079 DAVQL_PUSH(obj); 1086 DAVQL_PUSH(obj);
1080 break; 1087 break;
1081 } 1088 }
1082 //case DAVQL_CMD_OP_UNARY_ADD: { 1089 //case DAVQL_CMD_OP_UNARY_ADD: {
1083 // printf("uadd\n"); 1090 // printf("uadd\n");

mercurial