import rt 3.4.6
[freeside.git] / rt / lib / RT / Interface / REST.pm
index 90e3b35..4eeb468 100644 (file)
@@ -2,7 +2,7 @@
 # 
 # COPYRIGHT:
 #  
-# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
+# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
 #                                          <jesse@bestpractical.com>
 # 
 # (Except where explicitly superseded by other copyright notices)
@@ -22,9 +22,7 @@
 # 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/copyleft/gpl.html.
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 # 
 # 
 # CONTRIBUTION SUBMISSION POLICY:
@@ -56,37 +54,25 @@ BEGIN {
     use Exporter ();
     use vars qw($VERSION @ISA @EXPORT);
 
-    $VERSION = do { my @r = (q$Revision: 1.1.1.4 $ =~ /\d+/g); sprintf "%d."."%02d"x$#r, @r };
+    $VERSION = do { my @r = (q$Revision: 1.1.1.5 $ =~ /\d+/g); sprintf "%d."."%02d"x$#r, @r };
 
     @ISA = qw(Exporter);
     @EXPORT = qw(expand_list form_parse form_compose vpush vsplit);
 }
 
-my $field = '(?i:[a-z][a-z0-9_-]*|C(?:ustom)?F(?:ield)?-[a-z0-9_ -]+)';
+my $field = '[a-zA-Z][a-zA-Z0-9_-]*';
 
-# WARN: this code is duplicated in bin/rt.in,
-# change both functions at once
 sub expand_list {
     my ($list) = @_;
+    my ($elt, @elts, %elts);
 
-    my @elts;
-    foreach (split /,/, $list) {
-        push @elts, /^(\d+)-(\d+)$/? ($1..$2): $_;
+    foreach $elt (split /,/, $list) {
+        if ($elt =~ /^(\d+)-(\d+)$/) { push @elts, ($1..$2) }
+        else                         { push @elts, $elt }
     }
 
-    return map $_->[0], # schwartzian transform
-        sort {
-            defined $a->[1] && defined $b->[1]?
-                # both numbers
-                $a->[1] <=> $b->[1]
-                :!defined $a->[1] && !defined $b->[1]?
-                    # both letters
-                    $a->[2] cmp $b->[2]
-                    # mix, number must be first
-                    :defined $a->[1]? -1: 1
-        }
-        map [ $_, (defined( /^(\d+)$/ )? $1: undef), lc($_) ],
-        @elts;
+    @elts{@elts}=();
+    return sort {$a<=>$b} keys %elts;
 }
 
 # Returns a reference to an array of parsed forms.