From b05b13f4f74e253f844d168e057f3be5408d06f5 Mon Sep 17 00:00:00 2001 From: biouman Date: Tue, 1 May 2001 12:41:41 +0000 Subject: *** empty log message *** --- lib/scalaires.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'lib/scalaires.c') diff --git a/lib/scalaires.c b/lib/scalaires.c index d2f24fb..33b7ef2 100644 --- a/lib/scalaires.c +++ b/lib/scalaires.c @@ -4,6 +4,7 @@ * */ #include +#include #include "scalaires.h" #include "exceptions.h" #ifdef HAVE_CONFIG_H @@ -115,6 +116,7 @@ rationnel rat_division(rationnel rat1, rationnel rat2) } + char *rat_to_string(rationnel rat) { char resultat[128]; @@ -129,13 +131,22 @@ char *rat_to_string(rationnel rat) switch(display) { case DEC: - sprintf(temp,"%d/%d", rat.num, rat.denom); + if (rat.denom==1) + sprintf(temp,"%d", rat.num); + else + sprintf(temp,"%d/%d", rat.num, rat.denom); break; case HEX: - sprintf(temp,"%x/%x", rat.num, rat.denom); + if (rat.denom==1) + sprintf(temp,"%x", rat.num); + else + sprintf(temp,"%x/%x", rat.num, rat.denom); break; - case OCT: - sprintf(temp,"%o/%o", rat.num, rat.denom); + case OCT: + if (rat.denom==1) + sprintf(temp,"%o", rat.num); + else + sprintf(temp,"%o/%o", rat.num, rat.denom); break; case FLT: sprintf(temp,"%f", rat_to_double(rat)); @@ -143,6 +154,6 @@ char *rat_to_string(rationnel rat) } strcat(resultat, temp); - return resultat; + return Estrdup(resultat); } -- cgit v1.2.3