From: Jared Johnson <jar...@jdjlaptop.(none)>

Update Qpsmtpd::Connection::notes() and Qpsmtpd::Transaction::notes()
with clearer, more brief syntax.  A previous patch used seemingly better
syntax, but did not evaluate the size of @_ in order to distinguish
between a call to notes('arg1',undef) and notes('arg1').  This corrects
this issue, and adds a comment to that effect.
---
 lib/Qpsmtpd/Connection.pm  |    8 ++++----
 lib/Qpsmtpd/Transaction.pm |    9 ++++-----
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/lib/Qpsmtpd/Connection.pm b/lib/Qpsmtpd/Connection.pm
index 22ed704..99b7b38 100644
--- a/lib/Qpsmtpd/Connection.pm
+++ b/lib/Qpsmtpd/Connection.pm
@@ -108,10 +108,10 @@ sub hello_host {
 }
 
 sub notes {
-  my $self = shift;
-  my $key  = shift;
-  @_ and $self->{_notes}->{$key} = shift;
-  $self->{_notes}->{$key};
+  my ($self,$key) = (shift,shift);
+  # Check for any additional arguments passed by the caller -- including undef
+  return $self->{_notes}->{$key} unless @_;
+  return $self->{_notes}->{$key} = shift;
 }
 
 sub reset {
diff --git a/lib/Qpsmtpd/Transaction.pm b/lib/Qpsmtpd/Transaction.pm
index 5c90bc3..54dfebd 100644
--- a/lib/Qpsmtpd/Transaction.pm
+++ b/lib/Qpsmtpd/Transaction.pm
@@ -61,11 +61,10 @@ sub header {
 #}
 
 sub notes {
-  my $self = shift;
-  my $key  = shift;
-  @_ and $self->{_notes}->{$key} = shift;
-  #warn Data::Dumper->Dump([\$self->{_notes}], [qw(notes)]);
-  $self->{_notes}->{$key};
+  my ($self,$key) = (shift,shift);
+  # Check for any additional arguments passed by the caller -- including undef
+  return $self->{_notes}->{$key} unless @_;
+  return $self->{_notes}->{$key} = shift;
 }
 
 sub set_body_start {
-- 
1.5.6.3

Reply via email to