+static const char *str_uidmark(int mark)
+{
+ static char buf[20];
+
+ switch(mark) {
+ case UID_UNSEEN:
+ return "UNSEEN";
+ case UID_SEEN:
+ return "SEEN";
+ case UID_EXPUNGED:
+ return "EXPUNGED";
+ case UID_DELETED:
+ return "DELETED";
+ default:
+ if (snprintf(buf, sizeof(buf), "MARK=%d", mark) < 0)
+ return "ERROR";
+ else
+ return buf;
+ }
+}
+
+static void dump_list(const struct idlist *idp)
+{
+ if (!idp) {
+ report_build(stdout, GT_(" <empty>"));
+ } else while (idp) {
+ char *t = sdump(idp->id, strlen(idp->id));
+ report_build(stdout, " %s = %s%s", t, str_uidmark(idp->val.status.mark), idp->next ? "," : "");
+ free(t);
+ idp = idp->next;
+ }
+}
+