sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit bf17657544109faf6a55cdaeae47c3a84022cdaf
parent eafe2b6526eca774046a709aef14197ccd331c7e
Author: sin <sin@2f30.org>
Date:   Mon,  7 Oct 2013 16:15:06 +0100

Remove chvt(1) from sbase as it is not portable

chvt(1) has been moved to ubase.

Diffstat:
MMakefile | 1-
Dchvt.1 | 11-----------
Dchvt.c | 61-------------------------------------------------------------
3 files changed, 0 insertions(+), 73 deletions(-)

diff --git a/Makefile b/Makefile @@ -32,7 +32,6 @@ SRC = \ chmod.c \ chown.c \ chroot.c \ - chvt.c \ cksum.c \ cmp.c \ comm.c \ diff --git a/chvt.1 b/chvt.1 @@ -1,11 +0,0 @@ -.TH CHVT 1 sbase\-VERSION -.SH NAME -chvt \- change foreground virtual terminal -.SH SYNOPSIS -.B chvt -.I N -.SH DESCRIPTION -.B chvt -brings /dev/ttyN to the foreground. This has the -same effect as Ctrl-Alt-FN. - diff --git a/chvt.c b/chvt.c @@ -1,61 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <fcntl.h> -#include <sys/types.h> -#include <sys/ioctl.h> -#include "util.h" - -enum { - /* from <linux/vt.h> */ - VT_ACTIVATE = 0x5606, - VT_WAITACTIVE = 0x5607, - /* from <linux/kd.h> */ - KDGKBTYPE = 0x4B33 -}; - -char *vts[] = { - "/proc/self/fd/0", - "/dev/console", - "/dev/tty", - "/dev/tty0", -}; - -static void -usage(void) -{ - eprintf("usage: chvt N\n"); -} - -int -main(int argc, char **argv) -{ - int n, i, fd; - char c; - - if(argc!=2 || strspn(argv[1], "1234567890") != strlen(argv[1])) - usage(); - - n = atoi(argv[1]); - for(i = 0; i < LEN(vts); i++) { - fd = open(vts[i], O_RDONLY); - if(fd < 1) - continue; - c = 0; - if(ioctl(fd, KDGKBTYPE, &c) == 0) - goto VTfound; - close(fd); - } - - eprintf("chvt: couldn't find a console.\n"); -VTfound: - if(ioctl(fd, VT_ACTIVATE, n) == -1) - eprintf("chvt: VT_ACTIVATE '%d':", n); - if(ioctl(fd, VT_WAITACTIVE, n) == -1) - eprintf("chvt: VT_WAITACTIVE '%d':", n); - close(fd); - - return 0; -} -