ports/156521: Omnitty does not work with "Sun Function-Keys" Xterm

David O'Brien obrien at FreeBSD.org
Wed Apr 20 17:40:08 UTC 2011


>Number:         156521
>Category:       ports
>Synopsis:       Omnitty does not work with "Sun Function-Keys" Xterm
>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:   Wed Apr 20 17:40:07 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     David O'Brien
>Release:        FreeBSD 9.0-CURRENT i386
>Organization:
The FreeBSD Project
>Environment:
System: FreeBSD dragon.NUXI.org 9.0-CURRENT FreeBSD 9.0-CURRENT #662 r218815:218845M: Tue Feb 22 00:13:31 PST 2011 rootk at dragon.NUXI.org:/sys/i386/compile/DRAGON i386

===================================================================
File: Makefile         	Status: Up-to-date
   Working file:	Makefile
   Working revision:	1.7	Sat Aug 22 12:43:22 2009
   Repository revision:	1.7	/home/ncvs/ports/net/omnitty/Makefile,v
===================================================================
File: patch-main.c     	Status: Up-to-date
   Working file:	files/patch-main.c
   Working revision:	1.1	Wed Feb 20 02:06:11 2008
   Repository revision:	1.1	/home/ncvs/ports/net/omnitty/files/patch-main.c,v
===================================================================

>Description:
	If one has "XTerm.sunFunctionKeys: True" in ~/.Xdefaults, then
	Omnitty will not recognize any function-key press.

>How-To-Repeat:
	Try it.
>Fix:

Updated patch-main.c:

--- main.c.orig	2005-10-25 15:08:25.000000000 -0700
+++ main.c	2011-04-20 09:21:32.000000000 -0700
@@ -89,6 +89,13 @@ void curses_init() {
    define_key("\e[18~", KEY_F(7)); define_key("\e[19~", KEY_F(8));
    define_key("\e[20~", KEY_F(9)); define_key("\e[21~", KEY_F(10));
 
+   /* If "Sun Function-Keys" is enabled in your Xterm: */
+   define_key("\e[224z", KEY_F(1)); define_key("\e[225z", KEY_F(2));
+   define_key("\e[226z", KEY_F(3)); define_key("\e[227z", KEY_F(4));
+   define_key("\e[228z", KEY_F(5)); define_key("\e[229z", KEY_F(6));
+   define_key("\e[230z", KEY_F(7)); define_key("\e[231z", KEY_F(8));
+   define_key("\e[232z", KEY_F(9)); define_key("\e[233z", KEY_F(10));
+
    getmaxyx(stdscr, h, w);
    if (h < MIN_REQUIRED_HEIGHT || w < MIN_REQUIRED_WIDTH) {
       endwin();
@@ -335,9 +342,10 @@ int main(int argc, char **argv) {
 
    while (!quit) {
       if (zombie_count) {
-         zombie_count--;
-         chldpid = wait(NULL);
-         machmgr_handle_death(chldpid);
+         if ((chldpid = waitpid(-1, NULL, WNOHANG)) > 0) {
+            zombie_count--;
+            machmgr_handle_death(chldpid);
+         }
       }
 
       machmgr_update();
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list