From 1edd44f2d9531a2da9831632d9f1f27c380d8751 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Mon, 12 Jun 2006 21:07:38 +0000 Subject: [PATCH] Daniel Moore patch - more operator overloading support git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9154 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- .../perl5/operator_overload_runme.pl | 20 ++++++++++++++++++- SWIG/Source/Modules/perl5.cxx | 6 ++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/SWIG/Examples/test-suite/perl5/operator_overload_runme.pl b/SWIG/Examples/test-suite/perl5/operator_overload_runme.pl index 806886f37..2c6dbe6b8 100644 --- a/SWIG/Examples/test-suite/perl5/operator_overload_runme.pl +++ b/SWIG/Examples/test-suite/perl5/operator_overload_runme.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl -w use strict; -use Test::More tests => 28; +use Test::More tests => 36; use operator_overload; @@ -99,6 +99,15 @@ $op->{i} = 3; ok_not(($op2 > $op), "operator greater than"); ok_not(($op > $op2), "operator greater than"); +# greater than or equal operator +$op->{i} = 8; +$op2->{i} = 3; +ok($op >= $op2, "operator greater than or equal"); +ok_not(($op2 >= $op), "operator greater than or equal"); +$op->{i} = 3; +ok(($op2 >= $op), "operator greater than or equal"); +ok(($op >= $op2), "operator greater than or equal"); + # lesser than operator $op2->{i} = 8; $op->{i} = 3; @@ -108,6 +117,15 @@ $op2->{i} = 3; ok_not(($op2 < $op), "operator lesser than"); ok_not(($op < $op2), "operator lesser than"); +# less than or equal operator +$op2->{i} = 8; +$op->{i} = 3; +ok($op <= $op2, "operator lesser than or equal"); +ok_not(($op2 <= $op), "operator lesser than or equal"); +$op2->{i} = 3; +ok(($op2 <= $op), "operator less than or equal"); +ok(($op <= $op2), "operator less than or equal"); + # increment operator $op->{i} = 7; $op++; diff --git a/SWIG/Source/Modules/perl5.cxx b/SWIG/Source/Modules/perl5.cxx index 3148007e1..051c23a9b 100644 --- a/SWIG/Source/Modules/perl5.cxx +++ b/SWIG/Source/Modules/perl5.cxx @@ -1346,9 +1346,15 @@ public: } else if (Strstr(symname, "__gt__")) { DohSetInt(operators,"__gt__",1); have_operators = 1; + } else if (Strstr(symname, "__ge__")) { + DohSetInt(operators,"__ge__",1); + have_operators = 1; } else if (Strstr(symname, "__lt__")) { DohSetInt(operators,"__lt__",1); have_operators = 1; + } else if (Strstr(symname, "__le__")) { + DohSetInt(operators,"__le__",1); + have_operators = 1; } else if (Strstr(symname, "__neg__")) { DohSetInt(operators,"__neg__",1); have_operators = 1;