diff options
author | Norbert Preining <norbert@preining.info> | 2020-10-12 03:04:00 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-10-12 03:04:00 +0000 |
commit | 0ce40abb18ec02ec6fd6bcc5f21612c88daa7578 (patch) | |
tree | 416289fe1448873fd8ca33051f50ad85bffa8aaa /support/dktools/dk4utf8.h | |
parent | fdb18507cd80dc17f5a5256153d34668b4f4e61c (diff) |
CTAN sync 202010120303
Diffstat (limited to 'support/dktools/dk4utf8.h')
-rw-r--r-- | support/dktools/dk4utf8.h | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/support/dktools/dk4utf8.h b/support/dktools/dk4utf8.h deleted file mode 100644 index fd25dba758..0000000000 --- a/support/dktools/dk4utf8.h +++ /dev/null @@ -1,147 +0,0 @@ -/* -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: dk4utf8.ctr -*/ - -#ifndef DK4UTF8_H_INCLUDED -/** Avoid multiple inclusions. */ -#define DK4UTF8_H_INCLUDED 1 - - -#line 10 "dk4utf8.ctr" - -/** @file - UTF-8 decoding and encoding. - -To decode an UTF-8 encoded data stream, use a dk4_utf8_decoder_t object. -Use dk4utf8_init() to initialize the object before you start decoding. -For each byte from the data stream use dk4utf8_add(). Possible -return values are DK4_EDSTM_ACCEPT, DK4_EDSTM_FINISHED, -and DK4_EDSTM_ERROR. -DK4_EDSTM_ACCEPT indicates the byte was processed successfully, -but more bytes are required to complete the UNICODE character. -DK4_EDSTM_FINISHED indicates an UNICODE character was completed, -use dk4utf8_get() to retrieve it. -DK4_EDSTM_ERROR indicates an error, invalid input. - -The older RFC2279 allows a wider range of UNICODE characters, -RFC3629 restricts the UNICODE character range to 0x0010FFFF. -Routines in this module use the range defined by RFC2279. -To be RFC3629 compliant, check UNICODE values and make sure -to use the range 0...0x0010FFFF only. - -CRT on Windows: Not used. -*/ - - -#ifndef DK4CONF_H_INCLUDED -#if DK4_BUILDING_DKTOOLS4 -#include "dk4conf.h" -#else -#include <dktools-4/dk4conf.h> -#endif -#endif - -#ifndef DK4TYPES_H_INCLUDED -#if DK4_BUILDING_DKTOOLS4 -#include "dk4types.h" -#else -#include <dktools-4/dk4types.h> -#endif -#endif - -#ifndef DK4ERROR_H_INCLUDED -#if DK4_BUILDING_DKTOOLS4 -#include "dk4error.h" -#else -#include <dktools-4/dk4error.h> -#endif -#endif - -#ifndef DK4DEC_H_INCLUDED -#if DK4_BUILDING_DKTOOLS4 -#include "dk4edstm.h" -#else -#include <dktools-4/dk4edstm.h> -#endif -#endif - - -/** State machine to decode UTF-8 encoded data byte by byte. -*/ -typedef struct { - dk4_c32_t uc; /**< Unicode character to produce. */ - int bfc; /**< Bytes needed for character. */ - int bfn; /**< Bytes already found. */ -} dk4_utf8_decoder_t; - - - -#ifdef __cplusplus -extern "C" { -#endif - -/** Initialize the UTF-8 decoder. - @param ptr Decoder to initialize. -*/ -void -dk4utf8_init(dk4_utf8_decoder_t *ptr); - -/** Add one byte to the decoder. - @param ptr Decoder to use. - @param byte Byte to add. - @return Operation result, one from: - DK4_EDSTM_ACCEPT if the byte was added to the next output - without completing output, - DK4_EDSTM_FINISHED if the byte was added to the next output - completing the output, or - DK4_EDSTM_ERROR on error. -*/ -int -dk4utf8_add(dk4_utf8_decoder_t *ptr, unsigned char byte); - -/** Retrieve a completed Unicode character from the decoder. - @param ptr Decoder to obtain character from. -*/ -dk4_c32_t -dk4utf8_get(dk4_utf8_decoder_t const *ptr); - -/** Check whether the decoder is empty. - @param ptr Decoder to check. - @return 1 on success, 0 on error. -*/ -int -dk4utf8_is_empty(dk4_utf8_decoder_t const *ptr); - -/** UTF-8 encode UNICODE character. - @param rb Result buffer, at least 7 bytes. - @param pszrb Size of result buffer, in: available, out: used. - @param c Character to encode. - @param erp Error report, may be NULL. - @return 1 on success, 0 on error. - - Error codes: - - DK4_E_INVALID_ARGUMENTS<br> - if rb or pszrb is NULL, - - DK4_E_BUFFER_TOO_SMALL<br> - if the size specified in pszrb is less than 7. -*/ -int -dk4utf8_encode(unsigned char *rb, size_t *pszrb, dk4_c32_t c, dk4_er_t *erp); - -#ifdef __cplusplus -} -#endif - - - - -#endif |