%% options copyright owner = Dirk Krause copyright year = 2017-xxxx license = bsd %% header /** @file Double to dkChar text conversion using more secure functions than swprintf() or sprintf() if available. CRT on Windows: Required. */ #ifndef DK4CONF_H_INCLUDED #include "dk4conf.h" #endif #ifndef DK4TYPES_H_INCLUDED #include "dk4types.h" #endif #ifndef DK4ERROR_H_INCLUDED #include "dk4error.h" #endif #if (DK4_HAVE_WXWIDGETS) && (defined(__cplusplus)) #ifndef WX_WXPREC_H_INCLUDED #include #define WX_WXPREC_H_INCLUDED 1 #endif #ifdef __BORLANDC__ #pragma hdrstop #endif #ifndef WX_PRECOMP #if DK4_HAVE_WX_CHARTYPE_H #ifndef WX_CHARTYPE_H_INCLUDED #include #define WX_CHARTYPE_H_INCLUDED 1 #endif #else #if DK4_HAVE_WX_WXCHAR_H #ifndef WX_WXCHAR_H_INCLUDED #include #define WX_WXCHAR_H_INCLUDED 1 #endif #else #ifndef WX_WX_H_INCLUDED #include #define WX_WX_H_INCLUDED #endif #endif #endif #endif extern "C" { /** Convert double value to string. @param dptr Destination buffer pointer. @param szdptr Size of destination buffer (number of dkChar). @param v Value to convert. @param exact Flag: Save exact representation of number. @param minimize Flag: Minimize exact representation. @param erp Error report, may be NULL. @return 1 on success, 0 on error. Error codes: - DK4_E_INVALID_ARGUMENTS
if dptr is NULL or szdptr is less than 2, - DK4_E_BUFFER_TOO_SMALL
if the destination buffer is too small to store the string. */ int dk4ma_write_wx_double( wxChar *dptr, size_t szdptr, double v, int exact, int minimize, dk4_er_t *erp ); } #endif %% module #include "dk4conf.h" #if (DK4_HAVE_WXWIDGETS) && (defined(__cplusplus)) #include "dk4maoxdbl.h" #if DK4_SIZEOF_WXCHAR > 1 #if DK4_SIZEOF_WXCHAR == DK4_SIZEOF_WCHAR_T #include "dk4maowdbl.h" #else #error "Illegal wxChar size!" #endif #else #include "dk4mao8dbl.h" #endif int dk4ma_write_wx_double( wxChar *dptr, size_t szdptr, double v, int exact, int minimize, dk4_er_t *erp ) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4ma_write_wc_double(dptr, szdptr, v, exact, minimize, erp)); #else return (dk4ma_write_c8_double(dptr, szdptr, v, exact, minimize, erp)); #endif } #endif