X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FUser.pm;h=2457e54c4e5d51633794b909c2f18f0e2f9da004;hb=1b1562614656acf70e9b69c8eb736673f370c816;hp=c091031ec1dbebd24e589b276d45cdcfe3338dc3;hpb=660edfba2fd6ff066dee6ed0c4ad857ff839b1b4;p=debbugs.git diff --git a/Debbugs/User.pm b/Debbugs/User.pm index c091031..2457e54 100644 --- a/Debbugs/User.pm +++ b/Debbugs/User.pm @@ -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;