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/dk4strmu.c | |
parent | fdb18507cd80dc17f5a5256153d34668b4f4e61c (diff) |
CTAN sync 202010120303
Diffstat (limited to 'support/dktools/dk4strmu.c')
-rw-r--r-- | support/dktools/dk4strmu.c | 379 |
1 files changed, 0 insertions, 379 deletions
diff --git a/support/dktools/dk4strmu.c b/support/dktools/dk4strmu.c deleted file mode 100644 index 4269e0c9c4..0000000000 --- a/support/dktools/dk4strmu.c +++ /dev/null @@ -1,379 +0,0 @@ -/* -Copyright (C) 2016-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: dk4strmu.ctr -*/ - -/** @file dk4strmu.c The dk4strmu module. -*/ - - -#line 238 "dk4strmu.ctr" - -#include "dk4conf.h" - -#if DK4_HAVE_ASSERT_H -#ifndef ASSERT_H_INCLUDED -#include <assert.h> -#define ASSERT_H_INCLUDED 1 -#endif -#endif - -#include "dk4strmu.h" -#include "dk4mai8dbl.h" -#include "dk4mem.h" - - -int -dk4stream_unser_u32(uint32_t *ptr, dk4_stream_t *strm, dk4_er_t *erp) -{ - unsigned char buf[8]; - size_t sz = 4; - unsigned long res = 0UL; - int back = 0; - -#if DK4_USE_ASSERT - assert(NULL != strm); - assert(NULL != ptr); -#endif - if ((NULL != ptr) && (NULL != strm)) { - if (0 < dk4stream_read(buf, &sz, strm, erp)) { - if (4 == sz) { - res = - ( - ( (unsigned long)(buf[0])) & 0x000000FFUL - ) - | ( - (((unsigned long)(buf[1])) << 8) & 0x0000FF00UL - ) - | ( - (((unsigned long)(buf[2])) << 16) & 0x00FF0000UL - ) - | ( - (((unsigned long)(buf[3])) << 24) & 0xFF000000UL - ); - *ptr = (uint32_t)res; - back = 1; - } - else { - dk4error_set_simple_error_code(erp, DK4_E_SYNTAX); - } - } - else { - /* ERROR: Read failed, already reported */ - } - } - else { - dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); - } - return back; -} - - - -int -dk4stream_unser_i32(int32_t *ptr, dk4_stream_t *strm, dk4_er_t *erp) -{ - uint32_t res = 0UL; - int back = 0; - -#if DK4_USE_ASSERT - assert(NULL != strm); - assert(NULL != ptr); -#endif - if (NULL != ptr) { - back = dk4stream_unser_u32(&res, strm, erp); - if (0 < back) { - *ptr = (int32_t)res; - } - } - else { - dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); - } - return back; -} - - - - -int -dk4stream_unser_u16(uint16_t *ptr, dk4_stream_t *strm, dk4_er_t *erp) -{ - unsigned char buf[8]; - size_t sz = 2; - unsigned res = 0U; - int back = 0; - -#if DK4_USE_ASSERT - assert(NULL != strm); - assert(NULL != ptr); -#endif - if ((NULL != ptr) && (NULL != strm)) { - if (0 < dk4stream_read(buf, &sz, strm, erp)) { - if (2 == sz) { - res = - ( - ( (unsigned)(buf[0])) & 0x00FFU - ) - | ( - (((unsigned)(buf[1])) << 8) & 0xFF00U - ); - *ptr = (uint16_t)res; - back = 1; - } - else { - dk4error_set_simple_error_code(erp, DK4_E_SYNTAX); - } - } - else { - /* ERROR: Read failed, already reported */ - } - } - else { - dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); - } - return back; -} - - - -int -dk4stream_unser_i16(int16_t *ptr, dk4_stream_t *strm, dk4_er_t *erp) -{ - uint16_t res = 0UL; - int back = 0; - -#if DK4_USE_ASSERT - assert(NULL != strm); - assert(NULL != ptr); -#endif - if (NULL != ptr) { - back = dk4stream_unser_u16(&res, strm, erp); - if (0 < back) { - *ptr = (int16_t)res; - } - } - else { - dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); - } - return back; -} - - - -int -dk4stream_unser_u8(uint8_t *ptr, dk4_stream_t *strm, dk4_er_t *erp) -{ - unsigned char buf[8]; - size_t sz = 1; - int back = 0; - -#if DK4_USE_ASSERT - assert(NULL != strm); - assert(NULL != ptr); -#endif - if ((NULL != ptr) && (NULL != strm)) { - if (0 < dk4stream_read(buf, &sz, strm, erp)) { - if (1 == sz) { - *ptr = (uint8_t)(buf[0]); - back = 1; - } - else { - dk4error_set_simple_error_code(erp, DK4_E_SYNTAX); - } - } - else { - /* ERROR: Read failed, already reported */ - } - } - else { - dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); - } - return back; -} - - - -int -dk4stream_unser_i8(int8_t *ptr, dk4_stream_t *strm, dk4_er_t *erp) -{ - uint8_t res = 0UL; - int back = 0; - -#if DK4_USE_ASSERT - assert(NULL != strm); - assert(NULL != ptr); -#endif - if (NULL != ptr) { - back = dk4stream_unser_u8(&res, strm, erp); - if (0 < back) { - *ptr = (int8_t)res; - } - } - else { - dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); - } - return back; -} - - - -int -dk4stream_unser_string(char **strptr, dk4_stream_t *strm, dk4_er_t *erp) -{ - char *np = NULL; - size_t sz = 0; - int back = 0; - int res = 0; - uint16_t sl = 0; - -#if DK4_USE_ASSERT - assert(NULL != strm); - assert(NULL != strptr); -#endif - if ((NULL != strptr) && (NULL != strm)) { - res = dk4stream_unser_u16(&sl, strm, erp); - if (0 < res) { - if (0U < sl) { - np = dk4mem_new(char, (size_t)sl, erp); - if (NULL != np) { - sz = (size_t)sl; - back = dk4stream_read(np, &sz, strm, erp); - if (0 < back) { - back = 0; - if (sz == (size_t)sl) { - if ('\0' == np[sz - 1]) { - back = 1; - } - else { - /* ERROR: Missing delimiter */ - dk4error_set_simple_error_code( - erp, DK4_E_SYNTAX - ); - dk4mem_free(np); - np = NULL; - } - } - else { - /* ERROR: Wrong number of bytes */ - dk4error_set_simple_error_code(erp, DK4_E_SYNTAX); - dk4mem_free(np); - np = NULL; - } - } - else { - /* ERROR: Read attempt failed */ - dk4error_set_simple_error_code(erp, DK4_E_SYNTAX); - dk4mem_free(np); - np = NULL; - } - } - else { - /* ERROR: Memory, already reported */ - } - } - else { - /* ERROR: Length is zero */ - back = 1; -#if 0 - dk4error_set_simple_error_code(erp, DK4_E_NOT_FOUND); -#endif - } - } - else { - /* ERROR: Failed to read string length, already reported */ - } - } - else { - dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); - } - if (NULL != strptr) { - *strptr = np; - } - return back; -} - - - -int -dk4stream_unser_double(double *ptr, dk4_stream_t *strm, dk4_er_t *erp) -{ - char buf[16*sizeof(double)]; - const char *ep = NULL; - double d = 0.0; - size_t szb = sizeof(buf); - size_t sz = 0; - int back = 0; - uint16_t sl = 0; - -#if DK4_USE_ASSERT - assert(NULL != strm); - assert(NULL != ptr); -#endif - if ((NULL != ptr) && (NULL != strm)) { - if (0 < dk4stream_unser_u16(&sl, strm, erp)) { - if (0U == sl) { - /* Easy variant for 0.0 */ - *ptr = 0.0; - back = 1; - } - else { - if (szb >= (size_t)sl) { - sz = (size_t)sl; - if (0 < dk4stream_read(buf, &sz, strm, erp)) { - if (sz == (size_t)sl) { - if ('\0' == buf[sz - 1]) { - back = dk4ma_input_c8_double( - &d, buf, &ep, 0, erp - ); - if (0 < back) { - *ptr = d; - } - else { - /* ERROR: Conversion failed, reported */ - } - } - else { - /* ERROR: Not 0x00-terminated */ - dk4error_set_simple_error_code( - erp, DK4_E_SYNTAX - ); - } - } - else { - /* ERROR: Too few bytes */ - dk4error_set_simple_error_code(erp, DK4_E_SYNTAX); - } - } - else { - /* ERROR: Failed to read */ - dk4error_set_simple_error_code(erp, DK4_E_SYNTAX); - } - } - else { - /* ERROR: String too long */ - dk4error_set_simple_error_code(erp, DK4_E_SYNTAX); - } - } - } - else { - /* ERROR: Failed to read length, already reported */ - } - } - else { - dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); - } - return back; -} - - - -/* vim: set ai sw=4 ts=4 : */ - |