Ticket #7134: diff.txt

File diff.txt, 1.8 KB (added by jalopeura, 13 years ago)

Patch

Line 
1Index: haiku/src/apps/mail/MailWindow.cpp
2===================================================================
3--- haiku/src/apps/mail/MailWindow.cpp (revision 40178)
4+++ haiku/src/apps/mail/MailWindow.cpp (working copy)
5@@ -1289,26 +1289,38 @@
6 + strlen(str) + 1);
7 BVolumeRoster volumeRoster;
8 BVolume volume;
9- volumeRoster.GetBootVolume(&volume);
10+ //volumeRoster.GetBootVolume(&volume);
11
12 BQuery query;
13- query.SetVolume(&volume);
14- sprintf(arg, "META:email=%s", str);
15- query.SetPredicate(arg);
16- query.Fetch();
17-
18+ sprintf(arg, "META:email==%s", str);
19 BEntry entry;
20- if (query.GetNextEntry(&entry) == B_NO_ERROR) {
21- BMessenger tracker("application/x-vnd.Be-TRAK");
22- if (tracker.IsValid()) {
23- entry_ref ref;
24- entry.GetRef(&ref);
25+ bool foundEntry = false;
26+
27+ while (!foundEntry && volumeRoster.GetNextVolume(&volume) == B_NO_ERROR) {
28+ if (!volume.KnowsQuery())
29+ continue;
30+
31+ query.SetVolume(&volume);
32+ query.SetPredicate(arg);
33+ query.Fetch();
34
35- BMessage open(B_REFS_RECEIVED);
36- open.AddRef("refs", &ref);
37- tracker.SendMessage(&open);
38+ if (query.GetNextEntry(&entry) == B_NO_ERROR) {
39+ BMessenger tracker("application/x-vnd.Be-TRAK");
40+ if (tracker.IsValid()) {
41+ entry_ref ref;
42+ entry.GetRef(&ref);
43+
44+ BMessage open(B_REFS_RECEIVED);
45+ open.AddRef("refs", &ref);
46+ tracker.SendMessage(&open);
47+ foundEntry = true;
48+ }
49 }
50- } else {
51+
52+ query.Clear();
53+ }
54+
55+ if (!foundEntry) {
56 sprintf(arg, "META:email %s", str);
57 status_t result = be_roster->Launch("application/x-person",
58 1, &arg);
59@@ -1319,6 +1331,7 @@
60 "supports the 'Person' data type."),
61 B_TRANSLATE("OK")))->Go();
62 }
63+
64 free(arg);
65 }
66 break;