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"); |