From d94ae26d161be87c58906dac10519e8156469923 Mon Sep 17 00:00:00 2001 From: Oskari Timperi Date: Wed, 15 Feb 2017 22:32:45 +0200 Subject: Home-made 16 bit big endian reading and writing in stream.c --- src/stream.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/stream.c b/src/stream.c index 97a8a2d..e7dd7f7 100644 --- a/src/stream.c +++ b/src/stream.c @@ -6,9 +6,6 @@ #include #include -/* htons, ntohs */ -#include - #define STREAM_CHECK_OP(stream, op) \ do { if ((stream->ops->op) == NULL) \ { \ @@ -42,10 +39,11 @@ int64_t StreamRead(void *ptr, size_t size, Stream *stream) int64_t StreamReadUint16Be(uint16_t *v, Stream *stream) { + unsigned char data[2]; STREAM_CHECK_OP(stream, read); - if (StreamRead(v, 2, stream) != 2) + if (StreamRead(data, 2, stream) != 2) return -1; - *v = ntohs(*v); + *v = (data[1] << 0) | (data[0] << 1); return 2; } @@ -61,8 +59,10 @@ int64_t StreamWrite(const void *ptr, size_t size, Stream *stream) int64_t StreamWriteUint16Be(uint16_t v, Stream *stream) { - v = htons(v); - return StreamWrite(&v, sizeof(v), stream); + unsigned char data[2]; + data[0] = v >> 8; + data[1] = v; + return StreamWrite(data, sizeof(data), stream); } int StreamSeek(Stream *stream, int64_t offset, int whence) -- cgit v1.2.3