summaryrefslogtreecommitdiff
path: root/libproto/imap/tests/imapfolder.c
diff options
context:
space:
mode:
Diffstat (limited to 'libproto/imap/tests/imapfolder.c')
-rw-r--r--libproto/imap/tests/imapfolder.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/libproto/imap/tests/imapfolder.c b/libproto/imap/tests/imapfolder.c
index f01ef0513..2fb41d503 100644
--- a/libproto/imap/tests/imapfolder.c
+++ b/libproto/imap/tests/imapfolder.c
@@ -1,5 +1,5 @@
/* GNU Mailutils -- a suite of utilities for electronic mail
- Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ Copyright (C) 2011-2024 Free Software Foundation, Inc.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -33,7 +33,7 @@ static int
_print_list_entry (void *item, void *data)
{
struct mu_list_response *resp = item;
- mu_printf ("%c%c %c %4d %s\n",
+ mu_printf ("%c%c %c %4d \"%s\"\n",
(resp->type & MU_FOLDER_ATTRIBUTE_DIRECTORY) ? 'd' : '-',
(resp->type & MU_FOLDER_ATTRIBUTE_FILE) ? 'f' : '-',
resp->separator ? resp->separator : ' ',
@@ -42,18 +42,35 @@ _print_list_entry (void *item, void *data)
return 0;
}
+static int
+_comp_list_entry (const void *a, const void *b)
+{
+ struct mu_list_response const *ra = a;
+ struct mu_list_response const *rb = b;
+ int i = strcmp (ra->name, rb->name);
+
+ if (i != 0)
+ return i;
+ if (ra->depth < rb->depth)
+ return -1;
+ if (ra->depth > rb->depth)
+ return 1;
+ return 0;
+}
+
static void
com_list (mu_folder_t folder, char **argv)
{
int rc;
mu_list_t list;
- mu_printf ("listing %s %s\n", argv[0], argv[1]);
+ mu_printf ("# LIST \"%s\" \"%s\"\n", argv[0], argv[1]);
rc = mu_folder_list (folder, argv[0], argv[1], 0, &list);
if (rc)
mu_diag_funcall (MU_DIAG_ERROR, "mu_folder_list", argv[0], rc);
else
{
+ mu_list_sort (list, _comp_list_entry);
mu_list_foreach (list, _print_list_entry, NULL);
mu_list_destroy (&list);
}
@@ -71,6 +88,7 @@ com_lsub (mu_folder_t folder, char **argv)
mu_diag_funcall (MU_DIAG_ERROR, "mu_folder_lsub", argv[0], rc);
else
{
+ mu_list_sort (list, _comp_list_entry);
mu_list_foreach (list, _print_list_entry, NULL);
mu_list_destroy (&list);
}
@@ -192,7 +210,7 @@ main (int argc, char **argv)
if (!fname)
{
- mu_error ("URL not specified");
+ usage ();
exit (1);
}

Return to:

Send suggestions and report system problems to the System administrator.