From ecba64be1b75b8a29dc57bcd29f50ee81b2f1b6f Mon Sep 17 00:00:00 2001 From: kappa Date: Wed, 16 Jan 2019 01:10:27 +0100 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D1=99?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=98?= =?UTF-8?q?=D0=B0=20=D0=B7=D0=B0=20=D0=B4=D0=B5=D1=99=D0=B5=D1=9A=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eval.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/eval.c b/eval.c index 8b886a9..b15f79a 100644 --- a/eval.c +++ b/eval.c @@ -222,11 +222,27 @@ object divide(object parameters) } else if (listLength(parameters) == 1) { - NUM(result) = 1/NUM(CAR(parameters)); + if (NUM(CAR(parameters)) != 0) + { + NUM(result) = 1/NUM(CAR(parameters)); + } + else + { + TYPE(result) = errorObject; + ERRMSG(result) = divisionByZeroError; + } } else { - NUM(result) = NUM(CAR(parameters))/NUM(add(CDR(parameters))); + if (NUM(add(CDR(parameters))) != 0) + { + NUM(result) = NUM(CAR(parameters))/NUM(add(CDR(parameters))); + } + else + { + TYPE(result) = errorObject; + ERRMSG(result) = divisionByZeroError; + } } return result;