# HG changeset patch
# User Mychaela Falconia <falcon@freecalypso.org>
# Date 1742342129 0
# Node ID 13d47c9df28b1cea78568d3e416e3b900879032f
# Parent  7c7ace4999c15311f494d1ebaa4dbd3692408f2e
trau-hr-dump: add -s option for subset sync pattern match

With this option, trau-hr-dump can be used to decode TFO-HRv1
captures that contain embedded TFO messages.

diff -r 7c7ace4999c1 -r 13d47c9df28b trau-decode/trau-hr-dump.c
--- a/trau-decode/trau-hr-dump.c	Tue Mar 18 23:08:29 2025 +0000
+++ b/trau-decode/trau-hr-dump.c	Tue Mar 18 23:55:29 2025 +0000
@@ -17,7 +17,7 @@
 
 static uint8_t *filebuf;
 static unsigned total_size;
-static int include_raw;
+static int include_raw, sync_subset;
 
 static void
 read_ts_file(filename, subslot_arg)
@@ -82,11 +82,13 @@
 	}
 	if (!cand[8])
 		return 0;
-	if (cand[16])
+	if (cand[16] && !sync_subset)
 		return 0;
 	if (!cand[17])
 		return 0;
 	for (n = 3; n < 20; n++) {
+		if (sync_subset && (n & 1) == 0)
+			continue;
 		if (!cand[n * 8])
 			return 0;
 	}
@@ -156,14 +158,17 @@
 	extern int optind;
 	int c;
 
-	while ((c = getopt(argc, argv, "r")) != EOF) {
+	while ((c = getopt(argc, argv, "rs")) != EOF) {
 		switch (c) {
 		case 'r':
 			include_raw = 1;
 			continue;
+		case 's':
+			sync_subset = 1;
+			continue;
 		default:
 		usage:
-			fprintf(stderr, "usage: %s [-r] binfile subslot\n",
+			fprintf(stderr, "usage: %s [-r] [-s] binfile subslot\n",
 				argv[0]);
 			exit(1);
 		}