/* 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: dk4recwx.cpt */ /** @file dk4recwx.cpp The dk4recwx module. */ #line 235 "dk4recwx.cpt" #include "dk4recwx.h" #include "dk4rec.h" #include "dk4enc.h" #line 243 "dk4recwx.cpt" int dk4recwx_utf8_to_wxchar( wxChar *dptr, size_t dsz, const char *sptr, dk4_er_t *erp ) { int back = 0; if ((NULL != dptr) && (NULL != sptr) && (0 < dsz)) { #if DK4_SIZEOF_WXCHAR > 1 #if DK4_SIZEOF_WXCHAR > 2 back = dk4recode_utf8_to_c32((dk4_c32_t *)dptr, dsz, sptr, erp); #else back = dk4recode_utf8_to_utf16((dk4_c16_t *)dptr, dsz, sptr, erp); #endif #else #if wxUSE_UNICODE_UTF8 back = dk4str8_cpy_s((char *)dptr, dsz, sptr, erp); #else back = dk4recode_utf8_to_ansi((char *)dptr, dsz, sptr, erp); #endif #endif } else { dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } return back; } int dk4recwx_dkchar_to_wxchar( wxChar *dptr, size_t dsz, #if DK4_SIZEOF_WXCHAR == 1 int de, #else int WXUNUSED(de), #endif const dkChar *sptr, #if DK4_CHAR_SIZE == 1 int se, #else int WXUNUSED(se), #endif dk4_er_t *erp ) { int back = 0; if ((NULL != dptr) && (NULL != sptr) && (0 < dsz)) { #if DK4_SIZEOF_WXCHAR > 1 #if DK4_SIZEOF_WXCHAR > 2 /* +++++ wxChar=4 */ #if DK4_CHAR_SIZE > 1 #if DK4_CHAR_SIZE > 2 /* +++++ wxChar=4 dkChar=4 */ back = dk4str_cpy_s((dkChar *)dptr, dsz, sptr, erp); /* ----- wxChar=4 dkChar=4 */ #else /* +++++ wxChar=4 dkChar=2 */ back = dk4recode_utf16_to_c32((dk4_c32_t *)dptr, dsz, (dk4_c16_t *)sptr, erp); /* ----- wxChar=4 dkChar=2 */ #endif #else /* +++++ wxChar=4 dkChar=1 */ switch (se) { case DK4_ENCODING_UTF8 : { back = dk4recode_utf8_to_c32((dk4_c32_t *)dptr, dsz, sptr, erp); } break; case DK4_ENCODING_WIN1252 : { back = dk4recode_ansi_to_c32((dk4_c32_t *)dptr, dsz, sptr, erp); } break; default : { /* ASCII */ back = dk4recode_ascii_to_c32((dk4_c32_t *)dptr, dsz, sptr, erp); } break; } /* ----- wxChar=4 dkChar=1 */ #endif /* ----- wxChar=4 */ #else /* +++++ wxChar=2 */ #if DK4_CHAR_SIZE > 1 #if DK4_CHAR_SIZE > 2 /* +++++ wxChar=2 dkChar=4 */ back = dk4recode_c32_to_utf16((dk4_c16_t *)dptr, dsz, (dk4_c32_t *)sptr, erp); /* ----- wxChar=2 dkChar=4 */ #else /* +++++ wxChar=2 dkChar=2 */ back = dk4str_cpy_s((dkChar *)dptr, dsz, sptr, erp); /* ----- wxChar=2 dkChar=2 */ #endif #else /* +++++ wxChar=2 dkChar=1 */ switch (se) { case DK4_ENCODING_UTF8 : { back = dk4recode_utf8_to_utf16((dk4_c16_t *)dptr, dsz, sptr, erp); } break; case DK4_ENCODING_WIN1252 : { back = dk4recode_ansi_to_utf16((dk4_c16_t *)dptr, dsz, sptr, erp); } break; default : { /* ASCII */ back = dk4recode_ascii_to_utf16((dk4_c16_t *)dptr, dsz, sptr, erp); } break; } /* ----- wxChar=2 dkChar=1 */ #endif /* ----- wxChar=2 */ #endif #else /* +++++ wxChar=1 */ #if DK4_CHAR_SIZE > 1 #if DK4_CHAR_SIZE > 2 /* +++++ wxChar=1 dkChar=4 */ switch (de) { case DK4_ENCODING_UTF8 : { back = dk4recode_c32_to_utf8(dptr, dsz, (dk4_c32_t *)sptr, erp); } break; case DK4_ENCODING_WIN1252 : { back = dk4recode_c32_to_ansi(dptr, dsz, (dk4_c32_t *)sptr, erp); } break; default : { /* ASCII */ back = dk4recode_c32_to_ascii(dptr, dsz, (dk4_c32_t *)sptr, erp); } break; } /* ----- wxChar=1 dkChar=4 */ #else /* +++++ wxChar=1 dkChar=2 */ switch (de) { case DK4_ENCODING_UTF8 : { back = dk4recode_utf16_to_utf8(dptr, dsz, (dk4_c16_t *)sptr, erp); } break; case DK4_ENCODING_WIN1252 : { back = dk4recode_utf16_to_ansi(dptr, dsz, (dk4_c16_t *)sptr, erp); } break; default : { /* ASCII */ back = dk4recode_utf16_to_ascii(dptr, dsz, (dk4_c16_t *)sptr, erp); } break; } /* ----- wxChar=1 dkChar=2 */ #endif #else /* +++++ wxChar=1 dkChar=1 */ back = dk4str_cpy_s(dptr, dsz, sptr, erp); /* ----- wxChar=1 dkChar=1 */ #endif /* ----- wxChar=1 */ #endif } else { dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } return back; } int dk4recwx_wxchar_to_dkchar( dkChar *dptr, size_t dsz, #if DK4_CHAR_SIZE == 1 int de, #else int WXUNUSED(de), #endif const wxChar *sptr, #if DK4_SIZEOF_WXCHAR == 1 int se, #else int WXUNUSED(se), #endif dk4_er_t *erp ) { int back = 0; #line 429 "dk4recwx.cpt" if ((NULL != dptr) && (NULL != sptr) && (0 < dsz)) { #if DK4_SIZEOF_WXCHAR > 1 #if DK4_SIZEOF_WXCHAR > 2 /* +++++ wxChar=4 */ #if DK4_CHAR_SIZE > 1 #if DK4_CHAR_SIZE > 2 /* +++++ wxChar=4 dkChar=4 */ #line 438 "dk4recwx.cpt" back = dk4str_cpy_s(dptr, dsz, (dkChar *)sptr, erp); /* ----- wxChar=4 dkChar=4 */ #else /* +++++ wxChar=4 dkChar=2 */ #line 443 "dk4recwx.cpt" back = dk4recode_c32_to_utf16((dk4_c16_t *)dptr, dsz, (dk4_c32_t *)sptr, erp); /* ----- wxChar=4 dkChar=2 */ #endif #else /* +++++ wxChar=4 dkChar=1 */ #line 449 "dk4recwx.cpt" switch (de) { case DK4_ENCODING_UTF8 : { #line 452 "dk4recwx.cpt" back = dk4recode_c32_to_utf8(dptr, dsz, (dk4_c32_t *)sptr, erp); } break; case DK4_ENCODING_WIN1252 : { #line 456 "dk4recwx.cpt" back = dk4recode_c32_to_ansi(dptr, dsz, (dk4_c32_t *)sptr, erp); } break; default : { /* ASCII */ #line 460 "dk4recwx.cpt" back = dk4recode_c32_to_ascii(dptr, dsz, (dk4_c32_t *)sptr, erp); } break; } /* ----- wxChar=4 dkChar=1 */ #endif /* ----- wxChar=4 */ #else /* +++++ wxChar=2 */ #if DK4_CHAR_SIZE > 1 #if DK4_CHAR_SIZE > 2 /* +++++ wxChar=2 dkChar=4 */ #line 474 "dk4recwx.cpt" back = dk4recode_utf16_to_c32((dk4_c32_t *)dptr, dsz, (dk4_c16_t *)sptr, erp); /* ----- wxChar=2 dkChar=4 */ #else /* +++++ wxChar=2 dkChar=2 */ #line 479 "dk4recwx.cpt" back = dk4str_cpy_s(dptr, dsz, (dkChar *)sptr, erp); /* ----- wxChar=2 dkChar=2 */ #endif #else /* +++++ wxChar=2 dkChar=1 */ #line 485 "dk4recwx.cpt" switch (de) { case DK4_ENCODING_UTF8 : { #line 488 "dk4recwx.cpt" back = dk4recode_utf16_to_utf8(dptr, dsz, (dk4_c16_t *)sptr, erp); } break; case DK4_ENCODING_WIN1252 : { #line 492 "dk4recwx.cpt" back = dk4recode_utf16_to_ansi(dptr, dsz, (dk4_c16_t *)sptr, erp); } break; default : { /* ASCII */ #line 496 "dk4recwx.cpt" back = dk4recode_utf16_to_ascii(dptr, dsz, (dk4_c16_t *)sptr, erp); } break; } /* ----- wxChar=2 dkChar=1 */ #endif /* ----- wxChar=2 */ #endif #else /* +++++ wxChar=1 */ #if DK4_CHAR_SIZE > 1 #if DK4_CHAR_SIZE > 2 /* +++++ wxChar=1 dkChar=4 */ #line 511 "dk4recwx.cpt" switch (se) { case DK4_ENCODING_UTF8 : { #line 514 "dk4recwx.cpt" back = dk4recode_utf8_to_c32((dk4_c32_t *)dptr, dsz, sptr, erp); } break; case DK4_ENCODING_WIN1252 : { #line 518 "dk4recwx.cpt" back = dk4recode_ansi_to_c32((dk4_c32_t *)dptr, dsz, sptr, erp); } break; default : { /* ASCII */ #line 522 "dk4recwx.cpt" back = dk4recode_ascii_to_c32((dk4_c32_t *)dptr, dsz, sptr, erp); } break; } /* ----- wxChar=1 dkChar=4 */ #else /* +++++ wxChar=1 dkChar=2 */ #line 529 "dk4recwx.cpt" switch (se) { case DK4_ENCODING_UTF8 : { #line 532 "dk4recwx.cpt" back = dk4recode_utf8_to_utf16((dk4_c16_t *)dptr, dsz, sptr, erp); } break; case DK4_ENCODING_WIN1252 : { #line 536 "dk4recwx.cpt" back = dk4recode_ansi_to_utf16((dk4_c16_t *)dptr, dsz, sptr, erp); } break; default : { /* ASCII */ #line 540 "dk4recwx.cpt" back = dk4recode_ascii_to_utf16((dk4_c16_t *)dptr, dsz, sptr, erp); } break; } /* ----- wxChar=1 dkChar=2 */ #endif #else /* +++++ wxChar=1 dkChar=1 */ #line 548 "dk4recwx.cpt" back = dk4str8_cpy_s(dptr, dsz, sptr, erp); /* ----- wxChar=1 dkChar=1 */ #endif /* ----- wxChar=1 */ #endif } else { #line 555 "dk4recwx.cpt" dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } #line 558 "dk4recwx.cpt" return back; } int dk4recwx_wxchar_to_char( char *dptr, size_t dsz, int de, const wxChar *sptr, #if DK4_SIZEOF_WXCHAR == 1 int se, #else int WXUNUSED(se), #endif dk4_er_t *erp ) { int back = 0; if ((NULL != dptr) && (NULL != sptr) && (0 < dsz)) { switch (de) { case DK4_ENCODING_UTF8 : { #if DK4_SIZEOF_WXCHAR > 1 #if DK4_SIZEOF_WXCHAR > 2 /* +++ wxChar 4 +++ */ back = dk4recode_c32_to_utf8(dptr, dsz, (const dk4_c32_t *)sptr, erp); /* --- wxChar 4 --- */ #else /* +++ wxChar 2 +++ */ back = dk4recode_utf16_to_utf8(dptr, dsz, (const dk4_c16_t *)sptr, erp); /* --- wxChar 2 --- */ #endif #else /* +++ wxChar 1 +++ */ switch (se) { case DK4_ENCODING_UTF8 : { back = dk4str8_cpy_s(dptr, dsz, sptr, erp); } break; case DK4_ENCODING_WIN1252 : { back = dk4recode_ansi_to_utf8(dptr, dsz, sptr, erp); } break; default : { back = dk4recode_ascii_to_utf8(dptr, dsz, sptr, erp); } break; } /* --- wxChar 1 --- */ #endif } break; case DK4_ENCODING_WIN1252 : { #if DK4_SIZEOF_WXCHAR > 1 #if DK4_SIZEOF_WXCHAR > 2 /* +++ wxChar 4 +++ */ back = dk4recode_c32_to_ansi(dptr, dsz, (const dk4_c32_t *)sptr, erp); /* --- wxChar 4 --- */ #else /* +++ wxChar 2 +++ */ back = dk4recode_utf16_to_ansi(dptr, dsz, (const dk4_c16_t *)sptr, erp); /* --- wxChar 2 --- */ #endif #else /* +++ wxChar 1 +++ */ switch (se) { case DK4_ENCODING_UTF8 : { back = dk4recode_utf8_to_ansi(dptr, dsz, sptr, erp); } break; case DK4_ENCODING_WIN1252 : { back = dk4str8_cpy_s(dptr, dsz, sptr, erp); } break; default : { back = dk4recode_ascii_to_ansi(dptr, dsz, sptr, erp); } break; } /* --- wxChar 1 --- */ #endif } break; default : { #if DK4_SIZEOF_WXCHAR > 1 #if DK4_SIZEOF_WXCHAR > 2 /* +++ wxChar 4 +++ */ back = dk4recode_c32_to_ascii(dptr, dsz, (const dk4_c32_t *)sptr, erp); /* --- wxChar 4 --- */ #else /* +++ wxChar 2 +++ */ back = dk4recode_utf16_to_ascii(dptr,dsz,(const dk4_c16_t *)sptr,erp); /* --- wxChar 2 --- */ #endif #else /* +++ wxChar 1 +++ */ switch (se) { case DK4_ENCODING_UTF8 : { back = dk4recode_utf8_to_ascii(dptr, dsz, sptr, erp); } break; case DK4_ENCODING_WIN1252 : { back = dk4recode_ansi_to_ascii(dptr, dsz, sptr, erp); } break; default : { back = dk4str8_cpy_s(dptr, dsz, sptr, erp); } break; } /* --- wxChar 1 --- */ #endif } break; } } else { dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } return back; } unsigned long dk4recwx_wxchar_to_ul(wxChar wxc) { unsigned long back; #if DK4_SIZEOF_WXCHAR > 1 #if DK4_SIZEOF_WXCHAR > 2 back = (0xFFFFFFFFUL & ((unsigned long)wxc)); #else back = (0x0000FFFFUL & ((unsigned long)wxc)); #endif #else back = (0x000000FFUL & ((unsigned long)wxc)); #endif return back; }