diff --git a/C/iopreds.c b/C/iopreds.c index b30c30373..c57338e08 100644 --- a/C/iopreds.c +++ b/C/iopreds.c @@ -4110,7 +4110,15 @@ format(volatile Term otail, volatile Term oargs, int sno) } } if (repeats) { + if (ptr == tmp1 || + ptr[-1] == '-') { + f_putc(sno, (int) '0'); + } f_putc(sno, (int) '.'); + while (repeats > siz) { + f_putc(sno, (int) '0'); + repeats--; + } while (repeats) { f_putc(sno, (int) (*ptr++)); repeats--;