diff --git a/.gitignore b/.gitignore index cb93292..f21fb94 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /kcalc-4.9.3.tar.xz /kcalc-4.9.4.tar.xz /kcalc-4.9.5.tar.xz +/kcalc-4.10.1.tar.xz diff --git a/kcalc-4.9.2-misc.patch b/kcalc-4.9.2-misc.patch deleted file mode 100644 index 158177e..0000000 --- a/kcalc-4.9.2-misc.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -up kcalc-4.9.2/kcalc_core.cpp.me kcalc-4.9.2/kcalc_core.cpp ---- kcalc-4.9.2/kcalc_core.cpp.me 2012-09-28 02:40:41.000000000 +0200 -+++ kcalc-4.9.2/kcalc_core.cpp 2012-11-08 11:45:57.646032345 +0100 -@@ -104,7 +104,13 @@ static KNumber ExecDivide(const KNumber - - static KNumber ExecMod(const KNumber &left_op, const KNumber &right_op) - { -- return left_op % right_op; -+ KNumber tmp_result = left_op % right_op; -+ -+ if ( right_op < KNumber::Zero ) -+ return -(-left_op % -right_op); -+ if ( tmp_result < KNumber::Zero ) -+ tmp_result += right_op; -+ return tmp_result; - } - - static KNumber ExecIntDiv(const KNumber &left_op, const KNumber &right_op) -@@ -132,6 +138,9 @@ static KNumber ExecBinom(const KNumber & - KNumber tmp_count = left_op; - KNumber tmp_result = KNumber::One; - -+ if ( right_op == KNumber::Zero ) -+ return KNumber::One; -+ - // don't do recursive factorial, - // because large numbers lead to - // stack overflows -@@ -587,8 +596,11 @@ void CalcEngine::Exp10(const KNumber &in - - void CalcEngine::Factorial(const KNumber &input) - { -- if (input == KNumber::PosInfinity) return; -- if (input < KNumber::Zero || input.type() == KNumber::SpecialType) { -+ if (input == KNumber::PosInfinity || input > KNumber(999999)) { -+ last_number_ = KNumber::PosInfinity; -+ return; -+ } -+ if (input < KNumber::Zero || input.type() == KNumber::SpecialType || input.type() != KNumber::IntegerType) { - error_ = true; - last_number_ = KNumber::NotDefined; - return; diff --git a/kcalc-4.9.90-misc.patch b/kcalc-4.9.90-misc.patch new file mode 100644 index 0000000..a529896 --- /dev/null +++ b/kcalc-4.9.90-misc.patch @@ -0,0 +1,32 @@ +diff -ur kcalc-4.9.90/kcalc_core.cpp kcalc-4.9.90-misc/kcalc_core.cpp +--- kcalc-4.9.90/kcalc_core.cpp 2012-11-14 17:46:47.000000000 +0100 ++++ kcalc-4.9.90-misc/kcalc_core.cpp 2012-12-08 20:05:58.000000000 +0100 +@@ -99,7 +99,13 @@ + } + + KNumber ExecMod(const KNumber &left_op, const KNumber &right_op) { +- return left_op % right_op; ++ KNumber tmp_result = left_op % right_op; ++ ++ if ( right_op < KNumber::Zero ) ++ return -(-left_op % -right_op); ++ if ( tmp_result < KNumber::Zero ) ++ tmp_result += right_op; ++ return tmp_result; + } + + KNumber ExecIntDiv(const KNumber &left_op, const KNumber &right_op) { +@@ -535,8 +541,11 @@ + + void CalcEngine::Factorial(const KNumber &input) + { +- if (input == KNumber::PosInfinity) return; +- if (input < KNumber::Zero || input.type() == KNumber::TYPE_ERROR) { ++ if (input == KNumber::PosInfinity || input > KNumber(999999)) { ++ last_number_ = KNumber::PosInfinity; ++ return; ++ } ++ if (input < KNumber::Zero || input.type() != KNumber::TYPE_INTEGER) { + error_ = true; + last_number_ = KNumber::NaN; + return; diff --git a/kcalc.spec b/kcalc.spec index a6d2352..10886f1 100644 --- a/kcalc.spec +++ b/kcalc.spec @@ -1,6 +1,6 @@ Name: kcalc Summary: Scientific Calculator -Version: 4.9.5 +Version: 4.10.1 Release: 1%{?dist} License: GPLv2+ @@ -13,8 +13,8 @@ URL: https://projects.kde.org/projects/kde/kdeutils/kcalc %endif Source0: http://download.kde.org/%{stable}/%{version}/src/%{name}-%{version}.tar.xz -# fix arithmetic fault in binomial, factorial -Patch0: kcalc-4.9.2-misc.patch +# fix arithmetic fault in mod, factorial +Patch0: kcalc-4.9.90-misc.patch BuildRequires: desktop-file-utils BuildRequires: kdelibs4-devel >= %{version} @@ -39,6 +39,7 @@ functions than meet the eye on a first glance. %patch0 -p1 -b .misc + %build mkdir -p %{_target_platform} pushd %{_target_platform} @@ -70,8 +71,26 @@ desktop-file-validate %{buildroot}%{_kde4_datadir}/applications/kde4/%{name}.des %changelog -* Sat Dec 29 2012 Rex Dieter - 4.9.5-1 -- 4.9.5 +* Sat Mar 02 2013 Rex Dieter - 4.10.1-1 +- 4.10.1 + +* Fri Feb 01 2013 Rex Dieter - 4.10.0-1 +- 4.10.0 + +* Tue Jan 22 2013 Rex Dieter - 4.9.98-1 +- 4.9.98 + +* Fri Jan 04 2013 Rex Dieter - 4.9.97-1 +- 4.9.97 + +* Thu Dec 20 2012 Rex Dieter - 4.9.95-1 +- 4.9.95 + +* Sat Dec 08 2012 Kevin Kofler - 4.9.90-2 +- rebase the patch (mod, factorial parts still apply, binomial fixed upstream) + +* Tue Dec 04 2012 Rex Dieter - 4.9.90-1 +- 4.9.90 * Mon Dec 03 2012 Than Ngo - 4.9.4-1 - 4.9.4 diff --git a/sources b/sources index 45d5d75..60ff257 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5ab883085933c5895a3e9ac4d4c88def kcalc-4.9.5.tar.xz +66ef0d1a0d0f1e3e4570b1bd77780588 kcalc-4.10.1.tar.xz