#include #include #include #include #include void myexit ( const char* format, int status ) { fprintf ( stderr, format, mu_strerror ( status ) ); exit ( EXIT_FAILURE ); } int main ( int argc, const char **argv ) { int status; list_t registrar; folder_t folder = 0; mailbox_t mbox= 0; char foldername[ 50 ]; char *fileold = "oldname"; char new_mailbox_name[ 50 ] = ""; registrar_get_list ( ®istrar ); list_append ( registrar, mbox_record ); list_append ( registrar, path_record ); list_append ( registrar, imap_record ); strcpy ( foldername, argv[ 1 ] ); strcpy ( new_mailbox_name, foldername ); strcat ( new_mailbox_name, "/" ); strcat ( new_mailbox_name, fileold ); // IF FOLDER OBJ CREATED WITH folder_create(), IMAP DOES NOT 'CREAT' MAILBOX BELOW // AND MAILBOX_CREATE() RETURNS NO ERROR printf ( "Creating folder object with url [%s]\n", foldername ); if ( ( status = folder_create ( &folder, foldername ) ) ) myexit ( "folder_create error: %s\n", status ); printf ( "creating mailbox [%s]\n", new_mailbox_name ); if ( ( status = mailbox_create ( &mbox, new_mailbox_name ) ) ) myexit ( "mailbox_create error: %s\n", status ); // IF GET FOLDER THROUGH MBOX WITH mailbox_get_folder(), IMAP WORKS FINE /* printf ( "Creating folder through mbox\n" ); if ( ( status = mailbox_get_folder ( mbox, &folder ) ) ) myexit ( "mailbox_get_folder error: %s\n", status ); */ // Create the mailbox on the disk if ( ( status = mailbox_open ( mbox, MU_STREAM_CREAT | MU_STREAM_RDWR ) ) ) myexit ( "mailbox_open error: %s\n", status ); mailbox_close ( mbox ); // mailbox_destroy ( &mbox ); // ADD THIS HERE AND THE PROCESS HANGS, BUT ONLY IF I USED // mailbox_get_folder() ABOVE !!! folder_destroy ( &folder ); return 0; }