]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/User.pm
allow specifying the dist in source_to_binary (for DB actions)
[debbugs.git] / Debbugs / User.pm
index d7fcbe217b6defe4fc1efdc8c0f1207a5c0d58cc..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;
     }
@@ -318,7 +335,7 @@ sub write {
 sub read_usertags {
     my ($usertags,$email) = @_;
 
-    carp "read_usertags is deprecated";
+#    carp "read_usertags is deprecated";
     my $user = get_user($email);
     for my $tag (keys %{$user->{"tags"}}) {
         $usertags->{$tag} = [] unless defined $usertags->{$tag};
@@ -339,7 +356,7 @@ them out.
 sub write_usertags {
     my ($usertags,$email) = @_;
 
-    carp "write_usertags is deprecated";
+#    carp "write_usertags is deprecated";
     my $user = Debbugs::User->new($email,1); # locked
     $user->{"tags"} = { %{$usertags} };
     $user->write();
@@ -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;
@@ -422,4 +423,3 @@ sub _wrap_to_length {
 1;
 
 __END__
-# -*- cperl-set-style: PerlStyle -*-