Browse Source

[Minor] Oops, forgot to adpot long double case

tags/1.9.2
Vsevolod Stakhov 5 years ago
parent
commit
aa47bd0815
1 changed files with 19 additions and 3 deletions
  1. 19
    3
      src/libutil/printf.c

+ 19
- 3
src/libutil/printf.c View File

@@ -988,9 +988,25 @@ rspamd_vprintf_common (rspamd_printf_append_func func,
if (frac_width != 0) {
const gchar *dot_pos = memchr (dtoabuf, '.', slen);

if (dot_pos && frac_width < (slen - ((dot_pos - dtoabuf) + 1))) {
slen = (dot_pos - dtoabuf) + 1 + /* xxx. */
frac_width; /* .yyy */
if (dot_pos) {
if (frac_width < (slen - ((dot_pos - dtoabuf) + 1))) {
/* Truncate */
slen = (dot_pos - dtoabuf) + 1 + /* xxx. */
frac_width; /* .yyy */
}
else if (frac_width + dot_pos + 1 < dtoabuf + sizeof (dtoabuf)) {
/* Expand */
frac_width -= slen - ((dot_pos - dtoabuf) + 1);
memset (dtoabuf + slen, '0', frac_width);
slen += frac_width;
}
}
else {
/* Expand */
frac_width = MIN (frac_width, sizeof (dtoabuf) - slen - 1);
dtoabuf[slen ++] = '.';
memset (dtoabuf + slen, '0', frac_width);
slen += frac_width;
}
}


Loading…
Cancel
Save