# HG changeset patch # User Mychaela Falconia <falcon@freecalypso.org> # Date 1739318361 0 # Node ID 9a9d05a8fc75275dd0e3404746ddd43a7c822e5a # Parent 707d6f7a54dc4845b0a36de2009f5600e441efca libtest: add function for local native endian diff -r 707d6f7a54dc -r 9a9d05a8fc75 libtest/Makefile --- a/libtest/Makefile Thu Feb 06 09:32:18 2025 +0000 +++ b/libtest/Makefile Tue Feb 11 23:59:21 2025 +0000 @@ -1,5 +1,5 @@ -OBJS= binreader.o parse_dlcap.o pcmwrite.o roberead.o robewrite.o tw5reader.o\ - tw5writer.o wavrdhelp.o wavreader.o wavwriter.o +OBJS= binreader.o local_endian.o parse_dlcap.o pcmwrite.o roberead.o \ + robewrite.o tw5reader.o tw5writer.o wavrdhelp.o wavreader.o wavwriter.o LIB= libtest.a include ../config.defs diff -r 707d6f7a54dc -r 9a9d05a8fc75 libtest/local_endian.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtest/local_endian.c Tue Feb 11 23:59:21 2025 +0000 @@ -0,0 +1,20 @@ +/* + * This C module is our current best attempt at determining the local endian + * in a portable manner that (hopefully) won't come back to bite us when + * someone needs to compile our software under a different flavor of Unix. + */ + +#include <stdint.h> +#include <arpa/inet.h> +#include "local_endian.h" + +int is_native_big_endian(void) +{ + uint16_t big_end_one; + + big_end_one = htons(1); + if (big_end_one == 1) + return 1; + else + return 0; +} diff -r 707d6f7a54dc -r 9a9d05a8fc75 libtest/local_endian.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtest/local_endian.h Tue Feb 11 23:59:21 2025 +0000 @@ -0,0 +1,8 @@ +/* + * This header file defines the interface to our utility function + * that determines the local machine's native byte order, thereby + * providing a default for file reading functions that can be overridden + * with -b or -l options. + */ + +int is_native_big_endian(void);