[asterisk-commits] mjordan: trunk r382621 - in /trunk: ./ apps/app_voicemail.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Mar 7 13:14:49 CST 2013


Author: mjordan
Date: Thu Mar  7 13:14:46 2013
New Revision: 382621

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=382621
Log:
Let vm_mailbox_snapshot combine "Urgent" when no folder is specified

r381835 fixed a bug in vm_mailbox_snapshot where combining INBOX and Old forgot
that Urgent also "counts" as new messages. This fixed the problem when any of
the three folders was specified and the combine option was used.

It missed the case where the folder isn't specified and we build a snapshot of
all folders. This patch corrects that.
........

Merged revisions 382617 from http://svn.asterisk.org/svn/asterisk/branches/11

Modified:
    trunk/   (props changed)
    trunk/apps/app_voicemail.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-11-merged' - no diff available.

Modified: trunk/apps/app_voicemail.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_voicemail.c?view=diff&rev=382621&r1=382620&r2=382621
==============================================================================
--- trunk/apps/app_voicemail.c (original)
+++ trunk/apps/app_voicemail.c Thu Mar  7 13:14:46 2013
@@ -15059,8 +15059,9 @@
 	int i;
 	int this_index_only = -1;
 	int open = 0;
-	int inbox_index = 0;
-	int old_index = 1;
+	int inbox_index = get_folder_by_name("INBOX");
+	int old_index = get_folder_by_name("Old");
+	int urgent_index = get_folder_by_name("Urgent");
 
 	if (ast_strlen_zero(mailbox)) {
 		ast_log(LOG_WARNING, "Cannot create a mailbox snapshot since no mailbox was specified\n");
@@ -15102,7 +15103,14 @@
 
 	for (i = 0; i < mailbox_snapshot->folders; i++) {
 		int combining_old = 0;
-		if ((i == old_index) && (combine_INBOX_and_OLD)) {
+		/* Assume we are combining folders if:
+		 *  - The current index is the old folder index OR
+		 *  - The current index is urgent and we were looking for INBOX or all folders OR
+		 *  - The current index is INBOX and we were looking for Urgent or all folders
+		 */
+		if ((i == old_index ||
+			(i == urgent_index && (this_index_only == inbox_index || this_index_only == -1)) ||
+			(i == inbox_index && (this_index_only == urgent_index || this_index_only == -1))) && (combine_INBOX_and_OLD)) {
 			combining_old = 1;
 		}
 




More information about the asterisk-commits mailing list