From 7878d5b5760b6c15b37247853af78445038176d8 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Tue, 16 May 2023 14:53:45 +0100
Subject: [PATCH] util/spkmodem_recv: Add -u flag (no line buffer)

printf outputs to stdout, which is line buffered
by default.

Adding a -u option to disable buffering.

Exit when a non-support flag is given, but adhere
to current behaviour when no flag is given.

Signed-off-by: Leah Rowe <leah@libreboot.org>
---
 util/spkmodem_recv/spkmodem-recv.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c
index b4179d8..efc690b 100644
--- a/util/spkmodem_recv/spkmodem-recv.c
+++ b/util/spkmodem_recv/spkmodem-recv.c
@@ -6,6 +6,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <unistd.h>
 
 /* Compilation:	gcc -o spkmodem-recv spkmodem-recv  */
 /* Usage: parec --channels=1 --rate=48000 --format=s16le | ./spkmodem-recv */
@@ -33,7 +34,17 @@ void fetch_sample(void);
 int
 main(int argc, char *argv[])
 {
-	(void)argc; (void)argv;
+	int c;
+
+	while ((c = getopt(argc, argv, "u")) != -1) {
+		switch (c) {
+		case 'u':
+			setvbuf(stdout, NULL, _IONBF, 0);
+			break;
+		default:
+			err(errno = EINVAL, NULL);
+		}
+	}
 
 	while (!feof(stdin))
 		handle_audio();
-- 
GitLab