From 15a3d82b29c847ad0a3b4a74291b162a3c0477a1 Mon Sep 17 00:00:00 2001
From: Ivan Kohler <ivan@freeside.biz>
Date: Thu, 21 Feb 2013 16:11:23 -0800
Subject: [PATCH] Fix Discover identification of 39 and 3529-3589 prefixes,
 patch from Jason Terry.  also, 0.32

---
 Changes       |  4 +++-
 CreditCard.pm | 11 ++++++-----
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/Changes b/Changes
index 0d352a7..a63119e 100644
--- a/Changes
+++ b/Changes
@@ -1,11 +1,13 @@
 Revision history for Perl extension Business::CreditCard.
 
-0.32  unreleased
+0.32  Thu Feb 21 16:02:42 PST 2013
         - Add Israeli Isracard (no checksum yet)
         - Add LICENSE=>perl to Makefile.PL; add license to META.yml,
           closes: cpan #27735
         - Documentation: Add link to Neil Bowers' review of CC check modules
         - Rearrange cardtype() for performance
+        - Fix Discover identification of 39 and 3529-3589 prefixes, patch from
+          Jason Terry, thanks!
 
 0.31  Mon Oct 19 18:51:35 PDT 2009
         - Add LICENSE section to POD documentation
diff --git a/CreditCard.pm b/CreditCard.pm
index d0dd3b8..c8dd6de 100644
--- a/CreditCard.pm
+++ b/CreditCard.pm
@@ -5,7 +5,7 @@ use vars qw( @ISA $VERSION $Country );
 
 @ISA = qw( Exporter );
 
-$VERSION = "0.32_01";
+$VERSION = "0.32";
 
 $Country = 'US';
 
@@ -125,13 +125,14 @@ Please don't bother Jon with emails about this module.
 Lee Lawrence <LeeL@aspin.co.uk>, Neale Banks <neale@lowendale.com.au> and
 Max Becker <Max.Becker@firstgate.com> contributed support for additional card
 types.  Lee also contributed a working test.pl.  Alexandr Ciornii
-<alexchorny@gmail.com> contributed code cleanups.
+<alexchorny@gmail.com> contributed code cleanups.  Jason Terry
+<jterry@bluhost.com> contributed updates for Discover BIN ranges.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (C) 1995,1996,1997 Jon Orwant
 Copyright (C) 2001-2006 Ivan Kohler
-Copyright (C) 2007-2012 Freeside Internet Services, Inc.
+Copyright (C) 2007-2013 Freeside Internet Services, Inc.
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself, either Perl version 5.8.8 or,
@@ -201,12 +202,12 @@ sub cardtype {
     return "Discover card"
       if   $number =~ /^30[0-5][\dx]{11}([\dx]{2})?$/o  #diner's: 300-305
       ||   $number =~ /^3095[\dx]{10}([\dx]{2})?$/o     #diner's: 3095
-      ||   $number =~ /^3[68][\dx]{12}([\dx]{2})?$/o    #diner's: 36
+      ||   $number =~ /^3[689][\dx]{12}([\dx]{2})?$/o   #diner's: 36 38 and 39
       ||   $number =~ /^6011[\dx]{12}$/o
       ||   $number =~ /^64[4-9][\dx]{13}$/o
       ||   $number =~ /^65[\dx]{14}$/o
       || ( $number =~ /^62[24-68][\dx]{13}$/o && uc($Country) ne 'CN' ) #CUP
-      || ( $number =~ /^35(2[89]|[3-8][\dx])[\dx]{10}$/o && uc($Country) eq 'US' );
+      || ( $number =~ /^35(2[89]|[3-8][\dx])[\dx]{12}$/o && uc($Country) eq 'US' );
 
     return "Switch"
       if $number =~ /^49(03(0[2-9]|3[5-9])|11(0[1-2]|7[4-9]|8[1-2])|36[0-9]{2})[\dx]{10}([\dx]{2,3})?$/o
-- 
2.20.1