summaryrefslogtreecommitdiff
path: root/support/dktools/dk4utf8.c
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/dk4utf8.c
parentac690ca29ad5bf8a5203a65fd6252f7b564f4727 (diff)
CTAN sync 202009200303
Diffstat (limited to 'support/dktools/dk4utf8.c')
-rw-r--r--support/dktools/dk4utf8.c75
1 files changed, 39 insertions, 36 deletions
diff --git a/support/dktools/dk4utf8.c b/support/dktools/dk4utf8.c
index 5402fb1f4d..857842f4c7 100644
--- a/support/dktools/dk4utf8.c
+++ b/support/dktools/dk4utf8.c
@@ -1,60 +1,50 @@
/*
- 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: dk4utf8.ctr
+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: dk4utf8.ctr
*/
/** @file dk4utf8.c The dk4utf8 module.
*/
-#line 121 "dk4utf8.ctr"
+#line 137 "dk4utf8.ctr"
#include "dk4conf.h"
+
+#if DK4_HAVE_ASSERT_H
+#ifndef ASSERT_H_INCLUDED
+#include <assert.h>
+#define ASSERT_H_INCLUDED 1
+#endif
+#endif
+
#include "dk4types.h"
#include "dk4error.h"
#include "dk4utf8.h"
+#include "dk4rec26.h"
-#line 130 "dk4utf8.ctr"
+#line 155 "dk4utf8.ctr"
void
dk4utf8_init(dk4_utf8_decoder_t *ptr)
{
+#if DK4_USE_ASSERT
+ assert(NULL != ptr);
+#endif
if (NULL != ptr) {
ptr->uc = dkC32(0);
ptr->bfc = 0;
@@ -68,7 +58,9 @@ int
dk4utf8_add(dk4_utf8_decoder_t *ptr, unsigned char byte)
{
int back = DK4_EDSTM_ERROR;
-
+#if DK4_USE_ASSERT
+ assert(NULL != ptr);
+#endif
if (NULL != ptr) {
switch (ptr->bfc) {
case 0: {
@@ -254,9 +246,12 @@ dk4utf8_add(dk4_utf8_decoder_t *ptr, unsigned char byte)
dk4_c32_t
-dk4utf8_get(dk4_utf8_decoder_t *ptr)
+dk4utf8_get(dk4_utf8_decoder_t const *ptr)
{
dk4_c32_t back = dkC32(0);
+#if DK4_USE_ASSERT
+ assert(NULL != ptr);
+#endif
if (NULL != ptr) {
back = ptr->uc;
}
@@ -266,9 +261,12 @@ dk4utf8_get(dk4_utf8_decoder_t *ptr)
int
-dk4utf8_is_empty(dk4_utf8_decoder_t *ptr)
+dk4utf8_is_empty(dk4_utf8_decoder_t const *ptr)
{
int back = 0;
+#if DK4_USE_ASSERT
+ assert(NULL != ptr);
+#endif
if (NULL != ptr) {
if (0 == ptr->bfc) {
back = 1;
@@ -285,7 +283,12 @@ dk4utf8_encode(unsigned char *rb, size_t *pszrb, dk4_c32_t c, dk4_er_t *erp)
int back = 0;
-#line 365 "dk4utf8.ctr"
+#line 401 "dk4utf8.ctr"
+#if DK4_USE_ASSERT
+ assert(NULL != rb);
+ assert(NULL != pszrb);
+ assert(6 < *pszrb);
+#endif
if ((NULL != rb) && (NULL != pszrb)) {
if (6 < *pszrb) {
if (dkC32(0x7F) < c) {
@@ -349,7 +352,7 @@ dk4utf8_encode(unsigned char *rb, size_t *pszrb, dk4_c32_t c, dk4_er_t *erp)
dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS);
}
-#line 427 "dk4utf8.ctr"
+#line 468 "dk4utf8.ctr"
return back;
}