# 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);