Diff between 208d6b069208f4071277bcf1332d210cc35e68c3 and 8f582cad7ee4aa7b2466ab029e7040e92b49c27c

Changed Files

File Additions Deletions Status
obexd/plugins/messages-tracker.c +7 -4 modified

Full Patch

diff --git a/obexd/plugins/messages-tracker.c b/obexd/plugins/messages-tracker.c
index 43321f6..eebfca3 100644
--- a/obexd/plugins/messages-tracker.c
+++ b/obexd/plugins/messages-tracker.c
@@ -124,13 +124,13 @@ static void create_folder_tree()
 {
 	struct message_folder *parent, *child;
 
-	folder_tree = create_folder("/", NULL);
+	folder_tree = create_folder("/", "FILTER (!BOUND(?msg))");
 
-	parent = create_folder("telecom", NULL);
+	parent = create_folder("telecom", "FILTER (!BOUND(?msg))");
 	folder_tree->subfolders = g_slist_append(folder_tree->subfolders,
 								parent);
 
-	child = create_folder("msg", NULL);
+	child = create_folder("msg", "FILTER (!BOUND(?msg))");
 	parent->subfolders = g_slist_append(parent->subfolders, child);
 
 	parent = child;
@@ -217,7 +217,10 @@ int messages_set_folder(void *s, const char *name, gboolean cdup)
 									NULL);
 	g_free(tmp);
 
-	newabs = g_build_filename("/", newrel, NULL);
+	if (newrel[0] != '/')
+		newabs = g_build_filename("/", newrel, NULL);
+	else
+		newabs = g_strdup(newrel);
 
 	session->folder = get_folder(newabs);
 	if (session->folder == NULL) {