bless $self, $class;
$self->{filename} = _file_from_email($self->{email});
- if (not -r $p) {
- return bless $user, "Debbugs::User";
+ if (not -r $self->{filename}) {
+ return $self;
}
- my $uf = IO::File->new($p,'r')
- or die "Unable to open file $p for reading: $!";
+ my $uf = IO::File->new($self->{filename},'r')
+ or die "Unable to open file $self->{filename} for reading: $!";
if ($need_lock) {
flock($uf, LOCK_EX);
- $user->{"locked"} = $uf;
+ $self->{"locked"} = $uf;
}
while(1) {
sub write {
my $self = shift;
- my $uf;
+
my $ut = $self->{"tags"};
my $p = $self->{"filename"};
next if @{$ut->{$t}} == 0;
print {$uf} "Tag: $t\n";
print {$uf} _wrap_to_length("Bugs: " . join(", ", @{$ut->{$t}}), 77) . "\n";
- print $uf "\n";
+ print {$uf} "\n";
}
my $uc = $self->{"categories"};
for my $c (keys %{$uc}) {
next if @{$uc->{$c}} == 0;
- print $uf "Category: $c\n";
- print $uf "Hidden: yes\n" unless defined $vis{$c};
+ print {$uf} "Category: $c\n";
+ print {$uf} "Hidden: yes\n" unless defined $vis{$c};
my $i = 0;
for my $cat (@{$uc->{$c}}) {
$i++;
if (ref($cat) eq "HASH") {
- printf $uf "Cat%d: %s\n", $i, $cat->{"nam"};
- printf $uf "Cat%dOptions:\n", $i;
+ printf {$uf} "Cat%d: %s\n", $i, $cat->{"nam"};
+ printf {$uf} "Cat%dOptions:\n", $i;
for my $j (0..$#{$cat->{"pri"}}) {
if (defined $cat->{"ttl"}->[$j]) {
- printf $uf " %s - %s\n",
+ printf {$uf} " %s - %s\n",
$cat->{"pri"}->[$j], $cat->{"ttl"}->[$j];
} else {
- printf $uf " %s\n", $cat->{"pri"}->[$j];
+ printf {$uf} " %s\n", $cat->{"pri"}->[$j];
}
}
- printf $uf "Cat%dDefault: %s\n", $i, $cat->{"def"}
+ printf {$uf} "Cat%dDefault: %s\n", $i, $cat->{"def"}
if defined $cat->{"def"};
- printf $uf "Cat%dOrder: %s\n", $i, join(", ", @{$cat->{"ord"}})
+ printf {$uf} "Cat%dOrder: %s\n", $i, join(", ", @{$cat->{"ord"}})
if defined $cat->{"ord"};
} else {
- printf $uf "Cat%d: %s\n", $i, $cat;
+ printf {$uf} "Cat%d: %s\n", $i, $cat;
}
}
- print $uf "\n";
+ print {$uf} "\n";
}
# handle the value stanzas
my %value;
sub read_usertags {
my ($usertags,$email) = @_;
- carp "read_usertags is deprecated";
+# carp "read_usertags is deprecated";
my $user = get_user($email);
- for my $t (keys %{$user->{"tags"}}) {
- $ut->{$t} = [] unless defined $ut->{$t};
- push @{$ut->{$t}}, @{$user->{"tags"}->{$t}};
+ for my $tag (keys %{$user->{"tags"}}) {
+ $usertags->{$tag} = [] unless defined $usertags->{$tag};
+ push @{$usertags->{$tag}}, @{$user->{"tags"}->{$tag}};
}
return $usertags;
}
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"} = { %{$ut} };
+ $user->{"tags"} = { %{$usertags} };
$user->write();
}
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;
$content = $2;
if ($current_line_length != 0 and
- $current_line_length + length($current_word) <= $line_length) {
+ $current_line_length + length($current_word) > $line_length) {
$result .= "\n ";
$current_line_length = 1;
}
1;
__END__
-# -*- cperl-set-style: PerlStyle -*-