Example #1
0
void
loadnewmap(int fd, char *mfil) {
	unsigned short ubuf[E_TABSZ];
	char buf[E_TABSZ];
	int i, u;

	/* default: trivial straight-to-font */
	for (i=0; i<E_TABSZ; i++) {
		buf[i] = i;
		ubuf[i] = (0xf000 + i);
	}

	u = 0;
	if (mfil)
		u = readnewmapfromfile(fd, mfil, buf, ubuf);

	/* do we need to use loaduniscrnmap() ? */
	if (u) {
		/* yes */
		if (loaduniscrnmap(fd, ubuf))
			exit(1);
	} else {
		/* no */
		if (loadscrnmap(fd,buf))
			exit(1);
	}
}
Example #2
0
leave(int n)
{
	if (have_obuf && loaduniscrnmap(fd, obuf)) {
		kbd_warning(0, _("failed to restore original translation table\n"));
		n = EXIT_FAILURE;
	}
	if (have_ounimap && loadunimap(fd, NULL, &ounimap)) {
		kbd_warning(0, _("failed to restore original unimap\n"));
		n = EXIT_FAILURE;
	}
	exit(n);
}
Example #3
0
static void
settrivialscreenmap(void)
{
	unsigned short i;

	if (getuniscrnmap(fd, obuf))
		exit(1);
	have_obuf = 1;

	for (i = 0; i < E_TABSZ; i++)
		nbuf[i] = i;

	if (loaduniscrnmap(fd, nbuf)) {
		kbd_error(EXIT_FAILURE, 0, _("cannot change translation table\n"));
	}
}