imap_threaded_capability() is the only imap_threaded_*() function
which does not return status, instead status is written to a pointer
passed as argument and function returns retrieved capabilities. To
unify behaviour of all imap_threaded_*() functions make it return
status and pass capabilities through an out argument.
}
-struct mailimap_capability_data * imap_threaded_capability(Folder *folder, int *ok)
+int imap_threaded_capability(Folder *folder, struct mailimap_capability_data ** caps)
{
struct capa_param param;
struct capa_result result;
debug_print("capa %d\n", result.error);
- if (ok)
- *ok = result.error;
+ if (result.error == MAILIMAP_NO_ERROR)
+ *caps = result.caps;
- return result.caps;
+ return result.error;
}
int imap_threaded_connect(Folder * folder, const char * server, int port);
int imap_threaded_connect_ssl(Folder * folder, const char * server, int port);
-struct mailimap_capability_data * imap_threaded_capability(Folder *folder, int *ok);
+int imap_threaded_capability(Folder *folder, struct mailimap_capability_data ** caps);
#ifndef G_OS_WIN32
int imap_threaded_connect_cmd(Folder * folder, const char * command,
{
struct mailimap_capability_data *capabilities = NULL;
clistiter *cur;
- int result = -1;
+ int result;
if (session->capability != NULL)
return MAILIMAP_NO_ERROR;
- capabilities = imap_threaded_capability(session->folder, &result);
+ result = imap_threaded_capability(session->folder, &capabilities);
if (result != MAILIMAP_NO_ERROR) {
return result;