MCPcopy Create free account
hub / github.com/MailCore/mailcore2 / resultsWithError

Function resultsWithError

src/core/imap/MCIMAPSession.cpp:1392–1443  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1390}
1391
1392static Array * resultsWithError(int r, clist * list, ErrorCode * pError)
1393{
1394 clistiter * cur;
1395 Array * result;
1396
1397 result = Array::array();
1398 if (r == MAILIMAP_ERROR_STREAM) {
1399 * pError = ErrorConnection;
1400 return NULL;
1401 }
1402 else if (r == MAILIMAP_ERROR_PARSE) {
1403 * pError = ErrorParse;
1404 return NULL;
1405 }
1406 else if (hasError(r)) {
1407 * pError = ErrorNonExistantFolder;
1408 return NULL;
1409 }
1410
1411 for(cur = clist_begin(list) ; cur != NULL ; cur = cur->next) {
1412 struct mailimap_mailbox_list * mb_list;
1413 IMAPFolderFlag flags;
1414 IMAPFolder * folder;
1415 String * path;
1416
1417 mb_list = (struct mailimap_mailbox_list *) cur->data;
1418
1419 flags = IMAPFolderFlagNone;
1420 if (mb_list->mb_flag != NULL)
1421 flags = (IMAPFolderFlag) imap_mailbox_flags_to_flags(mb_list->mb_flag);
1422
1423 folder = new IMAPFolder();
1424 path = String::stringWithUTF8Characters(mb_list->mb_name);
1425 if (path->uppercaseString()->isEqual(MCSTR("INBOX"))) {
1426 folder->setPath(MCSTR("INBOX"));
1427 }
1428 else {
1429 folder->setPath(path);
1430 }
1431 folder->setDelimiter(mb_list->mb_delimiter);
1432 folder->setFlags(flags);
1433
1434 result->addObject(folder);
1435
1436 folder->release();
1437 }
1438
1439 mailimap_list_result_free(list);
1440
1441 * pError = ErrorNone;
1442 return result;
1443}
1444
1445// Deprecated
1446char IMAPSession::fetchDelimiterIfNeeded(char defaultDelimiter, ErrorCode * pError)

Callers 4

loginMethod · 0.85
fetchAllFoldersMethod · 0.85

Calls 9

hasErrorFunction · 0.85
uppercaseStringMethod · 0.80
releaseMethod · 0.80
isEqualMethod · 0.45
setPathMethod · 0.45
setDelimiterMethod · 0.45
setFlagsMethod · 0.45
addObjectMethod · 0.45

Tested by

no test coverage detected