view libcommon/exit.c @ 53:fbedb67d234f

serial: fix parity for inverse coding convention Important note: it is my (Mother Mychaela's) understanding that SIM cards with inverse coding convention are extremely rare, and I have never seen such a card. Therefore, our support for the inverse coding convention will likely remain forever untested.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 21 Mar 2021 20:46:09 +0000
parents c9ef9e91dd8e
children 812779459ddd
line wrap: on
line source

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>

extern unsigned calypso_fd;
extern FILE *cpipeF;

good_exit()
{
	if (calypso_fd) {
		fputs("poweroff\n", cpipeF);
		fflush(cpipeF);
	}
	exit(0);
}

cmd_exit(argc, argv)
	char **argv;
{
	if (argc < 2)
		good_exit();
	if (!calypso_fd) {
		fprintf(stderr,
	"error: exit arguments are only meaningful with Calypso back end\n");
		return(-1);
	}
	if (!strcmp(argv[1], "bare"))
		exit(0);
	if (!strcmp(argv[1], "iota-off")) {
		fputs("poweroff\n", cpipeF);
		fflush(cpipeF);
		exit(0);
	}
	fprintf(stderr, "error: \"%s\" is not an understood exit mode\n",
		argv[1]);
	return(-1);
}