Date: Tue, 10 Jun 2008 22:41:51 +0200 (CEST) From: Ed Schouten <ed@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/124460: [Patch] math/calctool: make it use termios Message-ID: <20080610204151.8EAF11CCAD@palm.hoeg.nl> Resent-Message-ID: <200806102050.m5AKo1D8003800@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 124460 >Category: ports >Synopsis: [Patch] math/calctool: make it use termios >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Jun 10 20:50:01 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Ed Schouten >Release: FreeBSD 6.3-STABLE i386 >Organization: >Environment: System: FreeBSD palm.hoeg.nl 6.3-STABLE FreeBSD 6.3-STABLE #0: Wed Jun 4 08:56:01 CEST 2008 ed@palm.hoeg.nl:/usr/obj/usr/src/sys/PALM i386 >Description: The math/calctool port still makes use of the sgtty interface. This means it only works when one compiles a kernel with COMPAT_43TTY enabled. We'd better switch to termios. The following patch changes calctool to use termios instead of sgtty.h. >How-To-Repeat: >Fix: Remove files/patch-aa and save this patch as files/patch-tty.c: --- tty.c +++ tty.c @@ -1,5 +1,3 @@ -/*LINTLIBRARY*/ - /* @(#)tty.c 1.14 90/02/06 * * These are the dumb tty dependent graphics routines used by calctool. @@ -21,6 +19,7 @@ #include <sys/types.h> #include <sys/ioctl.h> #include <sys/time.h> +#include <termios.h> #include "calctool.h" #include "color.h" #include "extern.h" @@ -30,7 +29,7 @@ char *getenv(), *tgetstr(), *tgoto() ; int destroy_frame(), outc() ; -struct sgttyb in_new, in_old ; +struct termios in_new, in_old ; SIGRET @@ -90,7 +89,7 @@ } do_move(0, 0) ; SIGNAL(SIGINT, SIG_IGN) ; - IOCTL(0, TIOCSETP, &in_old) ; + tcsetattr(0, TCSANOW, &in_old) ; exit(0) ; } @@ -315,11 +314,14 @@ SIGNAL(SIGINT, cleanup) ; - IOCTL(0, TIOCGETP, &in_old) ; /* Setup standard input. */ + tcgetattr(0, &in_old) ; /* Setup standard input. */ in_new = in_old ; - in_new.sg_flags |= RAW ; - in_new.sg_flags &= ~(ECHO | CRMOD) ; - IOCTL(0, TIOCSETP, &in_new) ; + in_new.c_iflag |= IGNBRK; + in_new.c_iflag &= ~ICRNL; + in_new.c_lflag &= ~(ECHOCTL|ISIG|ICANON|IEXTEN); + in_new.c_oflag &= ~ONLCR; + in_new.c_lflag &= ~ECHO; + tcsetattr(0, TCSANOW, &in_new) ; setbuf(stdout, (char *) NULL) ; >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080610204151.8EAF11CCAD>