Blame SOURCES/evolution-data-server-3.28.5-imapx-icloud-mail.patch

7a4e68
diff -up evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-server.c.imapx-icloud-mail evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-server.c
7a4e68
--- evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-server.c.imapx-icloud-mail	2021-04-23 09:30:07.734875376 +0200
7a4e68
+++ evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-server.c	2021-04-23 09:31:45.321718451 +0200
7a4e68
@@ -629,6 +629,12 @@ imapx_server_stash_command_arguments (Ca
7a4e68
 		if (CAMEL_IMAPX_HAVE_CAPABILITY (is->priv->cinfo, SPECIAL_USE) || CAMEL_IMAPX_HAVE_CAPABILITY (is->priv->cinfo, X_GM_EXT_1))
7a4e68
 			g_string_append_printf (buffer, " SPECIAL-USE");
7a4e68
 		is->priv->list_return_opts = g_string_free (buffer, FALSE);
7a4e68
+	} else if (!is->priv->is_broken_cyrus && CAMEL_IMAPX_HAVE_CAPABILITY (is->priv->cinfo, LIST_STATUS)) {
7a4e68
+		buffer = g_string_new ("");
7a4e68
+		g_string_append_printf (
7a4e68
+			buffer, "STATUS (%s)",
7a4e68
+			is->priv->status_data_items);
7a4e68
+		is->priv->list_return_opts = g_string_free (buffer, FALSE);
7a4e68
 	} else {
7a4e68
 		is->priv->list_return_opts = NULL;
7a4e68
 	}
7a4e68
@@ -6208,7 +6214,7 @@ camel_imapx_server_list_sync (CamelIMAPX
7a4e68
 
7a4e68
 	camel_imapx_command_unref (ic);
7a4e68
 
7a4e68
-	if (success && !is->priv->list_return_opts) {
7a4e68
+	if (success && (!is->priv->list_return_opts || CAMEL_IMAPX_LACK_CAPABILITY (is->priv->cinfo, LIST_EXTENDED))) {
7a4e68
 		ic = camel_imapx_command_new (is, CAMEL_IMAPX_JOB_LSUB, "LSUB \"\" %s",
7a4e68
 			pattern);
7a4e68
 
7a4e68
diff -up evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-utils.c.imapx-icloud-mail evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-utils.c
7a4e68
--- evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-utils.c.imapx-icloud-mail	2018-07-30 15:17:06.000000000 +0200
7a4e68
+++ evolution-data-server-3.28.5/src/camel/providers/imapx/camel-imapx-utils.c	2021-04-23 09:30:07.736875373 +0200
7a4e68
@@ -580,13 +580,6 @@ imapx_parse_capability (CamelIMAPXInputS
7a4e68
 			stream, &token, &len, cancellable, &local_error);
7a4e68
 	}
7a4e68
 
7a4e68
-	/* Some capabilities are extensions of other capabilities.
7a4e68
-	 * Make sure all prerequisite capability flags are present. */
7a4e68
-
7a4e68
-	/* LIST-STATUS is an extension of LIST-EXTENDED. */
7a4e68
-	if (CAMEL_IMAPX_HAVE_CAPABILITY (cinfo, LIST_STATUS))
7a4e68
-		cinfo->capa |= imapx_lookup_capability ("LIST-EXTENDED");
7a4e68
-
7a4e68
 	if (local_error != NULL) {
7a4e68
 		g_propagate_error (error, local_error);
7a4e68
 		imapx_free_capability (cinfo);