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