From: Don Armstrong <don@donarmstrong.com>
Date: Fri, 22 Jun 2007 19:42:58 +0000 (+0100)
Subject: handle single options in Debbugs::SOAP correctly
X-Git-Tag: release/2.6.0~536^2~1
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=c6dfbb11469ffe6c5318037a83059463eb9f2894;p=debbugs.git

handle single options in Debbugs::SOAP correctly
---

diff --git a/Debbugs/SOAP.pm b/Debbugs/SOAP.pm
index 7ab55e2b..2d8306c0 100644
--- a/Debbugs/SOAP.pm
+++ b/Debbugs/SOAP.pm
@@ -119,9 +119,18 @@ sub get_bugs{
      my $VERSION = __populate_version(pop);
      my ($self,@params) = @_;
      my %params;
+     # Because some clients can't handle passing arrayrefs, we allow
+     # options to be specified multiple times
      while (my ($key,$value) = splice @params,0,2) {
 	  push @{$params{$key}}, make_list($value);
      }
+     # However, for singly specified options, we want to pull them
+     # back out
+     for my $key (keys %params) {
+	  if (@{$params{$key}} == 1) {
+	       ($params{$key}) = @{$params{key}}
+	  }
+     }
      my @bugs;
      @bugs = Debbugs::Bugs::get_bugs(%params);
      return \@bugs;