summaryrefslogtreecommitdiff
path: root/support/dktools/dk4recwx.cpp
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-09-20 03:03:26 +0000
committerNorbert Preining <norbert@preining.info>2020-09-20 03:03:26 +0000
commit1f457376b478257b88d4a857f5ec1b6155442dd7 (patch)
tree2a06a60551dea362cf8cb0cb0ba66c78608717c4 /support/dktools/dk4recwx.cpp
parentac690ca29ad5bf8a5203a65fd6252f7b564f4727 (diff)
CTAN sync 202009200303
Diffstat (limited to 'support/dktools/dk4recwx.cpp')
-rw-r--r--support/dktools/dk4recwx.cpp182
1 files changed, 115 insertions, 67 deletions
diff --git a/support/dktools/dk4recwx.cpp b/support/dktools/dk4recwx.cpp
index f50fec753f..499622e06b 100644
--- a/support/dktools/dk4recwx.cpp
+++ b/support/dktools/dk4recwx.cpp
@@ -1,43 +1,21 @@
/*
- WARNING: This file was generated by dkct.
- 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
+Copyright (C) 2015-2020, Dirk Krause
+SPDX-License-Identifier: BSD-3-Clause
*/
/*
-Copyright (C) 2015-2017, Dirk Krause
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above opyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-* Neither the name of the author nor the names of contributors may be used
- to endorse or promote products derived from this software without specific
- prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.
-IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ 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 159 "dk4recwx.cpt"
+#line 235 "dk4recwx.cpt"
#include "dk4recwx.h"
#include "dk4rec.h"
@@ -47,7 +25,39 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#line 167 "dk4recwx.cpt"
+#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;
+}
@@ -55,9 +65,17 @@ 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
)
{
@@ -83,7 +101,7 @@ dk4recwx_dkchar_to_wxchar(
case DK4_ENCODING_UTF8 : {
back = dk4recode_utf8_to_c32((dk4_c32_t *)dptr, dsz, sptr, erp);
} break;
- case DK4_ENCODING_ANSI : {
+ case DK4_ENCODING_WIN1252 : {
back = dk4recode_ansi_to_c32((dk4_c32_t *)dptr, dsz, sptr, erp);
} break;
default : { /* ASCII */
@@ -113,7 +131,7 @@ dk4recwx_dkchar_to_wxchar(
case DK4_ENCODING_UTF8 : {
back = dk4recode_utf8_to_utf16((dk4_c16_t *)dptr, dsz, sptr, erp);
} break;
- case DK4_ENCODING_ANSI : {
+ case DK4_ENCODING_WIN1252 : {
back = dk4recode_ansi_to_utf16((dk4_c16_t *)dptr, dsz, sptr, erp);
} break;
default : { /* ASCII */
@@ -135,7 +153,7 @@ dk4recwx_dkchar_to_wxchar(
case DK4_ENCODING_UTF8 : {
back = dk4recode_c32_to_utf8(dptr, dsz, (dk4_c32_t *)sptr, erp);
} break;
- case DK4_ENCODING_ANSI : {
+ case DK4_ENCODING_WIN1252 : {
back = dk4recode_c32_to_ansi(dptr, dsz, (dk4_c32_t *)sptr, erp);
} break;
default : { /* ASCII */
@@ -149,7 +167,7 @@ dk4recwx_dkchar_to_wxchar(
case DK4_ENCODING_UTF8 : {
back = dk4recode_utf16_to_utf8(dptr, dsz, (dk4_c16_t *)sptr, erp);
} break;
- case DK4_ENCODING_ANSI : {
+ case DK4_ENCODING_WIN1252 : {
back = dk4recode_utf16_to_ansi(dptr, dsz, (dk4_c16_t *)sptr, erp);
} break;
default : { /* ASCII */
@@ -178,16 +196,24 @@ 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 305 "dk4recwx.cpt"
+#line 429 "dk4recwx.cpt"
if ((NULL != dptr) && (NULL != sptr) && (0 < dsz)) {
#if DK4_SIZEOF_WXCHAR > 1
#if DK4_SIZEOF_WXCHAR > 2
@@ -198,14 +224,14 @@ dk4recwx_wxchar_to_dkchar(
/* +++++ wxChar=4 dkChar=4 */
-#line 314 "dk4recwx.cpt"
+#line 438 "dk4recwx.cpt"
back = dk4str_cpy_s(dptr, dsz, (dkChar *)sptr, erp);
/* ----- wxChar=4 dkChar=4 */
#else
/* +++++ wxChar=4 dkChar=2 */
-#line 319 "dk4recwx.cpt"
+#line 443 "dk4recwx.cpt"
back = dk4recode_c32_to_utf16((dk4_c16_t *)dptr, dsz, (dk4_c32_t *)sptr, erp);
/* ----- wxChar=4 dkChar=2 */
#endif
@@ -213,24 +239,24 @@ dk4recwx_wxchar_to_dkchar(
/* +++++ wxChar=4 dkChar=1 */
-#line 325 "dk4recwx.cpt"
+#line 449 "dk4recwx.cpt"
switch (de) {
case DK4_ENCODING_UTF8 : {
-#line 328 "dk4recwx.cpt"
+#line 452 "dk4recwx.cpt"
back = dk4recode_c32_to_utf8(dptr, dsz, (dk4_c32_t *)sptr, erp);
} break;
- case DK4_ENCODING_ANSI : {
+ case DK4_ENCODING_WIN1252 : {
-#line 332 "dk4recwx.cpt"
+#line 456 "dk4recwx.cpt"
back = dk4recode_c32_to_ansi(dptr, dsz, (dk4_c32_t *)sptr, erp);
} break;
default : { /* ASCII */
-#line 336 "dk4recwx.cpt"
+#line 460 "dk4recwx.cpt"
back = dk4recode_c32_to_ascii(dptr, dsz, (dk4_c32_t *)sptr, erp);
} break;
}
@@ -246,14 +272,14 @@ dk4recwx_wxchar_to_dkchar(
/* +++++ wxChar=2 dkChar=4 */
-#line 350 "dk4recwx.cpt"
+#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 355 "dk4recwx.cpt"
+#line 479 "dk4recwx.cpt"
back = dk4str_cpy_s(dptr, dsz, (dkChar *)sptr, erp);
/* ----- wxChar=2 dkChar=2 */
#endif
@@ -261,24 +287,24 @@ dk4recwx_wxchar_to_dkchar(
/* +++++ wxChar=2 dkChar=1 */
-#line 361 "dk4recwx.cpt"
+#line 485 "dk4recwx.cpt"
switch (de) {
case DK4_ENCODING_UTF8 : {
-#line 364 "dk4recwx.cpt"
+#line 488 "dk4recwx.cpt"
back = dk4recode_utf16_to_utf8(dptr, dsz, (dk4_c16_t *)sptr, erp);
} break;
- case DK4_ENCODING_ANSI : {
+ case DK4_ENCODING_WIN1252 : {
-#line 368 "dk4recwx.cpt"
+#line 492 "dk4recwx.cpt"
back = dk4recode_utf16_to_ansi(dptr, dsz, (dk4_c16_t *)sptr, erp);
} break;
default : { /* ASCII */
-#line 372 "dk4recwx.cpt"
+#line 496 "dk4recwx.cpt"
back = dk4recode_utf16_to_ascii(dptr, dsz, (dk4_c16_t *)sptr, erp);
} break;
}
@@ -295,24 +321,24 @@ dk4recwx_wxchar_to_dkchar(
/* +++++ wxChar=1 dkChar=4 */
-#line 387 "dk4recwx.cpt"
+#line 511 "dk4recwx.cpt"
switch (se) {
case DK4_ENCODING_UTF8 : {
-#line 390 "dk4recwx.cpt"
+#line 514 "dk4recwx.cpt"
back = dk4recode_utf8_to_c32((dk4_c32_t *)dptr, dsz, sptr, erp);
} break;
- case DK4_ENCODING_ANSI : {
+ case DK4_ENCODING_WIN1252 : {
-#line 394 "dk4recwx.cpt"
+#line 518 "dk4recwx.cpt"
back = dk4recode_ansi_to_c32((dk4_c32_t *)dptr, dsz, sptr, erp);
} break;
default : { /* ASCII */
-#line 398 "dk4recwx.cpt"
+#line 522 "dk4recwx.cpt"
back = dk4recode_ascii_to_c32((dk4_c32_t *)dptr, dsz, sptr, erp);
} break;
}
@@ -321,24 +347,24 @@ dk4recwx_wxchar_to_dkchar(
/* +++++ wxChar=1 dkChar=2 */
-#line 405 "dk4recwx.cpt"
+#line 529 "dk4recwx.cpt"
switch (se) {
case DK4_ENCODING_UTF8 : {
-#line 408 "dk4recwx.cpt"
+#line 532 "dk4recwx.cpt"
back = dk4recode_utf8_to_utf16((dk4_c16_t *)dptr, dsz, sptr, erp);
} break;
- case DK4_ENCODING_ANSI : {
+ case DK4_ENCODING_WIN1252 : {
-#line 412 "dk4recwx.cpt"
+#line 536 "dk4recwx.cpt"
back = dk4recode_ansi_to_utf16((dk4_c16_t *)dptr, dsz, sptr, erp);
} break;
default : { /* ASCII */
-#line 416 "dk4recwx.cpt"
+#line 540 "dk4recwx.cpt"
back = dk4recode_ascii_to_utf16((dk4_c16_t *)dptr, dsz, sptr, erp);
} break;
}
@@ -348,7 +374,7 @@ dk4recwx_wxchar_to_dkchar(
/* +++++ wxChar=1 dkChar=1 */
-#line 424 "dk4recwx.cpt"
+#line 548 "dk4recwx.cpt"
back = dk4str8_cpy_s(dptr, dsz, sptr, erp);
/* ----- wxChar=1 dkChar=1 */
#endif
@@ -357,12 +383,12 @@ dk4recwx_wxchar_to_dkchar(
#endif
} else {
-#line 431 "dk4recwx.cpt"
+#line 555 "dk4recwx.cpt"
dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS);
}
-#line 434 "dk4recwx.cpt"
+#line 558 "dk4recwx.cpt"
return back;
}
@@ -374,7 +400,11 @@ dk4recwx_wxchar_to_char(
size_t dsz,
int de,
const wxChar *sptr,
+#if DK4_SIZEOF_WXCHAR == 1
int se,
+#else
+ int WXUNUSED(se),
+#endif
dk4_er_t *erp
)
{
@@ -398,7 +428,7 @@ dk4recwx_wxchar_to_char(
case DK4_ENCODING_UTF8 : {
back = dk4str8_cpy_s(dptr, dsz, sptr, erp);
} break;
- case DK4_ENCODING_ANSI : {
+ case DK4_ENCODING_WIN1252 : {
back = dk4recode_ansi_to_utf8(dptr, dsz, sptr, erp);
} break;
default : {
@@ -408,7 +438,7 @@ dk4recwx_wxchar_to_char(
/* --- wxChar 1 --- */
#endif
} break;
- case DK4_ENCODING_ANSI : {
+ case DK4_ENCODING_WIN1252 : {
#if DK4_SIZEOF_WXCHAR > 1
#if DK4_SIZEOF_WXCHAR > 2
/* +++ wxChar 4 +++ */
@@ -425,7 +455,7 @@ dk4recwx_wxchar_to_char(
case DK4_ENCODING_UTF8 : {
back = dk4recode_utf8_to_ansi(dptr, dsz, sptr, erp);
} break;
- case DK4_ENCODING_ANSI : {
+ case DK4_ENCODING_WIN1252 : {
back = dk4str8_cpy_s(dptr, dsz, sptr, erp);
} break;
default : {
@@ -452,7 +482,7 @@ dk4recwx_wxchar_to_char(
case DK4_ENCODING_UTF8 : {
back = dk4recode_utf8_to_ascii(dptr, dsz, sptr, erp);
} break;
- case DK4_ENCODING_ANSI : {
+ case DK4_ENCODING_WIN1252 : {
back = dk4recode_ansi_to_ascii(dptr, dsz, sptr, erp);
} break;
default : {
@@ -469,3 +499,21 @@ dk4recwx_wxchar_to_char(
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;
+}
+