view libutil/alpha_decode.c @ 79:2a24e94400e8

fcsim1-program utility written
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 09 Apr 2021 03:25:40 +0000
parents 34bbb0585cab
children
line wrap: on
line source

/*
 * This module contains functions for decoding and displaying alpha fields
 * that exist in various SIM files.
 */

#include <sys/types.h>
#include <stdio.h>

static void
print_alpha_field_hex(data, nbytes, outf)
	u_char *data;
	unsigned nbytes;
	FILE *outf;
{
	u_char *dp, *endp;

	fputs("HEX ", outf);
	dp = data;
	endp = data + nbytes;
	while (dp < endp)
		fprintf(outf, "%02X", *dp++);
}

void
print_alpha_field(data, nbytes, outf)
	u_char *data;
	unsigned nbytes;
	FILE *outf;
{
	if (!nbytes) {
		fputs("\"\"", outf);
		return;
	}
	if (data[0] & 0x80)
		print_alpha_field_hex(data, nbytes, outf);
	else
		print_gsm7_string_to_file(data, nbytes, outf);
}