/* Zero or space padding. */
- if (spf->width != 0) {
- length = (temp + NJS_DOUBLE_LEN) - p;
+ length = (temp + NJS_DOUBLE_LEN) - p;
+
+ if (spf->width > length) {
end = buf + (spf->width - length);
end = njs_min(end, spf->end);
/* Number copying. */
- length = (temp + NJS_DOUBLE_LEN) - p;
-
end = buf + length;
end = njs_min(end, spf->end);
goto done;
}
+ njs_mp_free(njs_vm_memory_pool(vm), string.start);
+
+ njs_chb_destroy(&chain);
+ NJS_CHB_MP_INIT(&chain, njs_vm_memory_pool(vm));
+
+ njs_chb_sprintf(&chain, 32, "%2f", 123.45);
+
+ ret = njs_chb_join(&chain, &string);
+ if (ret != NJS_OK) {
+ njs_printf("njs_chb_join() failed\n");
+ goto done;
+ }
+
+ if (!njs_strstr_eq(&string, &(njs_str_t) njs_str("123.45"))) {
+ ret = NJS_ERROR;
+ njs_printf("njs_chb_sprintf() corrupts float \"%V\"\n", &string);
+ goto done;
+ }
+
njs_chb_destroy(&chain);
njs_mp_free(njs_vm_memory_pool(vm), string.start);