diff simtool/pbdump.c @ 9:dc565e91069d

pb-dump meaty function factored out into libcommon
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 12 Feb 2021 00:28:06 +0000
parents 4a9bf783491d
children 72a24b8538eb
line wrap: on
line diff
--- a/simtool/pbdump.c	Fri Feb 12 00:07:24 2021 +0000
+++ b/simtool/pbdump.c	Fri Feb 12 00:28:06 2021 +0000
@@ -1,65 +1,12 @@
 /*
- * This module implements the pb-dump command.
+ * This module implements pb-dump and pb-dump-rec commands.
  */
 
 #include <sys/types.h>
-#include <string.h>
-#include <strings.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include "simresp.h"
 #include "curfile.h"
 
-static
-check_blank_area(dp, endp)
-	u_char *dp, *endp;
-{
-	while (dp < endp)
-		if (*dp++ != 0xFF)
-			return(-1);
-	return(0);
-}
-
-static void
-dump_record(recno, outf)
-	unsigned recno;
-	FILE *outf;
-{
-	int rc;
-	unsigned textlen;
-	u_char *fixp;
-	char digits[21];
-
-	fprintf(outf, "#%u: ", recno);
-	if (curfile_record_len > 14) {
-		rc = validate_alpha_field(sim_resp_data,
-					  curfile_record_len - 14,
-					  &textlen);
-		if (rc < 0) {
-malformed:		fprintf(outf, "malformed record\n");
-			return;
-		}
-	} else
-		textlen = 0;
-	fixp = sim_resp_data + sim_resp_data_len - 14;
-	if (fixp[0] < 2 || fixp[0] > 11)
-		goto malformed;
-	rc = decode_phone_number(fixp + 2, fixp[0] - 1, digits);
-	if (rc < 0)
-		goto malformed;
-	rc = check_blank_area(fixp + 1 + fixp[0], fixp + 12);
-	if (rc < 0)
-		goto malformed;
-	/* all checks passed */
-	fprintf(outf, "%s,0x%02X ", digits, fixp[1]);
-	if (fixp[12] != 0xFF)
-		fprintf(outf, "CCP=%u ", fixp[12]);
-	if (fixp[13] != 0xFF)
-		fprintf(outf, "EXT=%u ", fixp[13]);
-	print_alpha_field(sim_resp_data, textlen, outf);
-	putc('\n', outf);
-}
-
 cmd_pb_dump(argc, argv)
 	char **argv;
 {
@@ -87,7 +34,7 @@
 		}
 		if (check_simresp_all_blank())
 			continue;
-		dump_record(recno, outf);
+		dump_phonebook_record(recno, outf);
 	}
 	if (argv[2])
 		fclose(outf);
@@ -129,7 +76,7 @@
 			return(rc);
 		if (check_simresp_all_blank())
 			continue;
-		dump_record(recno, stdout);
+		dump_phonebook_record(recno, stdout);
 	}
 	return(0);
 }