Fixed ShowEmail
[clearscm.git] / maps / bin / mapsutil.pl
index 054f5fb..fba892b 100755 (executable)
@@ -15,7 +15,7 @@
 use strict;
 use warnings;
 
-use 5.030;
+use 5.026;
 
 # For use of the given/when (See https://perlmaven.com/switch-case-statement-in-perl5)
 no warnings 'experimental';
@@ -203,7 +203,10 @@ sub LoadListFile($) {
 
   my $sequence = 0;
 
-  Info("Adding $listfilename to $listtype list");
+  Info(
+    userid  => $userid,
+    message => "Adding $listfilename to $listtype list",
+  );
 
   while ($listfile) {
     chomp;
@@ -242,29 +245,32 @@ sub LoadEmail($) {
   my $nbr_msgs;
 
   while (!eof $file) {
-    my ($sender, $reply_to, $subject, $data) = ReadMsg (*$file);
+    my %msgInfo = ReadMsg *$file;
 
     $nbr_msgs++;
 
     AddEmail(
       userid  => $userid,
-      sender  => $sender,
-      subject => $subject,
-      data    => $data,
+      sender  => $msgInfo{sender},
+      subject => $msgInfo{subject},
+      data    => $msgInfo{data},
     );
 
-    Info("Added message from $sender to email");
+    Info(
+      userid  => $userid,
+      message => "Added message from $msgInfo{sender} to email"
+    );
   } # while
 
   if ($nbr_msgs == 0) {
-    say "No messages found to load";
+    print "No messages found to load";
   } elsif ($nbr_msgs == 1) {
-    say "Loaded 1 message";
+    print "Loaded 1 message";
   } else {
-    say "Loaded $nbr_msgs messages";
+    print "Loaded $nbr_msgs messages";
   } # if
 
-  say "from $file";
+  say " from $filename";
 } # LoadEmail
 
 sub DumpEmail($) {
@@ -368,10 +374,11 @@ $~ = "USERLIST";
 } # ShowUsers
 
 sub ShowEmail() {
+  my @fields = qw(userid timestamp sender subject);
   my ($err, $msg) = $MAPS::db->find(
     'email',
     "userid='$userid'",
-    qw(userid timestamp sender subject),
+    \@fields,
   );
 
 my ($timestamp, $sender, $subject);
@@ -385,9 +392,9 @@ $~ = "EMAIL";
   while (my $rec = $MAPS::db->getnext) {
     last unless $rec->{userid};
 
-   $timestamp = $rec->{timestamp};
-   $sender    = $rec->{sender};
-   $subject   = $rec->{subject};
+   $timestamp = $rec->{timestamp} || '<undef>';
+   $sender    = $rec->{sender}    || '<undef>';
+   $subject   = $rec->{subject}   || '<undef>';
 
     write();
   } # while