mirror of
https://github.com/webmin/webmin.git
synced 2026-09-14 17:40:40 +01:00
Make moving of MH to mbox format faster
This commit is contained in:
@@ -2160,16 +2160,25 @@ foreach $f (@files) {
|
||||
return @rv;
|
||||
}
|
||||
|
||||
# idlist_mhdir(file)
|
||||
# idlist_mhdir(directory)
|
||||
# Returns a list of files in an MH directory, which are the IDs
|
||||
sub idlist_mhdir
|
||||
{
|
||||
opendir(DIR, $file);
|
||||
local ($dir) = @_;
|
||||
opendir(DIR, $dir);
|
||||
local @files = grep { /^\d+$/ } readdir(DIR);
|
||||
closedir(DIR);
|
||||
return @files;
|
||||
}
|
||||
|
||||
# get_mhdir_files(directory)
|
||||
# Returns a list of full paths to files in an MH directory
|
||||
sub get_mhdir_files
|
||||
{
|
||||
local ($dir) = @_;
|
||||
return map { "$dir/$_" } &idlist_mhdir($dir);
|
||||
}
|
||||
|
||||
# select_mhdir(file, &ids, headersonly)
|
||||
# Returns a list of messages with the given indexes, from an mhdir directory
|
||||
sub select_mhdir
|
||||
|
||||
@@ -1428,9 +1428,10 @@ if ($src->{'type'} == $dst->{'type'} && !$src->{'remote'}) {
|
||||
&mailbox_fix_permissions($dst, \@st);
|
||||
}
|
||||
}
|
||||
elsif ($src->{'type'} == 1 && $dst->{'type'} == 0) {
|
||||
# For Maildir to mbox moves, just append files
|
||||
local @files = &get_maildir_files($src->{'file'});
|
||||
elsif (($src->{'type'} == 1 || $src->{'type'} == 3) && $dst->{'type'} == 0) {
|
||||
# For Maildir or MH to mbox moves, just append files
|
||||
local @files = $src->{'type'} == 1 ? &get_maildir_files($src->{'file'})
|
||||
: &get_mhdir_files($src->{'file'});
|
||||
&open_tempfile(DEST, ">>$dst->{'file'}");
|
||||
local $fromline = &make_from_line("webmin\@example.com");
|
||||
foreach my $f (@files) {
|
||||
|
||||
Reference in New Issue
Block a user