Skip to content

Commit c597b0a

Browse files
committed
Try harder with :moveto and :copyto to find a unique folder
1 parent 05914d8 commit c597b0a

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

muttator/NEWS

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
201x-xx-xx:
2+
* version 1.3
3+
* Try harder with :moveto and :copyto to find a unique folder
4+
15
2013-10-13:
26
* version 1.2
37
* Fix unmappable key "-". (Use \- or '-' or "-")

muttator/content/mail.js

+19
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ const Mail = Module("mail", {
7474

7575
_moveOrCopy: function (copy, destinationFolder, operateOnThread) {
7676
let folders = mail.getFolders(destinationFolder);
77+
if (folders.length > 1) {
78+
folders = mail.getExactFolder(destinationFolder);
79+
}
7780
if (folders.length == 0)
7881
return void liberator.echoerr("No matching folder for: " + destinationFolder);
7982
else if (folders.length > 1)
@@ -251,6 +254,22 @@ const Mail = Module("mail", {
251254
return folders;
252255
},
253256

257+
// returns an array of only one nsIMsgFolder object: an exact match to the filter
258+
getExactFolder: function (filter, includeServers, includeMsgFolders) {
259+
let folders = [];
260+
if (!filter || filter == "") return folders;
261+
262+
filter = filter.toLowerCase();
263+
264+
for (let [row, name] in this.getAllFolderRowMap(includeServers, includeMsgFolders)) {
265+
let folder = row._folder;
266+
// XXX: row._folder.prettyName is needed ? -- teramako
267+
if (name.toLowerCase() == filter)
268+
folders.push(row._folder);
269+
}
270+
return folders;
271+
},
272+
254273
/**
255274
* returns array of nsIMsgFolder objects
256275
* @param {Number} flag

0 commit comments

Comments
 (0)