Date: Fri, 28 Dec 2007 14:47:29 +0100 (CET) From: Ed Schouten <ed@fxq.nl> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/119100: [Patch] lang/logo: switch from sgtty to termios Message-ID: <20071228134729.8BAF01CCD9@palm.hoeg.nl> Resent-Message-ID: <200712281350.lBSDo1qX093696@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 119100 >Category: ports >Synopsis: [Patch] lang/logo: switch from sgtty to termios >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Dec 28 13:50:00 UTC 2007 >Closed-Date: >Last-Modified: >Originator: Ed Schouten >Release: FreeBSD 6.3-PRERELEASE i386 >Organization: >Environment: System: FreeBSD palm.hoeg.nl 6.3-PRERELEASE FreeBSD 6.3-PRERELEASE #0: Wed Dec 19 16:07:46 CET 2007 ed@palm.hoeg.nl:/usr/obj/usr/src/sys/PALM i386 >Description: The lang/logo port makes use of the sgtty interface. We'd better let it use the termios interface, because the first one will not work on systems where COMPAT_43TTY is not present in the kernel. Because ucblogo also has termio code, it isn't hard to port it to termios. >How-To-Repeat: >Fix: The following patch extends the existing patch to term.c to use the existing termio code, ported to termios. Please notice that even though the port will now use termios, it will still give warnings during compilation about sgtty. Those warnings don't matter, because they include sgtty.h in almost every file, only if it exists (autoconf). --- lang/logo/files/patch-term.c 2007-12-04 18:58:23.000000000 +0100 +++ lang/logo/files/patch-term.c 2007-12-28 14:45:01.000000000 +0100 @@ -1,5 +1,27 @@ --- term.c.orig 2007-12-04 15:42:55.000000000 +0300 +++ term.c 2007-12-04 15:43:04.000000000 +0300 +@@ -30,8 +30,8 @@ + #include <console.h> + #endif + +-#ifdef HAVE_TERMIO_H +-#include <termio.h> ++#if 1 ++#include <termios.h> + #else + #ifdef HAVE_SGTTY_H + #include <sgtty.h> +@@ -71,8 +71,8 @@ + char so_arr[40]; + char se_arr[40]; + +-#ifdef HAVE_TERMIO_H +-struct termio tty_cooked, tty_cbreak; ++#if 1 ++struct termios tty_cooked, tty_cbreak; + #else + #ifdef HAVE_SGTTY_H + struct sgttyb tty_cooked, tty_cbreak; @@ -85,7 +85,7 @@ char *termcap_ptr; @@ -9,3 +31,36 @@ *termcap_ptr++ = ch; return 0; } +@@ -125,8 +125,8 @@ + #endif /* WIN32 */ + #else + if (interactive) { +-#ifdef HAVE_TERMIO_H +- ioctl(0,TCGETA,(char *)(&tty_cooked)); ++#if 1 ++ tcgetattr(0, &tty_cooked); + tty_cbreak = tty_cooked; + tty_cbreak.c_cc[VMIN] = '\01'; + tty_cbreak.c_cc[VTIME] = '\0'; +@@ -181,8 +181,8 @@ + void charmode_on() { + #ifdef unix + if ((readstream == stdin) && interactive && !tty_charmode) { +-#ifdef HAVE_TERMIO_H +- ioctl(0,TCSETA,(char *)(&tty_cbreak)); ++#if 1 ++ tcsetattr(0, TCSANOW, &tty_cbreak); + #else /* !HAVE_TERMIO_H */ + ioctl(0,TIOCSETP,(char *)(&tty_cbreak)); + #endif /* HAVE_TERMIO_H */ +@@ -197,8 +197,8 @@ + void charmode_off() { + #ifdef unix + if (tty_charmode) { +-#ifdef HAVE_TERMIO_H +- ioctl(0,TCSETA,(char *)(&tty_cooked)); ++#if 1 ++ tcsetattr(0, TCSANOW, &tty_cooked); + #else /* !HAVE_TERMIO_H */ + ioctl(0,TIOCSETP,(char *)(&tty_cooked)); + #endif /* HAVE_TERMIO_H */ >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071228134729.8BAF01CCD9>