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