view libutil/alpha_decode.c @ 8:34bbb0585cab

libutil: import from previous fc-pcsc-tools version
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 14 Mar 2021 05:42:37 +0000
parents
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);
}