/* Copyright (C) 2015-2020, Dirk Krause SPDX-License-Identifier: BSD-3-Clause */ /* WARNING: This file was generated by the dkct program (see http://dktools.sourceforge.net/ for details). Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: dk4dblc8.ctr */ /** @file dk4dblc8.c The dk4dblc8 module. */ #line 74 "dk4dblc8.ctr" #include "dk4conf.h" #include "dk4dblc8.h" #include "dk4str8.h" int dk4double_to_string_c8(char *dptr, size_t szdptr, double v, dk4_er_t *erp) { #if DK4_HAVE__SNPRINTF_S /* +++ _snprintf_s */ char buf[64]; int back = 0; int res = 0; if (NULL != dptr) { *dptr = '\0'; } if ((NULL != dptr) && (1 < szdptr)) { res = _snprintf_s(buf, sizeof(buf), (sizeof(buf)-1), "%lg", v); if ((0 < res) && ((size_t)res < sizeof(buf))) { buf[res] = '\0'; back = dk4str8_cpy_s(dptr, szdptr, buf, erp); } else { dk4error_set_simple_error_code(erp, DK4_E_BUFFER_TOO_SMALL); } } else { dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } return back; /* --- _snprintf_s */ #else #if DK4_HAVE__SNPRINTF /* +++ _snprintf */ char buf[64]; int back = 0; int res = 0; if (NULL != dptr) { *dptr = '\0'; } if ((NULL != dptr) && (1 < szdptr)) { res = _snprintf(buf, sizeof(buf), "%lg", v); if ((0 < res) && ((size_t)res < sizeof(buf))) { buf[res] = '\0'; back = dk4str8_cpy_s(dptr, szdptr, buf, erp); } else { dk4error_set_simple_error_code(erp, DK4_E_BUFFER_TOO_SMALL); } } else { dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } return back; /* --- _snprintf */ #else #if DK4_HAVE_SNPRINTF /* +++ snprintf */ char buf[64]; int back = 0; int res = 0; if (NULL != dptr) { *dptr = '\0'; } if ((NULL != dptr) && (1 < szdptr)) { res = snprintf(buf, sizeof(buf), "%lg", v); if ((0 < res) && ((size_t)res < sizeof(buf))) { buf[res] = '\0'; back = dk4str8_cpy_s(dptr, szdptr, buf, erp); } else { dk4error_set_simple_error_code(erp, DK4_E_BUFFER_TOO_SMALL); } } else { dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } return back; /* --- snprintf */ #else /* +++ sprintf */ char buf[64]; int back = 0; int res = 0; if (NULL != dptr) { *dptr = '\0'; } if ((NULL != dptr) && (1 < szdptr)) { sprintf(buf, "%lg", v); back = dk4str8_cpy_s(dptr, szdptr, buf, erp); } else { dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } return back; /* --- sprintf */ #endif #endif #endif }