=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2018/io/spexpr.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -p -r1.3 -r1.4 --- OpenXM_contrib2/asir2018/io/spexpr.c 2019/11/12 10:53:23 1.3 +++ OpenXM_contrib2/asir2018/io/spexpr.c 2019/12/24 10:26:39 1.4 @@ -44,7 +44,7 @@ * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. - * $OpenXM: OpenXM_contrib2/asir2018/io/spexpr.c,v 1.2 2018/10/01 05:49:06 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2018/io/spexpr.c,v 1.3 2019/11/12 10:53:23 kondoh Exp $ */ #include "ca.h" #include "al.h" @@ -148,12 +148,17 @@ void sprintbf4itv(BF a) int dprec; char fbuf[BUFSIZ]; char *s; - dprec = a->body->_mpfr_prec*0.30103; - dprec += 1; - sprintf(fbuf,"%%.%dR%c",dprec,(double_output==1)?'f':(double_output==2)?'e':'g'); - mpfr_asprintf(&s,fbuf,a->body); - TAIL PUTS(s); - mpfr_free_str(s); + + if ( !a ) { + TAIL PUTS("0"); + } else { + dprec = a->body->_mpfr_prec*0.30103; + dprec += 1; + sprintf(fbuf,"%%.%dR%c",dprec,(double_output==1)?'f':(double_output==2)?'e':'g'); + mpfr_asprintf(&s,fbuf,a->body); + TAIL PUTS(s); + mpfr_free_str(s); + } } #endif