+# clean out old messages from the message queue
+sub clean_old
+{
+ my $ref;
+
+ # mark old messages for deletion
+ foreach $ref (@msg) {
+ if (!$ref->{keep} && $ref->{t} < $main::systime - $maxage) {
+ $ref->{deleteme} = 1;
+ delete $ref->{gotit};
+ delete $ref->{list};
+ unlink filename($ref->{msgno});
+ dbg('msg', "deleting old $ref->{msgno}\n");
+ }
+ }
+
+ # remove them all from the active message list
+ @msg = map { $_->{deleteme} ? () : $_ } @msg;
+ $last_clean = $main::systime;
+}
+