diff -r 2e15ff88a0ab -r dcc03142eb5f dav/main.c --- a/dav/main.c Sun Apr 01 12:40:48 2018 +0200 +++ b/dav/main.c Sun Apr 29 11:16:41 2018 +0200 @@ -1685,6 +1685,14 @@ return count; } +void print_xml_infostr(DavXmlNode *xml) { + if(xml->children) { + printf("<%s>...", xml->name, xml->name); + } else { + printf("<%s/>", xml->name); + } +} + int cmd_info(CmdArgs *a) { if(a->argc < 1) { fprintf(stderr, "Too few arguments\n"); @@ -1738,7 +1746,25 @@ sstr_t value = sstr(dav_xml_getstring(xval)); printf(" %s: %.*s\n", p.name, (int)value.length, value.ptr); } else { - printf(" %s: $xml\n", p.name); + // find some xml elements + printf(" %s: ", p.name); + DavXmlNode *x = xval->type == DAV_XML_ELEMENT ? xval : dav_xml_nextelm(xval); + for(int i=0;i<3;i++) { + if(x) { + if(i == 2) { + printf(" ..."); + break; + } else { + print_xml_infostr(x); + } + } else { + break; + } + x = dav_xml_nextelm(x); + } + printf("\n"); + + } }