]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/User.pm
assume unknown encodings are UTF-8
[debbugs.git] / Debbugs / User.pm
index c091031ec1dbebd24e589b276d45cdcfe3338dc3..2457e54c4e5d51633794b909c2f18f0e2f9da004 100644 (file)
@@ -83,10 +83,10 @@ use warnings;
 use strict;
 use Fcntl ':flock';
 use vars qw($VERSION $DEBUG %EXPORT_TAGS @EXPORT_OK @EXPORT);
-use base qw(Exporter);
+use Exporter qw(import);
 
 use Debbugs::Config qw(:config);
-use List::Util qw(min);
+use List::AllUtils qw(min);
 
 use Carp;
 use IO::File;
@@ -109,6 +109,23 @@ sub is_valid_user {
     return ($u =~ /^[a-zA-Z0-9._+-]+[@][a-z0-9-.]{4,}$/);
 }
 
+=head2 usertag_file_from_email
+
+     my $filename = usertag_file_from_email($email)
+
+Turns an email into the filename where the usertag can be located.
+
+=cut
+
+sub usertag_file_from_email {
+    my ($email) = @_;
+    my $email_length = length($email) % 7;
+    my $escaped_email = $email;
+    $escaped_email =~ s/([^0-9a-zA-Z_+.-])/sprintf("%%%02X", ord($1))/eg;
+    return "$config{usertag_dir}/$email_length/$escaped_email";
+}
+
+
 #######################################################################
 # The real deal
 
@@ -141,7 +158,7 @@ sub new {
               };
     bless $self, $class;
 
-    $self->{filename} = _file_from_email($self->{email});
+    $self->{filename} = usertag_file_from_email($self->{email});
     if (not -r $self->{filename}) {
         return $self;
     }
@@ -348,22 +365,6 @@ sub write_usertags {
 
 =head1 PRIVATE FUNCTIONS
 
-=head2 _file_from_email
-
-     my $filename = _file_from_email($email)
-
-Turns an email into the filename where the usertag can be located.
-
-=cut
-
-sub _file_from_email {
-    my ($email) = @_;
-    my $email_length = length($email) % 7;
-    my $escaped_email = $email;
-    $escaped_email =~ s/([^0-9a-zA-Z_+.-])/sprintf("%%%02X", ord($1))/eg;
-    return "$config{usertag_dir}/$email_length/$escaped_email";
-}
-
 =head2 _read_stanza
 
      my @stanza = _read_stanza($fh);
@@ -400,7 +401,7 @@ Wraps a line to a specific length by splitting at commas
 
 sub _wrap_to_length {
     my ($content,$line_length) = @_;
-    my $current_line_length;
+    my $current_line_length = 0;
     my $result = "";
     while ($content =~ m/^([^,]*,\s*)(.*)$/ || $content =~ m/^([^,]+)()$/) {
         my $current_word = $1;