dav/main.c

changeset 373
dcc03142eb5f
parent 371
604e7e335b3b
child 375
39fd327f81da
equal deleted inserted replaced
372:2e15ff88a0ab 373:dcc03142eb5f
1683 child = child->next; 1683 child = child->next;
1684 } 1684 }
1685 return count; 1685 return count;
1686 } 1686 }
1687 1687
1688 void print_xml_infostr(DavXmlNode *xml) {
1689 if(xml->children) {
1690 printf("<%s>...</%s>", xml->name, xml->name);
1691 } else {
1692 printf("<%s/>", xml->name);
1693 }
1694 }
1695
1688 int cmd_info(CmdArgs *a) { 1696 int cmd_info(CmdArgs *a) {
1689 if(a->argc < 1) { 1697 if(a->argc < 1) {
1690 fprintf(stderr, "Too few arguments\n"); 1698 fprintf(stderr, "Too few arguments\n");
1691 fprintf(stderr, "Usage: dav %s\n", find_usage_str("info")); 1699 fprintf(stderr, "Usage: dav %s\n", find_usage_str("info"));
1692 return -1; 1700 return -1;
1736 DavXmlNode *xval = dav_get_property_ns(res, p.ns, p.name); 1744 DavXmlNode *xval = dav_get_property_ns(res, p.ns, p.name);
1737 if(dav_xml_isstring(xval)) { 1745 if(dav_xml_isstring(xval)) {
1738 sstr_t value = sstr(dav_xml_getstring(xval)); 1746 sstr_t value = sstr(dav_xml_getstring(xval));
1739 printf(" %s: %.*s\n", p.name, (int)value.length, value.ptr); 1747 printf(" %s: %.*s\n", p.name, (int)value.length, value.ptr);
1740 } else { 1748 } else {
1741 printf(" %s: $xml\n", p.name); 1749 // find some xml elements
1750 printf(" %s: ", p.name);
1751 DavXmlNode *x = xval->type == DAV_XML_ELEMENT ? xval : dav_xml_nextelm(xval);
1752 for(int i=0;i<3;i++) {
1753 if(x) {
1754 if(i == 2) {
1755 printf(" ...");
1756 break;
1757 } else {
1758 print_xml_infostr(x);
1759 }
1760 } else {
1761 break;
1762 }
1763 x = dav_xml_nextelm(x);
1764 }
1765 printf("\n");
1766
1767
1742 } 1768 }
1743 } 1769 }
1744 1770
1745 dav_session_free(sn, properties); 1771 dav_session_free(sn, properties);
1746 return 0; 1772 return 0;

mercurial