[svn-commits] qwell: branch certified-11.2 r388817 - in /certified/branches/11.2: ./ apps/
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Wed May 15 09:55:42 CDT 2013
Author: qwell
Date: Wed May 15 09:55:37 2013
New Revision: 388817
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=388817
Log:
Fix VM snapshot handling for combined INBOX.
This should make it more clear about what's happening.
Review: https://reviewboard.asterisk.org/r/2539/
........
Merged revisions 388816 from http://svn.asterisk.org/svn/asterisk/branches/11
Modified:
certified/branches/11.2/ (props changed)
certified/branches/11.2/apps/app_voicemail.c
Propchange: certified/branches/11.2/
------------------------------------------------------------------------------
Binary property 'branch-11-merged' - no diff available.
Modified: certified/branches/11.2/apps/app_voicemail.c
URL: http://svnview.digium.com/svn/asterisk/certified/branches/11.2/apps/app_voicemail.c?view=diff&rev=388817&r1=388816&r2=388817
==============================================================================
--- certified/branches/11.2/apps/app_voicemail.c (original)
+++ certified/branches/11.2/apps/app_voicemail.c Wed May 15 09:55:37 2013
@@ -15015,25 +15015,20 @@
mailbox_snapshot->folders = ARRAY_LEN(mailbox_folders);
for (i = 0; i < mailbox_snapshot->folders; i++) {
- int combining_old = 0;
- /* 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
+ int msg_folder_index = i;
+
+ /* We want this message in the snapshot if any of the following:
+ * No folder was specified.
+ * The specified folder matches the current folder.
+ * The specified folder is INBOX AND we were asked to combine messages AND the current folder is either Old or Urgent.
*/
- 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;
- }
-
- /* This if statement is confusing looking. Here is what it means in english.
- * - If a folder is given to the function and that folder's index is not the one we are iterating over, skip it...
- * - Unless we are combining old and new messages and the current index is one of old, new, or urgent folders
- */
- if ((this_index_only != -1 && this_index_only != i) &&
- !(combining_old && (i == old_index || i == urgent_index || i == inbox_index))) {
+ if (!(this_index_only == -1 || this_index_only == i || (this_index_only == inbox_index && combine_INBOX_and_OLD && (i == old_index || i == urgent_index)))) {
continue;
+ }
+
+ /* Make sure that Old or Urgent messages are marked as being in INBOX. */
+ if (combine_INBOX_and_OLD && (i == old_index || i == urgent_index)) {
+ msg_folder_index = inbox_index;
}
memset(&vms, 0, sizeof(vms));
@@ -15050,7 +15045,7 @@
/* Iterate through each msg, storing off info */
if (vms.lastmsg != -1) {
- if ((vm_msg_snapshot_create(vmu, &vms, mailbox_snapshot, combining_old ? inbox_index : i, i, descending, sort_val))) {
+ if ((vm_msg_snapshot_create(vmu, &vms, mailbox_snapshot, msg_folder_index, i, descending, sort_val))) {
ast_log(LOG_WARNING, "Failed to create msg snapshots for %s@%s\n", mailbox, context);
goto snapshot_cleanup;
}
More information about the svn-commits
mailing list