From d0b213a652919017c963ddbb4b32ef0a0127e33f Mon Sep 17 00:00:00 2001 From: Hugues Delorme Date: Wed, 13 Jan 2016 15:17:18 +0100 Subject: [PATCH] tests: move gmio_stlb_header_to_printable_str() to gmio_stl/stlb_header.h --- src/gmio_stl/stl_infos.h | 8 +++----- src/gmio_stl/stlb_header.c | 12 ++++++++++++ src/gmio_stl/stlb_header.h | 10 ++++++++++ tests/stl_utils.c | 12 ------------ tests/stl_utils.h | 3 --- tests/test_stl_io.c | 2 +- 6 files changed, 26 insertions(+), 21 deletions(-) diff --git a/src/gmio_stl/stl_infos.h b/src/gmio_stl/stl_infos.h index 2ec3b95..2b87b83 100644 --- a/src/gmio_stl/stl_infos.h +++ b/src/gmio_stl/stl_infos.h @@ -30,7 +30,6 @@ #include - #include "stl_format.h" #include "stlb_header.h" @@ -47,12 +46,12 @@ struct gmio_stl_infos /*! STL ascii only: name of the solid * - * The pointer has to be set by the caller of gmio_stl_infos_get() */ + * The pointer has to be set before calling gmio_stl_infos_get() */ char* stla_solidname; /*! STL ascii only: maximum length(capacity) of stla_solidname * - * The value has to be set by the caller of gmio_stl_infos_get() + * The value has to be set before calling gmio_stl_infos_get() */ size_t stla_solidname_maxlen; @@ -92,8 +91,7 @@ struct gmio_stl_infos_get_args /*! Optional memory block used by the stream to bufferize read operations * * If null, then a temporary memblock is created with the global default - * constructor function (see gmio_memblock_default()) - */ + * constructor function (see gmio_memblock_default()) */ struct gmio_memblock stream_memblock; /*! Output informations */ diff --git a/src/gmio_stl/stlb_header.c b/src/gmio_stl/stlb_header.c index 9ade45c..1f9589c 100644 --- a/src/gmio_stl/stlb_header.c +++ b/src/gmio_stl/stlb_header.c @@ -15,6 +15,7 @@ #include "stlb_header.h" +#include #include struct gmio_stlb_header gmio_stlb_header_str(const char* str) @@ -24,3 +25,14 @@ struct gmio_stlb_header gmio_stlb_header_str(const char* str) strncpy((char*)header.data, str, GMIO_STLB_HEADER_SIZE); return header; } + +void gmio_stlb_header_to_printable_str( + const struct gmio_stlb_header* header, char* str, char replacement) +{ + size_t i; + for (i = 0; i < GMIO_STLB_HEADER_SIZE; ++i) { + const int header_char = (int)header->data[i]; + str[i] = isprint(header_char) ? (char)header_char : replacement; + } + str[GMIO_STLB_HEADER_SIZE] = 0; +} diff --git a/src/gmio_stl/stlb_header.h b/src/gmio_stl/stlb_header.h index b1b68fe..2eaa164 100644 --- a/src/gmio_stl/stlb_header.h +++ b/src/gmio_stl/stlb_header.h @@ -44,6 +44,16 @@ GMIO_C_LINKAGE_BEGIN GMIO_LIBSTL_EXPORT struct gmio_stlb_header gmio_stlb_header_str(const char* str); +/*! Copies \p header into C string \p str + * + * It replaces non-printable bytes with \p replacement char. + * \p str must be at least \c GMIO_STLB_HEADER_SIZE long, a terminating null + * character ('\0') is copied at position \c GMIO_STLB_HEADER_SIZE + */ +GMIO_LIBSTL_EXPORT +void gmio_stlb_header_to_printable_str( + const struct gmio_stlb_header* header, char* str, char replacement); + GMIO_C_LINKAGE_END #endif /* GMIO_STLB_HEADER_H */ diff --git a/tests/stl_utils.c b/tests/stl_utils.c index f080c53..e99540b 100644 --- a/tests/stl_utils.c +++ b/tests/stl_utils.c @@ -115,18 +115,6 @@ struct gmio_stl_mesh gmio_stl_data_mesh(const struct gmio_stl_data *data) return mesh; } -void gmio_stlb_header_to_printable_string( - const struct gmio_stlb_header *header, char *str, char replacement) -{ - size_t i = 0; - for (; i < GMIO_STLB_HEADER_SIZE; ++i) { - str[i] = isprint((int)header->data[i]) ? - (char) header->data[i] : - replacement; - } - str[GMIO_STLB_HEADER_SIZE] = 0; -} - gmio_bool_t gmio_stl_coords_equal( const struct gmio_stl_coords *lhs, const struct gmio_stl_coords *rhs, diff --git a/tests/stl_utils.h b/tests/stl_utils.h index 7c40dce..f912c03 100644 --- a/tests/stl_utils.h +++ b/tests/stl_utils.h @@ -41,9 +41,6 @@ GMIO_INLINE gmio_bool_t gmio_stlb_header_equal( return memcmp(lhs, rhs, GMIO_STLB_HEADER_SIZE) == 0; } -void gmio_stlb_header_to_printable_string( - const struct gmio_stlb_header* header, char* str, char replacement); - /*! Callback for gmio_stl_mesh_creator::func_add_triangle that does * nothing(ie "no operation") */ void gmio_stl_nop_add_triangle( diff --git a/tests/test_stl_io.c b/tests/test_stl_io.c index e1f9828..e30bc2a 100644 --- a/tests/test_stl_io.c +++ b/tests/test_stl_io.c @@ -325,7 +325,7 @@ const char* test_stla_write() { struct gmio_stl_write_args write = {0}; write.mesh = gmio_stl_data_mesh(&data); - gmio_stlb_header_to_printable_string(&data.header, &header_str[0], '_'); + gmio_stlb_header_to_printable_str(&data.header, &header_str[0], '_'); write.options.stla_solid_name = &header_str[0]; write.options.stla_float32_prec = 7; write.options.stla_float32_format =