734 lines
25 KiB
Diff
734 lines
25 KiB
Diff
# ncurses 6.1 - patch 20191221 - Thomas E. Dickey
|
|
#
|
|
# ------------------------------------------------------------------------------
|
|
#
|
|
# Ncurses 6.1 is at
|
|
# ftp.gnu.org:/pub/gnu
|
|
#
|
|
# Patches for ncurses 6.1 can be found at
|
|
# ftp://ftp.invisible-island.net/ncurses/6.1
|
|
# http://invisible-mirror.net/archives/ncurses/6.1
|
|
#
|
|
# ------------------------------------------------------------------------------
|
|
# ftp://ftp.invisible-island.net/ncurses/6.1/ncurses-6.1-20191221.patch.gz
|
|
# patch by Thomas E. Dickey <dickey@invisible-island.net>
|
|
# created Sun Dec 22 03:20:49 UTC 2019
|
|
# ------------------------------------------------------------------------------
|
|
# Ada95/samples/Makefile.in | 5
|
|
# NEWS | 12 +
|
|
# VERSION | 2
|
|
# dist.mk | 4
|
|
# include/MKterm.h.awk.in | 6
|
|
# ncurses/base/keyok.c | 5
|
|
# ncurses/base/lib_color.c | 4
|
|
# package/debian-mingw/changelog | 4
|
|
# package/debian-mingw64/changelog | 4
|
|
# package/debian/changelog | 4
|
|
# package/mingw-ncurses.nsi | 4
|
|
# package/mingw-ncurses.spec | 2
|
|
# package/ncurses.spec | 2
|
|
# package/ncursest.spec | 2
|
|
# test/tracemunch | 400 ++++++++++++++++++++++++++++++++++---
|
|
# 15 files changed, 412 insertions(+), 48 deletions(-)
|
|
# ------------------------------------------------------------------------------
|
|
Index: Ada95/samples/Makefile.in
|
|
Prereq: 1.56
|
|
--- ncurses-6.1-20191214+/Ada95/samples/Makefile.in 2019-09-08 00:01:38.000000000 +0000
|
|
+++ ncurses-6.1-20191221/Ada95/samples/Makefile.in 2019-12-22 01:09:19.000000000 +0000
|
|
@@ -28,7 +28,7 @@
|
|
#
|
|
# Author: Juergen Pfeifer, 1996
|
|
#
|
|
-# $Id: Makefile.in,v 1.56 2019/09/08 00:01:38 tom Exp $
|
|
+# $Id: Makefile.in,v 1.57 2019/12/22 01:09:19 tom Exp $
|
|
#
|
|
.SUFFIXES:
|
|
|
|
@@ -82,6 +82,7 @@
|
|
LIBDIR = $(DESTDIR)$(libdir)
|
|
|
|
MY_DATADIR = $(DATADIR)/@ADA_LIBNAME@
|
|
+THIS_DATADIR = $(datadir)/@ADA_LIBNAME@
|
|
|
|
################################################################################
|
|
ada_srcdir = ../src
|
|
@@ -165,4 +166,4 @@
|
|
|
|
$(THISLIB)-explanation.adb : $(srcdir)/$(THISLIB)-explanation.adb_p
|
|
rm -f $@
|
|
- $(ADAPREP) -DTHIS_DATADIR=\"$(DATADIR)\" @GNATPREP_OPTS@ $(srcdir)/$(THISLIB)-explanation.adb_p $@
|
|
+ $(ADAPREP) -DTHIS_DATADIR=\"$(THIS_DATADIR)/\" @GNATPREP_OPTS@ $(srcdir)/$(THISLIB)-explanation.adb_p $@
|
|
Index: NEWS
|
|
Prereq: 1.3416
|
|
--- ncurses-6.1-20191214+/NEWS 2019-12-14 21:26:03.000000000 +0000
|
|
+++ ncurses-6.1-20191221/NEWS 2019-12-21 22:43:54.000000000 +0000
|
|
@@ -25,7 +25,7 @@
|
|
-- sale, use or other dealings in this Software without prior written --
|
|
-- authorization. --
|
|
-------------------------------------------------------------------------------
|
|
--- $Id: NEWS,v 1.3416 2019/12/14 21:26:03 tom Exp $
|
|
+-- $Id: NEWS,v 1.3420 2019/12/21 22:43:54 tom Exp $
|
|
-------------------------------------------------------------------------------
|
|
|
|
This is a log of changes that ncurses has gone through since Zeyd started
|
|
@@ -45,6 +45,16 @@
|
|
Changes through 1.9.9e did not credit all contributions;
|
|
it is not possible to add this information.
|
|
|
|
+20191221
|
|
+ + correct pathname used in Ada95 sample programs for explain.txt, to
|
|
+ work with test-packages.
|
|
+ + improve tracemunch:
|
|
+ + keep track of TERMINAL* values
|
|
+ + if tracing was first turned on after initialization, attempt to
|
|
+ show distinct screen, window and terminal names anyway.
|
|
+ + ensure that GCC_NORETURN is defined in term.h, because the prototype
|
|
+ for exit_terminfo() uses it (report by Werner Fink).
|
|
+
|
|
20191214
|
|
+ add exit_curses() and exit_terminfo() to replace internal symbols for
|
|
leak-checking.
|
|
Index: VERSION
|
|
--- ncurses-6.1-20191214+/VERSION 2019-12-14 17:50:13.000000000 +0000
|
|
+++ ncurses-6.1-20191221/VERSION 2019-12-21 11:16:12.000000000 +0000
|
|
@@ -1 +1 @@
|
|
-5:0:10 6.1 20191214
|
|
+5:0:10 6.1 20191221
|
|
Index: dist.mk
|
|
Prereq: 1.1319
|
|
--- ncurses-6.1-20191214+/dist.mk 2019-12-14 17:50:13.000000000 +0000
|
|
+++ ncurses-6.1-20191221/dist.mk 2019-12-21 11:16:12.000000000 +0000
|
|
@@ -25,7 +25,7 @@
|
|
# use or other dealings in this Software without prior written #
|
|
# authorization. #
|
|
##############################################################################
|
|
-# $Id: dist.mk,v 1.1319 2019/12/14 17:50:13 tom Exp $
|
|
+# $Id: dist.mk,v 1.1320 2019/12/21 11:16:12 tom Exp $
|
|
# Makefile for creating ncurses distributions.
|
|
#
|
|
# This only needs to be used directly as a makefile by developers, but
|
|
@@ -37,7 +37,7 @@
|
|
# These define the major/minor/patch versions of ncurses.
|
|
NCURSES_MAJOR = 6
|
|
NCURSES_MINOR = 1
|
|
-NCURSES_PATCH = 20191214
|
|
+NCURSES_PATCH = 20191221
|
|
|
|
# We don't append the patch to the version, since this only applies to releases
|
|
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
|
|
Index: include/MKterm.h.awk.in
|
|
Prereq: 1.72
|
|
--- ncurses-6.1-20191214+/include/MKterm.h.awk.in 2019-12-14 22:31:32.000000000 +0000
|
|
+++ ncurses-6.1-20191221/include/MKterm.h.awk.in 2019-12-21 18:29:09.000000000 +0000
|
|
@@ -59,7 +59,7 @@
|
|
print "/* and: Thomas E. Dickey 1995-on */"
|
|
print "/****************************************************************************/"
|
|
print ""
|
|
- print "/* $Id: MKterm.h.awk.in,v 1.72 2019/12/14 22:31:32 tom Exp $ */"
|
|
+ print "/* $Id: MKterm.h.awk.in,v 1.73 2019/12/21 18:29:09 tom Exp $ */"
|
|
print ""
|
|
print "/*"
|
|
print "** term.h -- Definition of struct term"
|
|
@@ -147,6 +147,10 @@
|
|
print "#define SET_TTY(fd, buf) stty(fd, buf)"
|
|
print "#endif"
|
|
print ""
|
|
+ print "#ifndef GCC_NORETURN"
|
|
+ print "#define GCC_NORETURN /* nothing */"
|
|
+ print "#endif"
|
|
+ print ""
|
|
print "#define NAMESIZE 256"
|
|
print ""
|
|
print "/* The cast works because TERMTYPE is the first data in TERMINAL */"
|
|
Index: ncurses/base/keyok.c
|
|
Prereq: 1.14
|
|
--- ncurses-6.1-20191214+/ncurses/base/keyok.c 2014-03-08 20:32:59.000000000 +0000
|
|
+++ ncurses-6.1-20191221/ncurses/base/keyok.c 2019-12-21 22:40:32.000000000 +0000
|
|
@@ -1,5 +1,5 @@
|
|
/****************************************************************************
|
|
- * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
|
|
+ * Copyright (c) 1998-2014,2019 Free Software Foundation, Inc. *
|
|
* *
|
|
* Permission is hereby granted, free of charge, to any person obtaining a *
|
|
* copy of this software and associated documentation files (the *
|
|
@@ -33,7 +33,7 @@
|
|
|
|
#include <curses.priv.h>
|
|
|
|
-MODULE_ID("$Id: keyok.c,v 1.14 2014/03/08 20:32:59 tom Exp $")
|
|
+MODULE_ID("$Id: keyok.c,v 1.15 2019/12/21 22:40:32 tom Exp $")
|
|
|
|
/*
|
|
* Enable (or disable) ncurses' interpretation of a keycode by adding (or
|
|
@@ -55,7 +55,6 @@
|
|
#ifdef USE_TERM_DRIVER
|
|
code = CallDriver_2(sp, td_kyOk, c, flag);
|
|
#else
|
|
- T((T_CALLED("keyok(%d,%d)"), c, flag));
|
|
if (c >= 0) {
|
|
int count = 0;
|
|
char *s;
|
|
Index: ncurses/base/lib_color.c
|
|
Prereq: 1.140
|
|
--- ncurses-6.1-20191214+/ncurses/base/lib_color.c 2019-01-21 01:55:18.000000000 +0000
|
|
+++ ncurses-6.1-20191221/ncurses/base/lib_color.c 2019-12-22 00:57:53.000000000 +0000
|
|
@@ -48,7 +48,7 @@
|
|
#define CUR SP_TERMTYPE
|
|
#endif
|
|
|
|
-MODULE_ID("$Id: lib_color.c,v 1.140 2019/01/21 01:55:18 tom Exp $")
|
|
+MODULE_ID("$Id: lib_color.c,v 1.142 2019/12/22 00:57:53 tom Exp $")
|
|
|
|
#ifdef USE_TERM_DRIVER
|
|
#define CanChange InfoOf(SP_PARM).canchange
|
|
@@ -803,7 +803,7 @@
|
|
int code = FALSE;
|
|
|
|
(void) SP_PARM;
|
|
- T((T_CALLED("has_colors()")));
|
|
+ T((T_CALLED("has_colors(%p)"), (void *) SP_PARM));
|
|
if (HasTerminal(SP_PARM)) {
|
|
#ifdef USE_TERM_DRIVER
|
|
code = HasColor;
|
|
Index: package/debian-mingw/changelog
|
|
--- ncurses-6.1-20191214+/package/debian-mingw/changelog 2019-12-14 17:50:13.000000000 +0000
|
|
+++ ncurses-6.1-20191221/package/debian-mingw/changelog 2019-12-21 11:16:12.000000000 +0000
|
|
@@ -1,8 +1,8 @@
|
|
-ncurses6 (6.1+20191214) unstable; urgency=low
|
|
+ncurses6 (6.1+20191221) unstable; urgency=low
|
|
|
|
* latest weekly patch
|
|
|
|
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 14 Dec 2019 12:50:13 -0500
|
|
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 21 Dec 2019 06:16:12 -0500
|
|
|
|
ncurses6 (5.9-20131005) unstable; urgency=low
|
|
|
|
Index: package/debian-mingw64/changelog
|
|
--- ncurses-6.1-20191214+/package/debian-mingw64/changelog 2019-12-14 17:50:13.000000000 +0000
|
|
+++ ncurses-6.1-20191221/package/debian-mingw64/changelog 2019-12-21 11:16:12.000000000 +0000
|
|
@@ -1,8 +1,8 @@
|
|
-ncurses6 (6.1+20191214) unstable; urgency=low
|
|
+ncurses6 (6.1+20191221) unstable; urgency=low
|
|
|
|
* latest weekly patch
|
|
|
|
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 14 Dec 2019 12:50:13 -0500
|
|
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 21 Dec 2019 06:16:12 -0500
|
|
|
|
ncurses6 (5.9-20131005) unstable; urgency=low
|
|
|
|
Index: package/debian/changelog
|
|
--- ncurses-6.1-20191214+/package/debian/changelog 2019-12-14 17:50:13.000000000 +0000
|
|
+++ ncurses-6.1-20191221/package/debian/changelog 2019-12-21 11:16:12.000000000 +0000
|
|
@@ -1,8 +1,8 @@
|
|
-ncurses6 (6.1+20191214) unstable; urgency=low
|
|
+ncurses6 (6.1+20191221) unstable; urgency=low
|
|
|
|
* latest weekly patch
|
|
|
|
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 14 Dec 2019 12:50:13 -0500
|
|
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 21 Dec 2019 06:16:12 -0500
|
|
|
|
ncurses6 (5.9-20120608) unstable; urgency=low
|
|
|
|
Index: package/mingw-ncurses.nsi
|
|
Prereq: 1.365
|
|
--- ncurses-6.1-20191214+/package/mingw-ncurses.nsi 2019-12-14 17:50:13.000000000 +0000
|
|
+++ ncurses-6.1-20191221/package/mingw-ncurses.nsi 2019-12-21 11:16:12.000000000 +0000
|
|
@@ -1,4 +1,4 @@
|
|
-; $Id: mingw-ncurses.nsi,v 1.365 2019/12/14 17:50:13 tom Exp $
|
|
+; $Id: mingw-ncurses.nsi,v 1.366 2019/12/21 11:16:12 tom Exp $
|
|
|
|
; TODO add examples
|
|
; TODO bump ABI to 6
|
|
@@ -10,7 +10,7 @@
|
|
!define VERSION_MAJOR "6"
|
|
!define VERSION_MINOR "1"
|
|
!define VERSION_YYYY "2019"
|
|
-!define VERSION_MMDD "1214"
|
|
+!define VERSION_MMDD "1221"
|
|
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
|
|
|
|
!define MY_ABI "5"
|
|
Index: package/mingw-ncurses.spec
|
|
--- ncurses-6.1-20191214+/package/mingw-ncurses.spec 2019-12-14 17:50:13.000000000 +0000
|
|
+++ ncurses-6.1-20191221/package/mingw-ncurses.spec 2019-12-21 11:16:12.000000000 +0000
|
|
@@ -3,7 +3,7 @@
|
|
Summary: shared libraries for terminal handling
|
|
Name: mingw32-ncurses6
|
|
Version: 6.1
|
|
-Release: 20191214
|
|
+Release: 20191221
|
|
License: X11
|
|
Group: Development/Libraries
|
|
Source: ncurses-%{version}-%{release}.tgz
|
|
Index: package/ncurses.spec
|
|
--- ncurses-6.1-20191214+/package/ncurses.spec 2019-12-14 17:50:13.000000000 +0000
|
|
+++ ncurses-6.1-20191221/package/ncurses.spec 2019-12-21 11:16:12.000000000 +0000
|
|
@@ -1,7 +1,7 @@
|
|
Summary: shared libraries for terminal handling
|
|
Name: ncurses6
|
|
Version: 6.1
|
|
-Release: 20191214
|
|
+Release: 20191221
|
|
License: X11
|
|
Group: Development/Libraries
|
|
Source: ncurses-%{version}-%{release}.tgz
|
|
Index: package/ncursest.spec
|
|
--- ncurses-6.1-20191214+/package/ncursest.spec 2019-12-14 17:50:13.000000000 +0000
|
|
+++ ncurses-6.1-20191221/package/ncursest.spec 2019-12-21 11:16:12.000000000 +0000
|
|
@@ -1,7 +1,7 @@
|
|
Summary: Curses library with POSIX thread support.
|
|
Name: ncursest6
|
|
Version: 6.1
|
|
-Release: 20191214
|
|
+Release: 20191221
|
|
License: X11
|
|
Group: Development/Libraries
|
|
Source: ncurses-%{version}-%{release}.tgz
|
|
Index: test/tracemunch
|
|
Prereq: 1.24
|
|
--- ncurses-6.1-20191214+/test/tracemunch 2018-12-29 22:20:06.000000000 +0000
|
|
+++ ncurses-6.1-20191221/test/tracemunch 2019-12-21 22:33:35.000000000 +0000
|
|
@@ -1,7 +1,7 @@
|
|
#!/usr/bin/env perl
|
|
-# $Id: tracemunch,v 1.24 2018/12/29 22:20:06 tom Exp $
|
|
+# $Id: tracemunch,v 1.26 2019/12/21 22:33:35 tom Exp $
|
|
##############################################################################
|
|
-# Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. #
|
|
+# Copyright (c) 1998-2018,2019 Free Software Foundation, Inc. #
|
|
# #
|
|
# Permission is hereby granted, free of charge, to any person obtaining a #
|
|
# copy of this software and associated documentation files (the "Software"), #
|
|
@@ -42,8 +42,305 @@
|
|
our $waddnstr =
|
|
'waddnstr\(0x([[:xdigit:]]+),"([^\"]+)",[0-9]+\) called \{A_NORMAL\}';
|
|
|
|
+# If the trace is complete, we can infer addresses using the return value from
|
|
+# newwin, etc. But if it is incomplete, we can still check for special cases
|
|
+# such as SCREEN* and WINDOW* parameters. In this table, the type for the
|
|
+# first parameter is encoded, relying upon an ncurses programming convention:
|
|
+# 1 = SCREEN*
|
|
+# 2 = WINDOW*
|
|
+# 4 = TERMINAL*
|
|
+our %known_p1 = qw(
|
|
+ TransformLine 1
|
|
+ _nc_freewin 2
|
|
+ _nc_initscr 1
|
|
+ _nc_makenew 1
|
|
+ _nc_mingw_console_read 1
|
|
+ _nc_reset_colors 1
|
|
+ _nc_scroll_optimize 1
|
|
+ _nc_tinfo 1
|
|
+ _nc_tinfo_mvcur 1
|
|
+ _nc_wgetch 2
|
|
+ adjust_window 2
|
|
+ assume_default_colors 1
|
|
+ attr_get 2
|
|
+ baudrate 1
|
|
+ beep 1
|
|
+ border_set 2
|
|
+ box 2
|
|
+ box_set 2
|
|
+ can_change_color 1
|
|
+ cbreak 1
|
|
+ clearok 2
|
|
+ color_content 1
|
|
+ copywin 2
|
|
+ curs_set 1
|
|
+ decrease_size 1
|
|
+ def_prog_mode 1
|
|
+ def_shell_mode 1
|
|
+ define_key 1
|
|
+ del_curterm 1
|
|
+ delay_output 1
|
|
+ delscreen 1
|
|
+ delwin 2
|
|
+ derwin 2
|
|
+ doupdate 1
|
|
+ dupwin 2
|
|
+ echo 1
|
|
+ endwin 1
|
|
+ erasechar 1
|
|
+ filter 1
|
|
+ flash 1
|
|
+ flushinp 1
|
|
+ getattrs 2
|
|
+ getbegx 2
|
|
+ getbegy 2
|
|
+ getbkgd 2
|
|
+ getcurx 2
|
|
+ getcury 2
|
|
+ getmaxx 2
|
|
+ getmaxy 2
|
|
+ getmouse 1
|
|
+ getparx 2
|
|
+ getpary 2
|
|
+ halfdelay 1
|
|
+ has_ic 1
|
|
+ has_il 1
|
|
+ has_key 1
|
|
+ idcok 2
|
|
+ idlok 2
|
|
+ immedok 2
|
|
+ increase_size 1
|
|
+ init_color 1
|
|
+ init_pair 1
|
|
+ intrflush 1
|
|
+ is_cleared 2
|
|
+ is_idcok 2
|
|
+ is_idlok 2
|
|
+ is_immedok 2
|
|
+ is_keypad 2
|
|
+ is_leaveok 2
|
|
+ is_linetouched 2
|
|
+ is_nodelay 2
|
|
+ is_notimeout 2
|
|
+ is_pad 2
|
|
+ is_scrollok 2
|
|
+ is_subwin 2
|
|
+ is_syncok 2
|
|
+ is_term_resized 1
|
|
+ is_wintouched 2
|
|
+ key_defined 1
|
|
+ keybound 1
|
|
+ keyok 1
|
|
+ keypad 2
|
|
+ killchar 1
|
|
+ leaveok 2
|
|
+ longname 1
|
|
+ meta 2
|
|
+ mouseinterval 1
|
|
+ mousemask 1
|
|
+ mvcur 1
|
|
+ mvderwin 2
|
|
+ mvwadd_wch 2
|
|
+ mvwadd_wchnstr 2
|
|
+ mvwadd_wchstr 2
|
|
+ mvwaddch 2
|
|
+ mvwaddchnstr 2
|
|
+ mvwaddchstr 2
|
|
+ mvwaddnstr 2
|
|
+ mvwaddnwstr 2
|
|
+ mvwaddstr 2
|
|
+ mvwaddwstr 2
|
|
+ mvwchgat 2
|
|
+ mvwdelch 2
|
|
+ mvwget_wch 2
|
|
+ mvwget_wstr 2
|
|
+ mvwgetch 2
|
|
+ mvwgetn_wstr 2
|
|
+ mvwgetnstr 2
|
|
+ mvwgetstr 2
|
|
+ mvwhline 2
|
|
+ mvwhline_set 2
|
|
+ mvwin 2
|
|
+ mvwin_wch 2
|
|
+ mvwin_wchnstr 2
|
|
+ mvwin_wchstr 2
|
|
+ mvwinch 2
|
|
+ mvwinchnstr 2
|
|
+ mvwinchstr 2
|
|
+ mvwins_nwstr 2
|
|
+ mvwins_wch 2
|
|
+ mvwins_wstr 2
|
|
+ mvwinsch 2
|
|
+ mvwinsnstr 2
|
|
+ mvwinsstr 2
|
|
+ mvwinstr 2
|
|
+ mvwinwstr 2
|
|
+ mvwvline 2
|
|
+ mvwvline_set 2
|
|
+ newpad 1
|
|
+ newterm 1
|
|
+ newwin 1
|
|
+ nl 1
|
|
+ nocbreak 1
|
|
+ nodelay 2
|
|
+ noecho 1
|
|
+ nofilter 1
|
|
+ nonl 1
|
|
+ noqiflush 1
|
|
+ noraw 1
|
|
+ notimeout 2
|
|
+ overlap 2
|
|
+ overlay 2
|
|
+ overwrite 2
|
|
+ pair_content 1
|
|
+ pecho_wchar 2
|
|
+ pechochar 2
|
|
+ pnoutrefresh 2
|
|
+ putwin 2
|
|
+ qiflush 1
|
|
+ raw 1
|
|
+ redrawwin 2
|
|
+ reset_prog_mode 1
|
|
+ reset_shell_mode 1
|
|
+ resetty 1
|
|
+ resize_term 1
|
|
+ resizeterm 1
|
|
+ restartterm 1
|
|
+ ripoffline 1
|
|
+ savetty 1
|
|
+ scr_init 1
|
|
+ scr_restore 1
|
|
+ scr_set 1
|
|
+ scroll 2
|
|
+ scrollok 2
|
|
+ set_curterm 4
|
|
+ set_term 1
|
|
+ slk_attr 1
|
|
+ slk_attr_set 1
|
|
+ slk_attroff 1
|
|
+ slk_attron 1
|
|
+ slk_attrset 1
|
|
+ slk_clear 1
|
|
+ slk_color 1
|
|
+ slk_init 1
|
|
+ slk_label 1
|
|
+ slk_noutrefresh 1
|
|
+ slk_refresh 1
|
|
+ slk_restore 1
|
|
+ slk_set 1
|
|
+ slk_touch 1
|
|
+ start_color 1
|
|
+ subwin 2
|
|
+ syncok 2
|
|
+ termattrs 1
|
|
+ termname 1
|
|
+ tgetflag 1
|
|
+ tgetnum 1
|
|
+ tigetflag 1
|
|
+ tigetnum 1
|
|
+ tigetstr 1
|
|
+ tinfo 1
|
|
+ touchline 2
|
|
+ touchwin 2
|
|
+ typeahead 1
|
|
+ unget_wch 1
|
|
+ ungetch 1
|
|
+ ungetmouse 1
|
|
+ untouchwin 2
|
|
+ use_default_colors 1
|
|
+ use_env 1
|
|
+ use_legacy_coding 1
|
|
+ use_screen 1
|
|
+ use_tioctl 1
|
|
+ use_window 2
|
|
+ vidattr 1
|
|
+ vidputs 1
|
|
+ vw_printw 2
|
|
+ vwprintw 2
|
|
+ wadd_wch 2
|
|
+ wadd_wchnstr 2
|
|
+ wadd_wchstr 2
|
|
+ waddch 2
|
|
+ waddchnstr 2
|
|
+ waddchstr 2
|
|
+ waddnstr 2
|
|
+ waddnwstr 2
|
|
+ waddstr 2
|
|
+ waddwstr 2
|
|
+ wattr_get 2
|
|
+ wattr_off 2
|
|
+ wattr_on 2
|
|
+ wattr_set 2
|
|
+ wattroff 2
|
|
+ wattron 2
|
|
+ wattrset 2
|
|
+ wbkgd 2
|
|
+ wbkgdset 2
|
|
+ wborder 2
|
|
+ wborder_set 2
|
|
+ wchgat 2
|
|
+ wclear 2
|
|
+ wclrtobot 2
|
|
+ wclrtoeol 2
|
|
+ wcolor_set 2
|
|
+ wcursyncup 2
|
|
+ wdelch 2
|
|
+ wdeleteln 2
|
|
+ wechochar 2
|
|
+ wenclose 2
|
|
+ werase 2
|
|
+ wget_wch 2
|
|
+ wget_wstr 2
|
|
+ wgetbkgrnd 2
|
|
+ wgetch 2
|
|
+ wgetch_events 2
|
|
+ wgetdelay 2
|
|
+ wgetn_wstr 2
|
|
+ wgetnstr 2
|
|
+ wgetparent 2
|
|
+ wgetscrreg 2
|
|
+ wgetstr 2
|
|
+ whline 2
|
|
+ whline_set 2
|
|
+ win_wch 2
|
|
+ win_wchnstr 2
|
|
+ win_wchstr 2
|
|
+ winch 2
|
|
+ winchnstr 2
|
|
+ winchstr 2
|
|
+ winnstr 2
|
|
+ winnwstr 2
|
|
+ wins_nwstr 2
|
|
+ wins_wch 2
|
|
+ wins_wstr 2
|
|
+ winsch 2
|
|
+ winsdelln 2
|
|
+ winsertln 2
|
|
+ winsnstr 2
|
|
+ winsstr 2
|
|
+ winstr 2
|
|
+ winwstr 2
|
|
+ wmouse_trafo 2
|
|
+ wmove 2
|
|
+ wnoutrefresh 2
|
|
+ wprintw 2
|
|
+ wredrawln 2
|
|
+ wrefresh 2
|
|
+ wresize 2
|
|
+ wscrl 2
|
|
+ wsetscrreg 2
|
|
+ wstandend 2
|
|
+ wstandout 2
|
|
+ wsyncdown 2
|
|
+ wsyncup 2
|
|
+ wtimeout 2
|
|
+ wtouchln 2
|
|
+ wvline 2
|
|
+);
|
|
+
|
|
our $scr_nums = 0;
|
|
our $thr_nums = 0;
|
|
+our $trm_nums = 0;
|
|
our $try_nums = 0;
|
|
our $win_nums = 0;
|
|
our $curscr = "";
|
|
@@ -51,40 +348,90 @@
|
|
our $stdscr = "";
|
|
our %scr_addr;
|
|
our %thr_addr;
|
|
+our %trm_addr;
|
|
our %try_addr;
|
|
our %win_addr;
|
|
|
|
-sub transaddr {
|
|
+sub has_addr($) {
|
|
+ my $value = shift;
|
|
+ my $result = 0;
|
|
+ $result = 1 if ( $value =~ /\b0x[[:xdigit:]]+\b/i );
|
|
+ return $result;
|
|
+}
|
|
+
|
|
+sub transaddr($) {
|
|
+ my $arg = shift;
|
|
my $n;
|
|
- my $arg = $_[0];
|
|
|
|
$arg =~ s/\b$curscr\b/curscr/g if ($curscr);
|
|
$arg =~ s/\b$newscr\b/newscr/g if ($newscr);
|
|
$arg =~ s/\b$stdscr\b/stdscr/g if ($stdscr);
|
|
- foreach my $addr ( keys %scr_addr ) {
|
|
- $n = $scr_addr{$addr};
|
|
- $arg =~ s/\b$addr\b/screen$n/g if ( defined $n );
|
|
- }
|
|
- foreach my $addr ( keys %thr_addr ) {
|
|
- $n = $thr_addr{$addr};
|
|
- $arg =~ s/\b$addr\b/thread$n/g if ( defined $n );
|
|
- }
|
|
- foreach my $addr ( keys %try_addr ) {
|
|
- $n = $try_addr{$addr};
|
|
- $arg =~ s/\b$addr\b/tries_$n/g if ( defined $n );
|
|
- }
|
|
- foreach my $addr ( keys %win_addr ) {
|
|
- $n = $win_addr{$addr};
|
|
- $arg =~ s/\b$addr\b/window$n/g if ( defined $n );
|
|
+ if ( &has_addr($arg) ) {
|
|
+ foreach my $addr ( keys %scr_addr ) {
|
|
+ $n = $scr_addr{$addr};
|
|
+ $arg =~ s/\b$addr\b/screen$n/g if ( defined $n );
|
|
+ }
|
|
+ }
|
|
+ if ( &has_addr($arg) ) {
|
|
+ foreach my $addr ( keys %thr_addr ) {
|
|
+ $n = $thr_addr{$addr};
|
|
+ $arg =~ s/\b$addr\b/thread$n/g if ( defined $n );
|
|
+ }
|
|
+ }
|
|
+ if ( &has_addr($arg) ) {
|
|
+ foreach my $addr ( keys %trm_addr ) {
|
|
+ $n = $trm_addr{$addr};
|
|
+ $arg =~ s/\b$addr\b/terminal$n/g if ( defined $n );
|
|
+ }
|
|
}
|
|
- if ( $arg =~ /add_wch\((window\d+,)?0x[[:xdigit:]]+\)/i ) {
|
|
- $arg =~ s/(0x[[:xdigit:]]+)[)]/\&wch)/i;
|
|
+ if ( &has_addr($arg) ) {
|
|
+ foreach my $addr ( keys %try_addr ) {
|
|
+ $n = $try_addr{$addr};
|
|
+ $arg =~ s/\b$addr\b/tries_$n/g if ( defined $n );
|
|
+ }
|
|
}
|
|
- elsif ( $arg =~ /color_content\((screen\d+,)?\d+(,0x[[:xdigit:]]+){3}/i ) {
|
|
- $arg =~ s/(,0x[[:xdigit:]]+){3}[)]/,\&r,\&g,\&b)/i;
|
|
+ if ( &has_addr($arg) ) {
|
|
+ foreach my $addr ( keys %win_addr ) {
|
|
+ $n = $win_addr{$addr};
|
|
+ $arg =~ s/\b$addr\b/window$n/g if ( defined $n );
|
|
+ }
|
|
}
|
|
- elsif ( $arg =~ /pair_content\((screen\d+,)?\d+(,0x[[:xdigit:]]+){2}/i ) {
|
|
- $arg =~ s/(,0x[[:xdigit:]]+){2}[)]/,\&fg,\&bg)/i;
|
|
+ if ( &has_addr($arg) ) {
|
|
+ if ( $arg =~ /add_wch\((window\d+,)?0x[[:xdigit:]]+\)/i ) {
|
|
+ $arg =~ s/(0x[[:xdigit:]]+)[)]/\&wch)/i;
|
|
+ }
|
|
+ elsif (
|
|
+ $arg =~ /color_content\((screen\d+,)?\d+(,0x[[:xdigit:]]+){3}/i )
|
|
+ {
|
|
+ $arg =~ s/(,0x[[:xdigit:]]+){3}[)]/,\&r,\&g,\&b)/i;
|
|
+ }
|
|
+ elsif ( $arg =~ /pair_content\((screen\d+,)?\d+(,0x[[:xdigit:]]+){2}/i )
|
|
+ {
|
|
+ $arg =~ s/(,0x[[:xdigit:]]+){2}[)]/,\&fg,\&bg)/i;
|
|
+ }
|
|
+ }
|
|
+ if ( &has_addr($arg) and $arg =~ /called\s+\{/ ) {
|
|
+ my $func = $arg;
|
|
+ chomp $func;
|
|
+ $func =~ s/^.*called\s+\{([[:alnum:]_]+)\(.*$/$1/;
|
|
+ if ( defined $known_p1{$func} ) {
|
|
+ my $addr = $arg;
|
|
+ my $type = $known_p1{$func};
|
|
+ chomp $addr;
|
|
+ $addr =~ s/^[^(]+\((0x[[:xdigit:]]+).*/$1/i;
|
|
+ if ( $type == 1 ) {
|
|
+ $scr_addr{$addr} = ++$scr_nums;
|
|
+ $arg = &transaddr($arg);
|
|
+ }
|
|
+ elsif ( $type == 2 ) {
|
|
+ $win_addr{$addr} = ++$win_nums;
|
|
+ $arg = &transaddr($arg);
|
|
+ }
|
|
+ elsif ( $type == 4 ) {
|
|
+ $trm_addr{$addr} = ++$trm_nums;
|
|
+ $arg = &transaddr($arg);
|
|
+ }
|
|
+ }
|
|
}
|
|
|
|
return $arg;
|
|
@@ -132,6 +479,9 @@
|
|
}
|
|
$awaiting = "";
|
|
}
|
|
+ elsif ( $_ =~ /^(\+ )*called \{set_curterm\((0x[[:xdigit:]]+)\)/ ) {
|
|
+ $trm_addr{$2} = ++$trm_nums unless defined $trm_addr{$2};
|
|
+ }
|
|
elsif ( $_ =~ /^(\+ )*called \{_nc_add_to_try\((0x[[:xdigit:]]+),/ )
|
|
{
|
|
$try_addr{$2} = ++$try_nums unless defined $try_addr{$2};
|