@@ -79,7 +79,7 @@ void bc_out_num(bc_num num, int o_base, void (*out_char)(char), bool leading_zer
7979 int index , fdigit ;
8080 bool pre_space ;
8181 stk_rec * digits , * temp ;
82- bc_num int_part , frac_part , base , cur_dig , t_num , max_o_digit ;
82+ bc_num int_part , base , cur_dig , t_num , max_o_digit ;
8383
8484 /* The negative sign if needed. */
8585 if (num -> n_sign == MINUS ) (* out_char )('-' );
@@ -120,10 +120,9 @@ void bc_out_num(bc_num num, int o_base, void (*out_char)(char), bool leading_zer
120120 digits = NULL ;
121121 bc_init_num (& int_part );
122122 bc_divide (num , BCG (_one_ ), & int_part , 0 );
123- bc_init_num (& frac_part );
124123 bc_init_num (& cur_dig );
125124 bc_init_num (& base );
126- bc_sub (num , int_part , & frac_part , 0 );
125+ bc_num frac_part = bc_sub (num , int_part , 0 );
127126 /* Make the INT_PART and FRAC_PART positive. */
128127 int_part -> n_sign = PLUS ;
129128 frac_part -> n_sign = PLUS ;
@@ -166,7 +165,7 @@ void bc_out_num(bc_num num, int o_base, void (*out_char)(char), bool leading_zer
166165 bc_multiply (frac_part , base , & frac_part , num -> n_scale );
167166 fdigit = bc_num2long (frac_part );
168167 bc_int2num (& int_part , fdigit );
169- bc_sub (frac_part , int_part , & frac_part , 0 );
168+ bc_sub_ex (frac_part , int_part , & frac_part , 0 );
170169 if (o_base <= 16 ) {
171170 (* out_char )(ref_str [fdigit ]);
172171 } else {
0 commit comments