%% options copyright owner = Dirk Krause copyright year = 2015-xxxx SPDX-License-Identifier: BSD-3-Clause %% header /** @file String output over dk4_stream_t API, dkChar strings. CRT on Windows: Not used. */ #ifndef DK4CONF_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4conf.h" #else #include #endif #endif #ifndef DK4TYPES_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4types.h" #else #include #endif #endif #ifndef DK4STRM_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4strm.h" #else #include #endif #endif #ifdef __cplusplus extern "C" { #endif /** Write one 32 bit character string to stream. @param strm Stream to write to. @param txt Text string to write. @param ie Input encoding used for txt. @param erp Error report, may be NULL. @return 1 on success, 0 on error. Error codes: - DK4_E_INVALID_ARGUMENTS
if strm is null or not set up for writing, - DK4_E_ENCODING_FAILED
if it is not possible to encode c32 to the output encoding for the stream, - DK4_E_WRITE_FAILED
if writing one ore multiple bytes to the stream failed, - DK4_E_FLUSH_FAILED
if flushing data downwards failed. */ int dk4stream_dk_puts(dk4_stream_t *strm, const dkChar *txt, int ie, dk4_er_t *erp); #ifdef __cplusplus } #endif %% module #include "dk4conf.h" #include "dk4strmodk.h" #include "dk4strmo32.h" #include "dk4strmo16.h" #include "dk4strmo08.h" #include "dk4unused.h" #if DK4_HAVE_ASSERT_H #ifndef ASSERT_H_INCLUDED #include #define ASSERT_H_INCLUDED 1 #endif #endif int dk4stream_dk_puts( dk4_stream_t *strm, const dkChar *txt, #if 1 == DK4_CHAR_SIZE int ie, #else int DK4_ARG_UNUSED(ie), #endif dk4_er_t *erp ) { #if DK4_CHAR_SIZE > 1 DK4_UNUSED_ARG(ie) #endif #if DK4_USE_ASSERT assert(NULL != strm); assert(NULL != txt); #endif #if DK4_CHAR_SIZE > 1 #if DK4_CHAR_SIZE > 2 return (dk4stream_c32_puts(strm, txt, erp)); #else return (dk4stream_c16_puts(strm, txt, erp)); #endif #else return (dk4stream_c08_puts(strm, txt, ie, erp)); #endif }