File tree 2 files changed +23
-0
lines changed
2 files changed +23
-0
lines changed Original file line number Diff line number Diff line change
1
+ 201x-xx-xx:
2
+ * version 1.3
3
+ * Try harder with :moveto and :copyto to find a unique folder
4
+
1
5
2013-10-13:
2
6
* version 1.2
3
7
* Fix unmappable key "-". (Use \- or '-' or "-")
Original file line number Diff line number Diff line change @@ -74,6 +74,9 @@ const Mail = Module("mail", {
74
74
75
75
_moveOrCopy : function ( copy , destinationFolder , operateOnThread ) {
76
76
let folders = mail . getFolders ( destinationFolder ) ;
77
+ if ( folders . length > 1 ) {
78
+ folders = mail . getExactFolder ( destinationFolder ) ;
79
+ }
77
80
if ( folders . length == 0 )
78
81
return void liberator . echoerr ( "No matching folder for: " + destinationFolder ) ;
79
82
else if ( folders . length > 1 )
@@ -251,6 +254,22 @@ const Mail = Module("mail", {
251
254
return folders ;
252
255
} ,
253
256
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
+
254
273
/**
255
274
* returns array of nsIMsgFolder objects
256
275
* @param {Number } flag
You can’t perform that action at this time.
0 commit comments