forked from pool/ncurses
This commit is contained in:
parent
a3921eb265
commit
3d4c11d216
60
README.devel
60
README.devel
@ -3,33 +3,65 @@
|
||||
|
||||
There are several Ncurses Libraries which can be used for building
|
||||
with an terminal based application. The standard Ncurses Libraries
|
||||
is given with
|
||||
is given with ABI 5.6
|
||||
|
||||
/usr/lib/libncurses.so or /usr/lib64/libncurses.so
|
||||
/usr/lib/libform.so or /usr/lib64/libform.so
|
||||
/usr/lib/libmenu.so or /usr/lib64/libmenu.so
|
||||
/usr/lib/libpanel.so or /usr/lib64/libpanel.so
|
||||
/usr/lib/libncurses.so or /usr/lib64/libncurses.so
|
||||
/usr/lib/libform.so or /usr/lib64/libform.so
|
||||
/usr/lib/libmenu.so or /usr/lib64/libmenu.so
|
||||
/usr/lib/libpanel.so or /usr/lib64/libpanel.so
|
||||
|
||||
and its header are installed in /usr/include/ e.g. (n)curses.h.
|
||||
Nothing has to be added in the CFLAGS nor in the LDFLAGS.
|
||||
Use the outout of
|
||||
|
||||
ncurses5-config --cflags for CFLAGS
|
||||
ncurses5-config --libs for LDFLAGS
|
||||
ncurses5-config --cflags for CFLAGS
|
||||
ncurses5-config --libs for LDFLAGS
|
||||
|
||||
For a version with wide character support please use the
|
||||
libraries
|
||||
libraries with old ABI 5.6
|
||||
|
||||
/usr/lib/libncursesw.so or /usr/lib64/libncursesw.so
|
||||
/usr/lib/libformw.so or /usr/lib64/libformw.so
|
||||
/usr/lib/libmenuw.so or /usr/lib64/libmenuw.so
|
||||
/usr/lib/libpanelw.so or /usr/lib64/libpanelw.so
|
||||
/usr/lib/libncursesw.so or /usr/lib64/libncursesw.so
|
||||
/usr/lib/libformw.so or /usr/lib64/libformw.so
|
||||
/usr/lib/libmenuw.so or /usr/lib64/libmenuw.so
|
||||
/usr/lib/libpanelw.so or /usr/lib64/libpanelw.so
|
||||
|
||||
together with the header files found at /usr/include/ncursesw/.
|
||||
This can be done with `-I/usr/include/ncursesw' within the
|
||||
CFLAGS and e.g. `-lncursesw' in the LDFLAGS.
|
||||
Use the outout of
|
||||
|
||||
ncursesw5-config --cflags for CFLAGS
|
||||
ncursesw5-config --libs for LDFLAGS
|
||||
ncursesw5-config --cflags for CFLAGS
|
||||
ncursesw5-config --libs for LDFLAGS
|
||||
|
||||
For a thread safe version (also known as `reentrant' please
|
||||
use the libraries with ABI 6.0
|
||||
|
||||
/usr/lib/ncurses6/libncurses.so or /usr/lib64/ncurses6/libncurses.so
|
||||
/usr/lib/ncurses6/libform.so or /usr/lib64/ncurses6/libform.so
|
||||
/usr/lib/ncurses6/libmenu.so or /usr/lib64/ncurses6/libmenu.so
|
||||
/usr/lib/ncurses6/libpanel.so or /usr/lib64/ncurses6/libpanel.so
|
||||
|
||||
together with the header files found at /usr/include/ncursest/.
|
||||
This can be done with `-I/usr/include/ncursest' within the
|
||||
CFLAGS and e.g. `-lncursest' in the LDFLAGS.
|
||||
Use the outout of
|
||||
|
||||
ncurses6-config --cflags for CFLAGS
|
||||
ncurses6-config --libs for LDFLAGS
|
||||
|
||||
For a version with both wide character support and thread safe
|
||||
please use the libraries with ABI 6.0
|
||||
|
||||
/usr/lib/ncurses6/libncursesw.so or /usr/lib64/ncurses6/libncursesw.so
|
||||
/usr/lib/ncurses6/libformw.so or /usr/lib64/ncurses6/libformw.so
|
||||
/usr/lib/ncurses6/libmenuw.so or /usr/lib64/ncurses6/libmenuw.so
|
||||
/usr/lib/ncurses6/libpanetw.so or /usr/lib64/ncurses6/libpanelw.so
|
||||
|
||||
together with the header files found at /usr/include/ncursestw/.
|
||||
This can be done with `-I/usr/include/ncursestw' within the
|
||||
CFLAGS and e.g. `-lncursestw' in the LDFLAGS.
|
||||
Use the outout of
|
||||
|
||||
ncursesw6-config --cflags for CFLAGS
|
||||
ncursesw6-config --libs for LDFLAGS
|
||||
|
||||
|
@ -2,6 +2,10 @@ libncurses5
|
||||
targettype x86 provides "baselibs-x86:<prefix>/lib/libncurses.so.5"
|
||||
provides "ncurses-<targettype> = <version>"
|
||||
obsoletes "ncurses-<targettype> <= <version>"
|
||||
libncurses6
|
||||
targettype x86 provides "baselibs-x86:<prefix>/lib/libncurses.so.6"
|
||||
provides "ncurses-<targettype> = 6.0"
|
||||
ncurses-devel
|
||||
requires -ncurses-<targettype>
|
||||
requires "libncurses5-<targettype> = <version>"
|
||||
requires "libncurses6-<targettype> = 6.0"
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:322cb2dbbd37327df2e2cd90325d06c862f598a01ffcb0c72a2992d939775966
|
||||
size 153357
|
3
ncurses-5.6-20080804-patch.tar.bz2
Normal file
3
ncurses-5.6-20080804-patch.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:bf49c5db276114b8158ac969b51ae2d6e80c9e2bddc4bf6a4d28db929ac3a46c
|
||||
size 507144
|
@ -1,519 +0,0 @@
|
||||
--- NEWS
|
||||
+++ NEWS 2007-04-07 18:55:45.000000000 +0200
|
||||
@@ -103,6 +103,36 @@ it is not possible to add this informati
|
||||
+ modify shared-library rules to allow FreeBSD 3.x to use rpath.
|
||||
+ update config.guess, config.sub
|
||||
|
||||
+20060407
|
||||
+ > other fixes prompted by inspection for Coverity report:
|
||||
+ + modify ifdef's for c++ binding to use try/catch/throw statements
|
||||
+ + add a null-pointer check in tack/ansi.c request_cfss()
|
||||
+ + fix a memory leak in ncurses/base/wresize.c
|
||||
+ + corrected check for valid memu/meml capabilities in
|
||||
+ progs/dump_entry.c when handling V_HPUX case.
|
||||
+ > fixes based on Coverity report:
|
||||
+ + remove dead code in test/bs.c
|
||||
+ + remove dead code in test/demo_defkey.c
|
||||
+ + remove an unused assignment in progs/infocmp.c
|
||||
+ + fix a limit check in tack/ansi.c tools_charset()
|
||||
+ + fix tack/ansi.c tools_status() to perform the VT320/VT420
|
||||
+ tests in request_cfss(). The function had exited too soon.
|
||||
+ + fix a memory leak in tic.c's make_namelist()
|
||||
+ + fix a couple of places in tack/output.c which did not check for EOF.
|
||||
+ + fix a loop-condition in test/bs.c
|
||||
+ + add index checks in lib_color.c for color palettes
|
||||
+ + add index checks in progs/dump_entry.c for version_filter() handling
|
||||
+ of V_BSD case.
|
||||
+ + fix a possible null-pointer dereference in copywin()
|
||||
+ + fix a possible null-pointer dereference in waddchnstr()
|
||||
+ + add a null-pointer check in _nc_expand_try()
|
||||
+ + add a null-pointer check in tic.c's make_namelist()
|
||||
+ + add a null-pointer check in _nc_expand_try()
|
||||
+ + add null-pointer checks in test/cardfile.c
|
||||
+ + fix a double-free in ncurses/tinfo/trim_sgr0.c
|
||||
+ + fix a double-free in ncurses/base/wresize.c
|
||||
+ + add try/catch block to c++/cursesmain.cc
|
||||
+
|
||||
20061217 5.6 release for upload to ftp.gnu.org
|
||||
|
||||
20061217
|
||||
--- configure
|
||||
+++ configure 2007-04-07 00:54:52.000000000 +0200
|
||||
@@ -13892,7 +13892,7 @@ ac_link='$CXX -o conftest$ac_exeext $CXX
|
||||
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||
ac_main_return=return
|
||||
|
||||
-for ac_header in typeinfo
|
||||
+for ac_header in iostream typeinfo
|
||||
do
|
||||
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||
echo "$as_me:13893: checking for $ac_header" >&5
|
||||
--- configure.in
|
||||
+++ configure.in 2007-04-07 00:53:21.000000000 +0200
|
||||
@@ -1210,7 +1210,7 @@ if test -n "$CXX" ; then
|
||||
;;
|
||||
esac
|
||||
|
||||
- AC_CHECK_HEADERS(typeinfo)
|
||||
+ AC_CHECK_HEADERS(iostream typeinfo)
|
||||
|
||||
CF_BOOL_DECL
|
||||
CF_BOOL_SIZE
|
||||
--- c++/cursesmain.cc
|
||||
+++ c++/cursesmain.cc 2008-04-09 17:57:56.093616466 +0200
|
||||
@@ -34,6 +34,13 @@
|
||||
#include "internal.h"
|
||||
#include "cursesapp.h"
|
||||
|
||||
+#if CPP_HAS_TRY_CATCH && HAVE_IOSTREAM
|
||||
+#include <iostream>
|
||||
+#else
|
||||
+#undef CPP_HAS_TRY_CATCH
|
||||
+#define CPP_HAS_TRY_CATCH 0
|
||||
+#endif
|
||||
+
|
||||
MODULE_ID("$Id: cursesmain.cc,v 1.13 2007/01/27 20:29:27 tom Exp $")
|
||||
|
||||
#if HAVE_LOCALE_H
|
||||
@@ -62,8 +69,20 @@ int main(int argc, char* argv[])
|
||||
|
||||
A->handleArgs(argc,argv);
|
||||
::endwin();
|
||||
+#if CPP_HAS_TRY_CATCH
|
||||
+ try {
|
||||
+ res = (*A)();
|
||||
+ ::endwin();
|
||||
+ }
|
||||
+ catch(const NCursesException &e) {
|
||||
+ ::endwin();
|
||||
+ std::cerr << e.message << std::endl;
|
||||
+ res = e.errorno;
|
||||
+ }
|
||||
+#else
|
||||
res = (*A)();
|
||||
::endwin();
|
||||
+#endif
|
||||
#if NO_LEAKS
|
||||
delete A;
|
||||
_nc_free_and_exit(res);
|
||||
--- c++/cursesp.h
|
||||
+++ c++/cursesp.h 2007-04-07 02:47:22.000000000 +0200
|
||||
@@ -83,7 +83,7 @@ protected:
|
||||
return uptr->m_user;
|
||||
}
|
||||
|
||||
- void OnError (int err) const THROWS((NCursesPanelException))
|
||||
+ void OnError (int err) const THROWS(NCursesPanelException)
|
||||
{
|
||||
if (err==ERR)
|
||||
THROW(new NCursesPanelException (this, err));
|
||||
--- c++/etip.h.in
|
||||
+++ c++/etip.h.in 2007-04-07 02:49:39.000000000 +0200
|
||||
@@ -330,23 +330,33 @@ public:
|
||||
inline void THROW(const NCursesException *e) {
|
||||
#if defined(__GNUG__) && defined(__EXCEPTIONS)
|
||||
# if ((__GNUG__ <= 2) && (__GNUC_MINOR__ < 8))
|
||||
- (*lib_error_handler)(e?e->classname():"",e?e->message:"");
|
||||
+ (*lib_error_handler)(e ? e->classname() : "", e ? e->message : "");
|
||||
#else
|
||||
- throw *e;
|
||||
+#define CPP_HAS_TRY_CATCH 1
|
||||
#endif
|
||||
#elif defined(__SUNPRO_CC)
|
||||
# if !defined(__SUNPRO_CC_COMPAT) || (__SUNPRO_CC_COMPAT < 5)
|
||||
genericerror(1, ((e != 0) ? (char *)(e->message) : ""));
|
||||
#else
|
||||
- throw *e;
|
||||
+#define CPP_HAS_TRY_CATCH 1
|
||||
#endif
|
||||
#else
|
||||
if (e)
|
||||
cerr << e->message << endl;
|
||||
exit(0);
|
||||
#endif
|
||||
-}
|
||||
|
||||
-#define THROWS(s)
|
||||
+#ifndef CPP_HAS_TRY_CATCH
|
||||
+#define CPP_HAS_TRY_CATCH 0
|
||||
+#define NCURSES_CPP_TRY /* nothing */
|
||||
+#define NCURSES_CPP_CATCH(e) if (false)
|
||||
+#define THROWS(s) /* nothing */
|
||||
+#elif CPP_HAS_TRY_CATCH
|
||||
+ throw *e;
|
||||
+#define NCURSES_CPP_TRY try
|
||||
+#define NCURSES_CPP_CATCH(e) catch(e)
|
||||
+#define THROWS(s) throw(s)
|
||||
+#endif
|
||||
+}
|
||||
|
||||
#endif /* NCURSES_ETIP_H_incl */
|
||||
--- include/ncurses_defs
|
||||
+++ include/ncurses_defs 2007-04-07 00:54:16.000000000 +0200
|
||||
@@ -68,6 +68,7 @@ HAVE_GPM_H
|
||||
HAVE_GPP_BUILTIN_H
|
||||
HAVE_GXX_BUILTIN_H
|
||||
HAVE_HAS_KEY
|
||||
+HAVE_IOSTREAM
|
||||
HAVE_ISASCII
|
||||
HAVE_ISSETUGID
|
||||
HAVE_LANGINFO_CODESET
|
||||
--- ncurses/base/lib_addstr.c
|
||||
+++ ncurses/base/lib_addstr.c 2007-04-04 02:41:25.000000000 +0200
|
||||
@@ -80,8 +80,7 @@ waddnstr(WINDOW *win, const char *astr,
|
||||
NCURSES_EXPORT(int)
|
||||
waddchnstr(WINDOW *win, const chtype *astr, int n)
|
||||
{
|
||||
- NCURSES_SIZE_T y = win->_cury;
|
||||
- NCURSES_SIZE_T x = win->_curx;
|
||||
+ NCURSES_SIZE_T y, x;
|
||||
int code = OK;
|
||||
int i;
|
||||
struct ldat *line;
|
||||
@@ -91,6 +90,8 @@ waddchnstr(WINDOW *win, const chtype *as
|
||||
if (!win)
|
||||
returnCode(ERR);
|
||||
|
||||
+ y = win->_cury;
|
||||
+ x = win->_curx;
|
||||
if (n < 0) {
|
||||
const chtype *str;
|
||||
n = 0;
|
||||
--- ncurses/base/lib_color.c
|
||||
+++ ncurses/base/lib_color.c 2007-04-04 22:32:04.000000000 +0200
|
||||
@@ -56,7 +56,10 @@ NCURSES_EXPORT_VAR(int) COLORS = 0;
|
||||
|
||||
#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
|
||||
|
||||
+#define MAX_PALETTE 8
|
||||
+
|
||||
#define OkColorHi(n) (((n) < COLORS) && ((n) < max_colors))
|
||||
+#define InPalette(n) ((n) >= 0 && (n) < MAX_PALETTE)
|
||||
|
||||
/*
|
||||
* Given a RGB range of 0..1000, we'll normally set the individual values
|
||||
@@ -162,10 +165,10 @@ init_color_table(void)
|
||||
|
||||
tp = (hue_lightness_saturation) ? hls_palette : cga_palette;
|
||||
for (n = 0; n < COLORS; n++) {
|
||||
- if (n < 8) {
|
||||
+ if (InPalette(n)) {
|
||||
SP->_color_table[n] = tp[n];
|
||||
} else {
|
||||
- SP->_color_table[n] = tp[n % 8];
|
||||
+ SP->_color_table[n] = tp[n % MAX_PALETTE];
|
||||
if (hue_lightness_saturation) {
|
||||
SP->_color_table[n].green = 100;
|
||||
} else {
|
||||
@@ -365,7 +368,7 @@ init_pair(short pair, short f, short b)
|
||||
if (GET_SCREEN_PAIR(SP) == pair)
|
||||
SET_SCREEN_PAIR(SP, (chtype) (~0)); /* force attribute update */
|
||||
|
||||
- if (initialize_pair) {
|
||||
+ if (initialize_pair && InPalette(f) && InPalette(b)) {
|
||||
const color_t *tp = hue_lightness_saturation ? hls_palette : cga_palette;
|
||||
|
||||
TR(TRACE_ATTRS,
|
||||
--- ncurses/base/lib_overlay.c
|
||||
+++ ncurses/base/lib_overlay.c 2007-04-04 02:40:12.000000000 +0200
|
||||
@@ -139,8 +139,8 @@ copywin(const WINDOW *src, WINDOW *dst,
|
||||
{
|
||||
int sx, sy, dx, dy;
|
||||
bool touched;
|
||||
- attr_t bk = AttrOf(dst->_nc_bkgd);
|
||||
- attr_t mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0);
|
||||
+ attr_t bk;
|
||||
+ attr_t mask;
|
||||
|
||||
T((T_CALLED("copywin(%p, %p, %d, %d, %d, %d, %d, %d, %d)"),
|
||||
src, dst, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol, over));
|
||||
@@ -148,6 +148,9 @@ copywin(const WINDOW *src, WINDOW *dst,
|
||||
if (!src || !dst)
|
||||
returnCode(ERR);
|
||||
|
||||
+ bk = AttrOf(dst->_nc_bkgd);
|
||||
+ mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0);
|
||||
+
|
||||
/* make sure rectangle exists in source */
|
||||
if ((sminrow + dmaxrow - dminrow) > (src->_maxy + 1) ||
|
||||
(smincol + dmaxcol - dmincol) > (src->_maxx + 1)) {
|
||||
--- ncurses/base/tries.c
|
||||
+++ ncurses/base/tries.c 2007-04-03 22:58:30.000000000 +0200
|
||||
@@ -68,7 +68,7 @@ _nc_expand_try(TRIES * tree, unsigned co
|
||||
}
|
||||
}
|
||||
if (result != 0) {
|
||||
- if ((result[len] = ptr->ch) == 0)
|
||||
+ if (ptr != 0 && (result[len] = ptr->ch) == 0)
|
||||
*((unsigned char *) (result + len)) = 128;
|
||||
#ifdef TRACE
|
||||
if (len == 0 && _nc_tracing != 0)
|
||||
--- ncurses/base/wresize.c
|
||||
+++ ncurses/base/wresize.c 2007-04-04 22:28:42.000000000 +0200
|
||||
@@ -38,7 +38,7 @@ static int
|
||||
cleanup_lines(struct ldat *data, int length)
|
||||
{
|
||||
while (--length >= 0)
|
||||
- free(data->text);
|
||||
+ free(data[length].text);
|
||||
free(data);
|
||||
return ERR;
|
||||
}
|
||||
--- ncurses/tinfo/trim_sgr0.c
|
||||
+++ ncurses/tinfo/trim_sgr0.c 2007-04-04 21:29:01.000000000 +0200
|
||||
@@ -247,9 +247,7 @@ _nc_trim_sgr0(TERMTYPE *tp)
|
||||
if (!rewrite_sgr(on, enter_alt_charset_mode)
|
||||
|| !rewrite_sgr(off, exit_alt_charset_mode)
|
||||
|| !rewrite_sgr(end, exit_alt_charset_mode)) {
|
||||
- FreeIfNeeded(on);
|
||||
FreeIfNeeded(off);
|
||||
- FreeIfNeeded(end);
|
||||
} else if (similar_sgr(off, end)
|
||||
&& !similar_sgr(off, on)) {
|
||||
TR(TRACE_DATABASE, ("adjusting sgr(9:off) : %s", _nc_visbuf(off)));
|
||||
@@ -315,8 +313,8 @@ _nc_trim_sgr0(TERMTYPE *tp)
|
||||
*/
|
||||
free(off);
|
||||
}
|
||||
- free(end);
|
||||
- free(on);
|
||||
+ FreeIfNeeded(end);
|
||||
+ FreeIfNeeded(on);
|
||||
} else {
|
||||
/*
|
||||
* Possibly some applications are confused if sgr0 contains rmacs,
|
||||
--- progs/dump_entry.c
|
||||
+++ progs/dump_entry.c 2007-04-07 17:51:47.000000000 +0200
|
||||
@@ -352,14 +352,17 @@ version_filter(PredType type, PredIdx id
|
||||
}
|
||||
break;
|
||||
|
||||
+#define is_termcap(type) (idx < (int) sizeof(type##_from_termcap) && \
|
||||
+ type##_from_termcap[idx])
|
||||
+
|
||||
case V_BSD: /* BSD */
|
||||
switch (type) {
|
||||
case BOOLEAN:
|
||||
- return bool_from_termcap[idx];
|
||||
+ return is_termcap(bool);
|
||||
case NUMBER:
|
||||
- return num_from_termcap[idx];
|
||||
+ return is_termcap(num);
|
||||
case STRING:
|
||||
- return str_from_termcap[idx];
|
||||
+ return is_termcap(str);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -788,11 +791,11 @@ fmt_entry(TERMTYPE *tterm,
|
||||
* Much more work should be done on this to support dumping termcaps.
|
||||
*/
|
||||
if (tversion == V_HPUX) {
|
||||
- if (memory_lock) {
|
||||
+ if (VALID_STRING(memory_lock)) {
|
||||
(void) sprintf(buffer, "meml=%s", memory_lock);
|
||||
WRAP_CONCAT;
|
||||
}
|
||||
- if (memory_unlock) {
|
||||
+ if (VALID_STRING(memory_unlock)) {
|
||||
(void) sprintf(buffer, "memu=%s", memory_unlock);
|
||||
WRAP_CONCAT;
|
||||
}
|
||||
--- progs/infocmp.c
|
||||
+++ progs/infocmp.c 2007-04-04 02:51:49.000000000 +0200
|
||||
@@ -1084,7 +1084,6 @@ dump_initializers(TERMTYPE *term)
|
||||
}
|
||||
*tp++ = '"';
|
||||
*tp = '\0';
|
||||
- size += (strlen(term->Strings[n]) + 1);
|
||||
(void) printf("static char %-20s[] = %s;\n",
|
||||
string_variable(ExtStrname(term, n, strnames)), buf);
|
||||
}
|
||||
--- progs/tic.c
|
||||
+++ progs/tic.c 2007-04-07 17:20:35.000000000 +0200
|
||||
@@ -353,11 +353,24 @@ open_input(const char *filename)
|
||||
return fp;
|
||||
}
|
||||
|
||||
+#if NO_LEAKS
|
||||
+static void
|
||||
+free_namelist(char **src)
|
||||
+{
|
||||
+ if (src != 0) {
|
||||
+ int n;
|
||||
+ for (n = 0; src[n] != 0; ++n)
|
||||
+ free (src[n]);
|
||||
+ free (src);
|
||||
+ }
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
/* Parse the "-e" option-value into a list of names */
|
||||
-static const char **
|
||||
+static char **
|
||||
make_namelist(char *src)
|
||||
{
|
||||
- const char **dst = 0;
|
||||
+ char **dst = 0;
|
||||
|
||||
char *s, *base;
|
||||
unsigned pass, n, nn;
|
||||
@@ -374,11 +387,13 @@ make_namelist(char *src)
|
||||
if ((s = stripped(buffer)) != 0) {
|
||||
if (dst != 0)
|
||||
dst[nn] = s;
|
||||
+ else
|
||||
+ free(s);
|
||||
nn++;
|
||||
}
|
||||
}
|
||||
if (pass == 1) {
|
||||
- dst = typeCalloc(const char *, nn + 1);
|
||||
+ dst = typeCalloc(char *, nn + 1);
|
||||
rewind(fp);
|
||||
}
|
||||
}
|
||||
@@ -401,10 +416,10 @@ make_namelist(char *src)
|
||||
break;
|
||||
}
|
||||
if (pass == 1)
|
||||
- dst = typeCalloc(const char *, nn + 1);
|
||||
+ dst = typeCalloc(char *, nn + 1);
|
||||
}
|
||||
}
|
||||
- if (showsummary) {
|
||||
+ if (showsummary && (dst != 0)) {
|
||||
fprintf(log_fp, "Entries that will be compiled:\n");
|
||||
for (n = 0; dst[n] != 0; n++)
|
||||
fprintf(log_fp, "%u:%s\n", n + 1, dst[n]);
|
||||
@@ -413,7 +428,7 @@ make_namelist(char *src)
|
||||
}
|
||||
|
||||
static bool
|
||||
-matches(const char **needle, const char *haystack)
|
||||
+matches(char **needle, const char *haystack)
|
||||
/* does entry in needle list match |-separated field in haystack? */
|
||||
{
|
||||
bool code = FALSE;
|
||||
@@ -468,7 +483,7 @@ main(int argc, char *argv[])
|
||||
bool limited = TRUE;
|
||||
char *tversion = (char *) NULL;
|
||||
const char *source_file = "terminfo";
|
||||
- const char **namelst = 0;
|
||||
+ char **namelst = 0;
|
||||
char *outdir = (char *) NULL;
|
||||
bool check_only = FALSE;
|
||||
bool suppress_untranslatable = FALSE;
|
||||
@@ -784,6 +799,9 @@ main(int argc, char *argv[])
|
||||
else
|
||||
fprintf(log_fp, "No entries written\n");
|
||||
}
|
||||
+#if NO_LEAKS
|
||||
+ free_namelist(namelst);
|
||||
+#endif
|
||||
cleanup();
|
||||
ExitProgram(EXIT_SUCCESS);
|
||||
}
|
||||
--- tack/ansi.c
|
||||
+++ tack/ansi.c 2007-04-07 16:49:53.000000000 +0200
|
||||
@@ -309,6 +309,8 @@ request_cfss(void)
|
||||
put_crlf();
|
||||
for (i = 0; rqss[i].text; i++) {
|
||||
ptext(rqss[i].text);
|
||||
+ if (rqss[i].expect == 0)
|
||||
+ continue;
|
||||
j = strlen(rqss[i].text) + strlen(rqss[i].expect);
|
||||
putchp(' ');
|
||||
for (j++; j < 40; j++)
|
||||
@@ -600,10 +602,11 @@ tools_status(
|
||||
i = read_reports();
|
||||
if (i != 'r' && i != 'R') {
|
||||
*ch = i;
|
||||
- return;
|
||||
+ break;
|
||||
}
|
||||
} while (i);
|
||||
|
||||
+ /* VT320, VT420, etc. */
|
||||
if (terminal_class >= 63) {
|
||||
do {
|
||||
i = request_cfss();
|
||||
@@ -841,7 +844,7 @@ tools_charset(
|
||||
bank[j] = ch;
|
||||
if (ch < ' ' || ch > '/')
|
||||
break;
|
||||
- if (j + 1 >= (int) sizeof(bank))
|
||||
+ if (j + 2 >= (int) sizeof(bank))
|
||||
break;
|
||||
}
|
||||
if (j == 1)
|
||||
--- tack/output.c
|
||||
+++ tack/output.c 2007-04-07 16:39:05.000000000 +0200
|
||||
@@ -740,7 +740,9 @@ wait_here(void)
|
||||
/* ignore control S, but tell me about it */
|
||||
while (ch == 023 || ch == 021) {
|
||||
ch = getchp(STRIP_PARITY);
|
||||
- if (i < (int) sizeof(cc))
|
||||
+ if (ch == EOF)
|
||||
+ break;
|
||||
+ if (i + 1 < (int) sizeof(cc))
|
||||
cc[++i] = ch;
|
||||
}
|
||||
put_str("\nThe terminal sent a ^S -");
|
||||
@@ -778,7 +780,7 @@ read_string(
|
||||
|
||||
for (i = 0; i < length - 1; ) {
|
||||
ch = getchp(STRIP_PARITY);
|
||||
- if (ch == '\r' || ch == '\n') {
|
||||
+ if (ch == '\r' || ch == '\n' || ch == EOF) {
|
||||
break;
|
||||
}
|
||||
if (ch == '\b' || ch == 127) {
|
||||
--- test/bs.c
|
||||
+++ test/bs.c 2007-04-03 01:14:05.000000000 +0200
|
||||
@@ -459,7 +459,7 @@ initgame(void)
|
||||
do {
|
||||
c = getch();
|
||||
} while
|
||||
- (!strchr("hjklrR", c) || c == FF);
|
||||
+ (!(strchr("hjklrR", c) || c == FF));
|
||||
|
||||
if (c == FF) {
|
||||
(void) clearok(stdscr, TRUE);
|
||||
--- test/cardfile.c
|
||||
+++ test/cardfile.c 2007-04-04 22:12:24.000000000 +0200
|
||||
@@ -136,13 +136,15 @@ add_content(CARD * card, const char *con
|
||||
if ((offset = strlen(card->content)) != 0) {
|
||||
total += 1 + offset;
|
||||
card->content = (char *) realloc(card->content, total + 1);
|
||||
- strcpy(card->content + offset++, " ");
|
||||
+ if (card->content)
|
||||
+ strcpy(card->content + offset++, " ");
|
||||
} else {
|
||||
if (card->content != 0)
|
||||
free(card->content);
|
||||
card->content = (char *) malloc(total + 1);
|
||||
}
|
||||
- strcpy(card->content + offset, content);
|
||||
+ if (card->content)
|
||||
+ strcpy(card->content + offset, content);
|
||||
}
|
||||
}
|
||||
|
||||
--- test/demo_defkey.c
|
||||
+++ test/demo_defkey.c 2007-04-03 01:17:56.000000000 +0200
|
||||
@@ -143,13 +143,12 @@ really_define_key(WINDOW *win, const cha
|
||||
code_name);
|
||||
}
|
||||
log_last_line(win);
|
||||
+
|
||||
if (vis_string != 0) {
|
||||
free(vis_string);
|
||||
vis_string = 0;
|
||||
}
|
||||
|
||||
- if (vis_string != 0)
|
||||
- free(vis_string);
|
||||
vis_string = visible(new_string);
|
||||
if ((rc = key_defined(new_string)) > 0) {
|
||||
wprintw(win, "%s was bound to %s\n", vis_string, keyname(rc));
|
@ -4,7 +4,7 @@
|
||||
static int
|
||||
allow_gpm_mouse(void)
|
||||
{
|
||||
+#if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+#ifdef weak_symbol
|
||||
+ /* Danger Robinson: do not use dlopen for libgpm if already loaded */
|
||||
+ if ((Gpm_Wgetch))
|
||||
+ return FALSE;
|
||||
@ -27,7 +27,7 @@
|
||||
#if USE_GPM_SUPPORT
|
||||
#undef buttons /* term.h defines this, and gpm uses it! */
|
||||
#include <gpm.h>
|
||||
+#if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+#ifdef weak_symbol
|
||||
+weak_symbol(Gpm_Wgetch);
|
||||
+#endif
|
||||
|
||||
|
@ -1,44 +1,75 @@
|
||||
--- ncurses/SigAction.h
|
||||
+++ ncurses/SigAction.h 2008-04-11 17:31:36.060814000 +0200
|
||||
@@ -55,6 +55,31 @@
|
||||
typedef struct sigaction sigaction_t;
|
||||
--- configure
|
||||
+++ configure 2008-08-15 17:26:58.354794367 +0200
|
||||
@@ -9310,6 +9310,7 @@ if test "$with_pthread" = "yes" ; then
|
||||
EOF
|
||||
|
||||
enable_reentrant=yes
|
||||
+ PTHREAD=-lpthread
|
||||
fi
|
||||
|
||||
# Reentrant code has to be opaque; there's little advantage to making ncurses
|
||||
@@ -9333,7 +9334,8 @@ if test "$with_reentrant" = yes ; then
|
||||
cf_cv_enable_opaque="NCURSES_INTERNALS"
|
||||
NCURSES_OPAQUE=1
|
||||
NCURSES_SIZE_T=int
|
||||
- LIB_SUFFIX="t${LIB_SUFFIX}"
|
||||
+# remove pthread library from $LIBS
|
||||
+LIBS=`echo "$LIBS" | sed -e 's/-lpthread[ ]//g' -e 's/-lpthread$//'`
|
||||
cat >>confdefs.h <<\EOF
|
||||
#define USE_REENTRANT 1
|
||||
EOF
|
||||
@@ -16785,6 +16787,7 @@ s,@NCURSES_EXT_COLORS@,$NCURSES_EXT_COLO
|
||||
s,@NCURSES_MOUSE_VERSION@,$NCURSES_MOUSE_VERSION,;t t
|
||||
s,@NCURSES_SBOOL@,$NCURSES_SBOOL,;t t
|
||||
s,@NCURSES_XNAMES@,$NCURSES_XNAMES,;t t
|
||||
+s,@PTHREAD@,$PTHREAD,;t t
|
||||
s,@cf_cv_enable_reentrant@,$cf_cv_enable_reentrant,;t t
|
||||
s,@cf_cv_enable_opaque@,$cf_cv_enable_opaque,;t t
|
||||
s,@NCURSES_OPAQUE@,$NCURSES_OPAQUE,;t t
|
||||
--- configure.in
|
||||
+++ configure.in 2008-08-15 17:24:08.626825950 +0200
|
||||
@@ -972,9 +972,11 @@ test "$with_colorfgbg" = yes && AC_DEFIN
|
||||
# This is still experimental (20080329), but should ultimately be moved to
|
||||
# the script-block --with-normal, etc.
|
||||
CF_WITH_PTHREAD
|
||||
+AC_SUBST(PTHREAD)
|
||||
if test "$with_pthread" = "yes" ; then
|
||||
AC_DEFINE(USE_PTHREADS)
|
||||
enable_reentrant=yes
|
||||
+ PTHREAD=-lpthread
|
||||
fi
|
||||
|
||||
# Reentrant code has to be opaque; there's little advantage to making ncurses
|
||||
@@ -992,7 +994,7 @@ if test "$with_reentrant" = yes ; then
|
||||
cf_cv_enable_opaque="NCURSES_INTERNALS"
|
||||
NCURSES_OPAQUE=1
|
||||
NCURSES_SIZE_T=int
|
||||
- LIB_SUFFIX="t${LIB_SUFFIX}"
|
||||
+ CF_REMOVE_LIB(LIBS,$LIBS,pthread)
|
||||
AC_DEFINE(USE_REENTRANT)
|
||||
CF_NCURSES_ABI_6
|
||||
else
|
||||
--- ncurses/curses.priv.h
|
||||
+++ ncurses/curses.priv.h 2008-08-15 14:54:39.906243654 +0200
|
||||
@@ -330,6 +330,7 @@ NCURSES_EXPORT(int *) _nc_ptr_Cols (void
|
||||
|
||||
#if USE_REENTRANT
|
||||
#include <pthread.h>
|
||||
+extern NCURSES_EXPORT(void) _nc_init_pthreads(void);
|
||||
extern NCURSES_EXPORT(void) _nc_mutex_init(pthread_mutex_t *);
|
||||
extern NCURSES_EXPORT(int) _nc_mutex_lock(pthread_mutex_t *);
|
||||
extern NCURSES_EXPORT(int) _nc_mutex_trylock(pthread_mutex_t *);
|
||||
@@ -337,11 +338,43 @@ extern NCURSES_EXPORT(int) _nc_mutex_unl
|
||||
#define _nc_lock_global(name) _nc_mutex_lock(&_nc_globals.mutex_##name)
|
||||
#define _nc_try_global(name) _nc_mutex_trylock(&_nc_globals.mutex_##name)
|
||||
#define _nc_unlock_global(name) _nc_mutex_unlock(&_nc_globals.mutex_##name)
|
||||
+#define FORCE_PTHREADS 0
|
||||
|
||||
#else
|
||||
#error POSIX threads requires --enable-reentrant option
|
||||
#endif
|
||||
|
||||
+#if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+static inline int _nc_sigprocmask(int how, const sigset_t *newmask, sigset_t *oldmask)
|
||||
+{
|
||||
+ if ((pthread_sigmask))
|
||||
+ return pthread_sigmask(how, newmask, oldmask);
|
||||
+ else
|
||||
+ return sigprocmask(how, newmask, oldmask);
|
||||
+}
|
||||
+# undef sigprocmask
|
||||
+# define sigprocmask _nc_sigprocmask
|
||||
+
|
||||
+static inline void _nc_kill(SCREEN *scan, int signal)
|
||||
+{
|
||||
+ if (!scan || !scan->_read_thread)
|
||||
+ goto out;
|
||||
+ if (!(pthread_kill) || !(pthread_equal) || !(pthread_self))
|
||||
+ goto out;
|
||||
+ if (pthread_equal(scan->_read_thread, pthread_self()))
|
||||
+ goto out;
|
||||
+ pthread_kill(scan->_read_thread, signal);
|
||||
+out:
|
||||
+ return;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#else /* !HAVE_SIGACTION */
|
||||
|
||||
#if HAVE_SIGVEC
|
||||
--- ncurses/curses.priv.h
|
||||
+++ ncurses/curses.priv.h 2008-04-11 18:21:47.136234297 +0200
|
||||
@@ -284,6 +284,29 @@ color_t;
|
||||
#define GET_SCREEN_PAIR(s) GetPair(SCREEN_ATTRS(s))
|
||||
#define SET_SCREEN_PAIR(s,p) SetPair(SCREEN_ATTRS(s), p)
|
||||
|
||||
+#if defined(__GNUC__) && defined(linux)
|
||||
+#if defined(__GNUC__) && defined(__linux__)
|
||||
+# if defined __USE_ISOC99
|
||||
+# define _cat_pragma(exp) _Pragma(#exp)
|
||||
+# define _weak_pragma(exp) _cat_pragma(weak name)
|
||||
@ -47,197 +78,219 @@
|
||||
+# endif
|
||||
+# define _declare(name) __extension__ extern __typeof__(name) name
|
||||
+# define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
|
||||
+#else
|
||||
+# if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+# error The ncurses library has to be NPTL thread safe (requires the GCC)
|
||||
+# ifdef USE_PTHREADS
|
||||
+# undef FORCE_PTHREADS
|
||||
+# define FORCE_PTHREADS 1
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
+#if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+# include <pthread.h>
|
||||
+#ifdef USE_PTHREADS
|
||||
+# if FORCE_PTHREADS
|
||||
+weak_symbol(pthread_sigmask);
|
||||
+weak_symbol(pthread_kill);
|
||||
+weak_symbol(pthread_self);
|
||||
+weak_symbol(pthread_equal);
|
||||
+weak_symbol(pthread_mutex_init);
|
||||
+weak_symbol(pthread_mutex_lock);
|
||||
+weak_symbol(pthread_mutex_unlock);
|
||||
+weak_symbol(pthread_mutex_trylock);
|
||||
+weak_symbol(pthread_mutexattr_settype);
|
||||
+extern NCURSES_EXPORT(int) _nc_sigprocmask(int, const sigset_t *, sigset_t *);
|
||||
+# undef sigprocmask
|
||||
+# define sigprocmask _nc_sigprocmask
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* Definitions for color pairs
|
||||
*/
|
||||
@@ -591,6 +614,11 @@ struct screen {
|
||||
#define _nc_windows SP->_nc_sp_windows
|
||||
#if HAVE_NANOSLEEP
|
||||
#undef HAVE_NANOSLEEP
|
||||
#define HAVE_NANOSLEEP 0 /* nanosleep suspends all threads */
|
||||
@@ -349,6 +382,7 @@ extern NCURSES_EXPORT(int) _nc_mutex_unl
|
||||
|
||||
bool _sig_winch;
|
||||
+#if USE_SIGWINCH
|
||||
+# if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+ pthread_t _read_thread;
|
||||
+# endif
|
||||
+#endif
|
||||
SCREEN *_next_screen;
|
||||
#else /* !USE_PTHREADS */
|
||||
|
||||
/* hashes for old and new lines */
|
||||
@@ -1209,6 +1237,9 @@ extern NCURSES_EXPORT(void) _nc_scroll_o
|
||||
extern NCURSES_EXPORT(void) _nc_scroll_optimize (void);
|
||||
extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, bool);
|
||||
extern NCURSES_EXPORT(void) _nc_signal_handler (bool);
|
||||
+#if USE_SIGWINCH
|
||||
+extern NCURSES_EXPORT(void) _nc_thread(SCREEN *);
|
||||
+#endif
|
||||
extern NCURSES_EXPORT(void) _nc_synchook (WINDOW *);
|
||||
extern NCURSES_EXPORT(void) _nc_trace_tries (struct tries *);
|
||||
+#define _nc_init_pthreads() /* nothing */
|
||||
#define _nc_mutex_init(obj) /* nothing */
|
||||
|
||||
#define _nc_lock_global(name) /* nothing */
|
||||
@@ -616,10 +650,12 @@ typedef struct {
|
||||
#endif /* TRACE */
|
||||
|
||||
#ifdef USE_PTHREADS
|
||||
- pthread_mutex_t mutex_curses;
|
||||
- pthread_mutex_t mutex_tst_tracef;
|
||||
- pthread_mutex_t mutex_tracef;
|
||||
- int nested_tracef;
|
||||
+ pthread_mutex_t mutex_curses;
|
||||
+ pthread_mutex_t mutex_tst_tracef;
|
||||
+ pthread_mutex_t mutex_tracef;
|
||||
+ int nested_tracef;
|
||||
+ int use_pthreads;
|
||||
+#define _nc_use_pthreads _nc_globals.use_pthreads
|
||||
#endif
|
||||
} NCURSES_GLOBALS;
|
||||
|
||||
--- ncurses/base/lib_getch.c
|
||||
+++ ncurses/base/lib_getch.c 2007-01-31 12:41:27.000000000 +0100
|
||||
@@ -237,6 +237,10 @@ _nc_wgetch(WINDOW *win,
|
||||
if (win == 0 || SP == 0)
|
||||
returnCode(ERR);
|
||||
+++ ncurses/base/lib_getch.c 2008-08-15 14:59:26.569224183 +0200
|
||||
@@ -260,7 +260,7 @@ recur_wrefresh(WINDOW *win)
|
||||
{
|
||||
#ifdef USE_PTHREADS
|
||||
SCREEN *sp = _nc_screen_of(win);
|
||||
- if (sp != SP) {
|
||||
+ if (_nc_use_pthreads && sp != SP) {
|
||||
SCREEN *save_SP;
|
||||
|
||||
+#if USE_SIGWINCH
|
||||
+ _nc_thread(SP);
|
||||
+#endif
|
||||
/* temporarily switch to the window's screen to check/refresh */
|
||||
@@ -286,7 +286,7 @@ recur_wgetnstr(WINDOW *win, char *buf)
|
||||
|
||||
if (sp != 0) {
|
||||
#ifdef USE_PTHREADS
|
||||
- if (sp != SP) {
|
||||
+ if (_nc_use_pthreads && sp != SP) {
|
||||
SCREEN *save_SP;
|
||||
|
||||
/* temporarily switch to the window's screen to get cooked input */
|
||||
--- ncurses/base/lib_initscr.c
|
||||
+++ ncurses/base/lib_initscr.c 2008-08-15 14:37:44.598653367 +0200
|
||||
@@ -57,7 +57,9 @@ initscr(void)
|
||||
START_TRACE();
|
||||
T((T_CALLED("initscr()")));
|
||||
|
||||
+ _nc_init_pthreads();
|
||||
_nc_lock_global(curses);
|
||||
+
|
||||
if (cooked_key_in_fifo()) {
|
||||
if (wgetch_should_refresh(win))
|
||||
wrefresh(win);
|
||||
--- ncurses/base/lib_set_term.c
|
||||
+++ ncurses/base/lib_set_term.c 2008-04-08 15:18:15.000000000 +0200
|
||||
@@ -40,7 +40,7 @@
|
||||
*/
|
||||
/* Portable applications must not call initscr() more than once */
|
||||
if (!_nc_globals.init_screen) {
|
||||
_nc_globals.init_screen = TRUE;
|
||||
--- ncurses/base/lib_newterm.c
|
||||
+++ ncurses/base/lib_newterm.c 2008-08-15 14:37:33.293589963 +0200
|
||||
@@ -130,6 +130,7 @@ newterm(NCURSES_CONST char *name, FILE *
|
||||
START_TRACE();
|
||||
T((T_CALLED("newterm(\"%s\",%p,%p)"), name, ofp, ifp));
|
||||
|
||||
#include <curses.priv.h>
|
||||
-
|
||||
+#include <SigAction.h>
|
||||
#include <term.h> /* cur_term */
|
||||
#include <tic.h>
|
||||
+ _nc_init_pthreads();
|
||||
_nc_lock_global(curses);
|
||||
|
||||
@@ -144,6 +144,12 @@ delscreen(SCREEN *sp)
|
||||
free(sp->_setbuf);
|
||||
current = SP;
|
||||
--- ncurses/tinfo/lib_data.c
|
||||
+++ ncurses/tinfo/lib_data.c 2008-08-15 14:42:37.974271725 +0200
|
||||
@@ -181,6 +181,7 @@ NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_
|
||||
PTHREAD_MUTEX_INITIALIZER, /* mutex_tst_tracef */
|
||||
PTHREAD_MUTEX_INITIALIZER, /* mutex_tracef */
|
||||
0, /* nested_tracef */
|
||||
+ 0, /* use_pthreads */
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -248,6 +249,27 @@ init_global_mutexes(void)
|
||||
}
|
||||
|
||||
+#if USE_SIGWINCH
|
||||
+# if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+ sp->_read_thread = (pthread_t)0;
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
free(sp);
|
||||
|
||||
/*
|
||||
@@ -559,6 +565,15 @@ _nc_setupscreen(int slines,
|
||||
returnCode(ERR);
|
||||
SP->_stdscr = stdscr;
|
||||
|
||||
+#if USE_SIGWINCH
|
||||
+# if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+ if ((pthread_self))
|
||||
+ SP->_read_thread = pthread_self();
|
||||
+ else
|
||||
+ SP->_read_thread = (pthread_t)0;
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
returnCode(OK);
|
||||
}
|
||||
|
||||
--- ncurses/tinfo/lib_setup.c
|
||||
+++ ncurses/tinfo/lib_setup.c 2007-01-31 11:46:17.000000000 +0100
|
||||
@@ -42,6 +42,7 @@
|
||||
#include <curses.priv.h>
|
||||
#include <tic.h> /* for MAX_NAME_SIZE */
|
||||
#include <term_entry.h>
|
||||
+#include <SigAction.h>
|
||||
|
||||
#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
|
||||
#define _POSIX_SOURCE
|
||||
@@ -119,6 +120,13 @@ _nc_handle_sigwinch(int enable)
|
||||
default:
|
||||
/* record a SIGWINCH */
|
||||
have_sigwinch = 1;
|
||||
+# if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+ scan = _nc_screen_chain;
|
||||
+ while (scan) {
|
||||
+ _nc_kill(scan, SIGWINCH);
|
||||
+ scan = scan->_next_screen;
|
||||
+ }
|
||||
+# endif
|
||||
break;
|
||||
case 0:
|
||||
/* temporarily disable the next block */
|
||||
--- ncurses/tty/lib_tstp.c
|
||||
+++ ncurses/tty/lib_tstp.c 2007-01-31 13:14:40.000000000 +0100
|
||||
@@ -142,6 +142,11 @@ tstp(int dummy GCC_UNUSED)
|
||||
#ifdef SIGTTOU
|
||||
int sigttou_blocked;
|
||||
#endif
|
||||
+#if USE_SIGWINCH
|
||||
+# if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+ pthread_t reader = (pthread_t)0;
|
||||
+# endif
|
||||
+#endif
|
||||
|
||||
T(("tstp() called"));
|
||||
|
||||
@@ -169,6 +174,10 @@ tstp(int dummy GCC_UNUSED)
|
||||
(void) sigaddset(&mask, SIGALRM);
|
||||
#if USE_SIGWINCH
|
||||
(void) sigaddset(&mask, SIGWINCH);
|
||||
+# if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+ reader = SP->_read_thread;
|
||||
+ SP->_read_thread = (pthread_t)0;
|
||||
+# endif
|
||||
#endif
|
||||
(void) sigprocmask(SIG_BLOCK, &mask, &omask);
|
||||
|
||||
@@ -214,6 +223,12 @@ tstp(int dummy GCC_UNUSED)
|
||||
sigaction(SIGTSTP, &oact, NULL);
|
||||
flushinp();
|
||||
|
||||
+#if USE_SIGWINCH
|
||||
+# if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+ SP->_read_thread = reader;
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* If the user modified the tty state while suspended, he wants
|
||||
* those changes to stick. So save the new "default" terminal state.
|
||||
@@ -386,6 +401,13 @@ _nc_signal_handler(bool enable)
|
||||
CatchIfDefault(SIGINT, cleanup);
|
||||
CatchIfDefault(SIGTERM, cleanup);
|
||||
#if USE_SIGWINCH
|
||||
+# if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+ if ((pthread_self) && (pthread_equal)) {
|
||||
+ pthread_t current = pthread_self();
|
||||
+ if (!pthread_equal(SP->_read_thread, current))
|
||||
+ SP->_read_thread = current;
|
||||
+ }
|
||||
+# endif
|
||||
CatchIfDefault(SIGWINCH, sigwinch);
|
||||
#endif
|
||||
initialized = TRUE;
|
||||
@@ -393,3 +415,25 @@ _nc_signal_handler(bool enable)
|
||||
}
|
||||
returnVoid;
|
||||
}
|
||||
+
|
||||
+#if USE_SIGWINCH
|
||||
+/*
|
||||
+ * This is invoked once at the beginning of reading, to remember
|
||||
+ * which thread should be interrupted if the SIGWINCH handler is
|
||||
+ * called.
|
||||
+ */
|
||||
+
|
||||
+NCURSES_EXPORT(void)
|
||||
+_nc_thread(SCREEN *scan)
|
||||
+_nc_init_pthreads(void)
|
||||
+{
|
||||
+# if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
|
||||
+ if ((pthread_self) && (pthread_equal)) {
|
||||
+ pthread_t current = pthread_self();
|
||||
+ if (pthread_equal(SP->_read_thread, current))
|
||||
+ return;
|
||||
+ /* Remember the terminal reading thread */
|
||||
+ scan->_read_thread = current;
|
||||
+ }
|
||||
+ if (_nc_use_pthreads)
|
||||
+ return;
|
||||
+# if FORCE_PTHREADS
|
||||
+ if ((pthread_mutex_init) == 0)
|
||||
+ return;
|
||||
+ if ((pthread_mutex_lock) == 0)
|
||||
+ return;
|
||||
+ if ((pthread_mutex_unlock) == 0)
|
||||
+ return;
|
||||
+ if ((pthread_mutex_trylock) == 0)
|
||||
+ return;
|
||||
+ if ((pthread_mutexattr_settype) == 0)
|
||||
+ return;
|
||||
+# endif
|
||||
+ _nc_use_pthreads = 1;
|
||||
+ init_global_mutexes();
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* Use recursive mutexes if we have them - they're part of Unix98.
|
||||
* For the cases where we do not, _nc_mutex_trylock() is used to avoid a
|
||||
@@ -262,6 +284,8 @@ _nc_mutex_init(pthread_mutex_t * obj)
|
||||
{
|
||||
pthread_mutexattr_t recattr;
|
||||
|
||||
+ if (_nc_use_pthreads == 0)
|
||||
+ return;
|
||||
memset(&recattr, 0, sizeof(recattr));
|
||||
pthread_mutexattr_settype(&recattr, PTHREAD_MUTEX_RECURSIVE);
|
||||
pthread_mutex_init(obj, &recattr);
|
||||
@@ -270,21 +294,39 @@ _nc_mutex_init(pthread_mutex_t * obj)
|
||||
NCURSES_EXPORT(int)
|
||||
_nc_mutex_lock(pthread_mutex_t * obj)
|
||||
{
|
||||
- init_global_mutexes();
|
||||
+ if (_nc_use_pthreads == 0)
|
||||
+ return 0;
|
||||
return pthread_mutex_lock(obj);
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
_nc_mutex_trylock(pthread_mutex_t * obj)
|
||||
{
|
||||
- init_global_mutexes();
|
||||
+ if (_nc_use_pthreads == 0)
|
||||
+ return 0;
|
||||
return pthread_mutex_trylock(obj);
|
||||
}
|
||||
|
||||
NCURSES_EXPORT(int)
|
||||
_nc_mutex_unlock(pthread_mutex_t * obj)
|
||||
{
|
||||
- init_global_mutexes();
|
||||
+ if (_nc_use_pthreads == 0)
|
||||
+ return 0;
|
||||
return pthread_mutex_unlock(obj);
|
||||
}
|
||||
+
|
||||
+#if FORCE_PTHREADS
|
||||
+/*
|
||||
+ * NB: sigprocmask(2) is global but pthread_sigmask(3p)
|
||||
+ * only for the calling thread.
|
||||
+ */
|
||||
+NCURSES_EXPORT(int)
|
||||
+_nc_sigprocmask(int how, const sigset_t *newmask, sigset_t *oldmask)
|
||||
+{
|
||||
+ if ((pthread_sigmask))
|
||||
+ return pthread_sigmask(how, newmask, oldmask);
|
||||
+ else
|
||||
+ return sigprocmask(how, newmask, oldmask);
|
||||
+}
|
||||
+#endif
|
||||
#endif /* USE_PTHREADS */
|
||||
--- ncurses/tinfo/lib_options.c
|
||||
+++ ncurses/tinfo/lib_options.c 2008-08-15 15:02:29.662454211 +0200
|
||||
@@ -245,7 +245,7 @@ _nc_keypad(SCREEN *sp, bool flag)
|
||||
* has wgetch() reading in more than one thread. putp() and below
|
||||
* may use SP explicitly.
|
||||
*/
|
||||
- if (sp != SP) {
|
||||
+ if (_nc_use_pthreads && sp != SP) {
|
||||
SCREEN *save_sp;
|
||||
|
||||
/* cannot use use_screen(), since that is not in tinfo library */
|
||||
--- ncurses/trace/lib_trace.c
|
||||
+++ ncurses/trace/lib_trace.c 2008-08-15 14:26:03.884728534 +0200
|
||||
@@ -180,6 +180,9 @@ _nc_va_tracef(const char *fmt, va_list a
|
||||
* Rather than add the complication of a per-thread stack, just
|
||||
* show the thread-id in each line of the trace.
|
||||
*/
|
||||
+# if FORCE_PTHREADS
|
||||
+ if ((pthread_self))
|
||||
+# endif
|
||||
fprintf(TraceFP, "%#lx:", (long) pthread_self());
|
||||
#endif
|
||||
if (before || after) {
|
||||
--- test/Makefile.in
|
||||
+++ test/Makefile.in 2008-08-15 17:21:56.826424899 +0200
|
||||
@@ -95,7 +95,7 @@ LIBS_DEFAULT = $(TEST_ARGS) @LIBS@ $(TES
|
||||
LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_DEFAULT)
|
||||
|
||||
# use these for linking with the (n)curses library
|
||||
-LIBS_CURSES = `echo "$(TEST_ARGS) @LIBS@" | sed -e 's/-lform.*-lpanel[^ ]*//'` $(TEST_LIBS) $(MATH_LIB)
|
||||
+LIBS_CURSES = `echo "$(TEST_ARGS) @LIBS@" | sed -e 's/-lform.*-lpanel[^ ]*//'` $(TEST_LIBS) $(MATH_LIB) @PTHREAD@
|
||||
LDFLAGS_CURSES = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_CURSES)
|
||||
|
||||
# use these for linking with the tinfo library if we have it, or curses library if not
|
||||
|
11
ncurses-5.6-tack.dif
Normal file
11
ncurses-5.6-tack.dif
Normal file
@ -0,0 +1,11 @@
|
||||
--- tack-1.06/Makefile.in
|
||||
+++ tack-1.06/Makefile.in 2008-08-14 13:57:00.930682483 +0200
|
||||
@@ -98,7 +98,7 @@ ABI_VERSION = @cf_cv_abi_version@
|
||||
LOCAL_LIBDIR = @top_builddir@/lib
|
||||
|
||||
LD = @LD@
|
||||
-LINK = @LINK_PROGS@ $(LIBTOOL_LINK)
|
||||
+LINK = @LINK_PROGS@ $(CC)
|
||||
LDFLAGS = @EXTRA_LDFLAGS@ \
|
||||
@TICS_ARGS@ @TINFO_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@
|
||||
|
201
ncurses-5.6.dif
201
ncurses-5.6.dif
@ -1,15 +1,20 @@
|
||||
--- .pkgextract
|
||||
+++ .pkgextract 2006-05-18 16:07:14.000000000 +0200
|
||||
@@ -0,0 +1,6 @@
|
||||
+tar Oxfj ../ncurses-5.6-20070128-patch.tar.bz2 | patch -p1 -s
|
||||
@@ -0,0 +1,11 @@
|
||||
+rm -fr tack
|
||||
+rm -f Ada95/src/terminal_interface-curses.adb
|
||||
+rm -f mkinstalldirs
|
||||
+tar Oxfj ../ncurses-5.6-20080804-patch.tar.bz2 | patch -p1 -s
|
||||
+tar xfj ../tack-1.06.tar.bz
|
||||
+patch -p0 -s --suffix=.va < ../ncurses-5.3-printw.dif
|
||||
+patch -p0 -s --suffix=.pt < ../ncurses-5.6-pthread.dif
|
||||
+patch -p0 -s --suffix=.ov < ../ncurses-5.6-overwrite.dif
|
||||
+patch -p0 -s --suffix=.cv < ../ncurses-5.6-coverity.patch
|
||||
+patch -p0 -s --suffix=.hs < ../ncurses-5.6-hash.dif
|
||||
+patch -p0 -s --suffix=.tack < ../ncurses-5.6-tack.dif
|
||||
+patch -p0 -s --suffix=.gpm < ../ncurses-5.6-gpm.dif
|
||||
--- aclocal.m4
|
||||
+++ aclocal.m4 2007-01-31 13:28:46.000000000 +0100
|
||||
@@ -298,7 +298,7 @@ AC_MSG_CHECKING([for size of bool])
|
||||
+++ aclocal.m4 2008-04-08 17:08:00.277340000 +0200
|
||||
@@ -391,7 +391,7 @@ AC_MSG_CHECKING([for size of bool])
|
||||
AC_CACHE_VAL(cf_cv_type_of_bool,[
|
||||
rm -f cf_test.out
|
||||
AC_TRY_RUN([
|
||||
@ -18,7 +23,7 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#if defined(__cplusplus)
|
||||
@@ -2942,12 +2942,15 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
@@ -3088,12 +3088,15 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
echo '? missing rename for '\$cf_source
|
||||
cf_target="\$cf_source"
|
||||
fi
|
||||
@ -36,7 +41,7 @@
|
||||
sed -f $cf_man_alias \\
|
||||
CF_EOF
|
||||
|
||||
@@ -2957,7 +2960,7 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
@@ -3103,7 +3106,7 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
CF_EOF
|
||||
else
|
||||
cat >>$cf_edit_man <<CF_EOF
|
||||
@ -45,7 +50,7 @@
|
||||
CF_EOF
|
||||
fi
|
||||
|
||||
@@ -2990,7 +2993,7 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
@@ -3136,7 +3139,7 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
mv \$TMP.$cf_so_strip \$TMP
|
||||
fi
|
||||
fi
|
||||
@ -54,7 +59,7 @@
|
||||
CF_EOF
|
||||
fi
|
||||
|
||||
@@ -2999,22 +3002,22 @@ case "$MANPAGE_FORMAT" in #(vi
|
||||
@@ -3145,23 +3148,23 @@ case "$MANPAGE_FORMAT" in #(vi
|
||||
cat >>$cf_edit_man <<CF_EOF
|
||||
if test \$form = format ; then
|
||||
# BSDI installs only .0 suffixes in the cat directories
|
||||
@ -73,6 +78,7 @@
|
||||
- \$INSTALL_DATA \$TMP \$cf_target
|
||||
+ echo \$verb \$t
|
||||
+ \$INSTALL_DATA \$TMP \$t
|
||||
test -d \$cf_subdir\${section} &&
|
||||
test -n "\$aliases" && (
|
||||
cd \$cf_subdir\${section} && (
|
||||
- cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
|
||||
@ -83,7 +89,7 @@
|
||||
for cf_alias in \$aliases
|
||||
do
|
||||
if test \$section = 1 ; then
|
||||
@@ -3023,15 +3026,15 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
@@ -3170,15 +3173,15 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
|
||||
if test "$MANPAGE_SYMLINKS" = yes ; then
|
||||
if test -f \$cf_alias\${suffix} ; then
|
||||
@ -102,18 +108,20 @@
|
||||
echo ".so \$cf_source" >\$TMP
|
||||
CF_EOF
|
||||
if test -n "$cf_compress" ; then
|
||||
@@ -3051,8 +3054,8 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
@@ -3198,9 +3201,9 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
)
|
||||
)
|
||||
elif test \$verb = removing ; then
|
||||
- echo \$verb \$cf_target
|
||||
- rm -f \$cf_target
|
||||
+ echo \$verb \$t
|
||||
+ rm -f \$t
|
||||
- test -f \$cf_target && (
|
||||
- echo \$verb \$cf_target
|
||||
- rm -f \$cf_target
|
||||
+ test -f \$t && (
|
||||
+ echo \$verb \$t
|
||||
+ rm -f \$t
|
||||
)
|
||||
test -d \$cf_subdir\${section} &&
|
||||
test -n "\$aliases" && (
|
||||
cd \$cf_subdir\${section} && (
|
||||
for cf_alias in \$aliases
|
||||
@@ -3070,6 +3073,7 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
@@ -3220,6 +3223,7 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
# echo ".hy 0"
|
||||
cat \$TMP
|
||||
fi
|
||||
@ -122,8 +130,8 @@
|
||||
esac
|
||||
done
|
||||
--- configure
|
||||
+++ configure 2007-01-31 15:37:50.000000000 +0100
|
||||
@@ -5020,7 +5020,7 @@ echo "${ECHO_T}$cf_cv_ldflags_search_pat
|
||||
+++ configure 2008-04-08 17:11:28.624009000 +0200
|
||||
@@ -5100,7 +5100,7 @@ echo "${ECHO_T}$cf_cv_ldflags_search_pat
|
||||
;;
|
||||
linux*|gnu*|k*bsd*-gnu)
|
||||
if test "$DFT_LWR_MODEL" = "shared" ; then
|
||||
@ -132,7 +140,7 @@
|
||||
LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
|
||||
fi
|
||||
if test "$cf_cv_ld_rpath" = yes ; then
|
||||
@@ -8186,12 +8186,15 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
@@ -8295,12 +8295,15 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
echo '? missing rename for '\$cf_source
|
||||
cf_target="\$cf_source"
|
||||
fi
|
||||
@ -150,7 +158,7 @@
|
||||
sed -f $cf_man_alias \\
|
||||
CF_EOF
|
||||
|
||||
@@ -8201,7 +8204,7 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
@@ -8310,7 +8313,7 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
CF_EOF
|
||||
else
|
||||
cat >>$cf_edit_man <<CF_EOF
|
||||
@ -159,7 +167,7 @@
|
||||
CF_EOF
|
||||
fi
|
||||
|
||||
@@ -8234,7 +8237,7 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
@@ -8343,7 +8346,7 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
mv \$TMP.$cf_so_strip \$TMP
|
||||
fi
|
||||
fi
|
||||
@ -168,7 +176,7 @@
|
||||
CF_EOF
|
||||
fi
|
||||
|
||||
@@ -8243,22 +8246,22 @@ case "$MANPAGE_FORMAT" in #(vi
|
||||
@@ -8352,23 +8355,23 @@ case "$MANPAGE_FORMAT" in #(vi
|
||||
cat >>$cf_edit_man <<CF_EOF
|
||||
if test \$form = format ; then
|
||||
# BSDI installs only .0 suffixes in the cat directories
|
||||
@ -187,6 +195,7 @@
|
||||
- \$INSTALL_DATA \$TMP \$cf_target
|
||||
+ echo \$verb \$t
|
||||
+ \$INSTALL_DATA \$TMP \$t
|
||||
test -d \$cf_subdir\${section} &&
|
||||
test -n "\$aliases" && (
|
||||
cd \$cf_subdir\${section} && (
|
||||
- cf_source=\`echo \$cf_target |sed -e 's%^.*/\([^/][^/]*/[^/][^/]*$\)%\1%'\`
|
||||
@ -197,7 +206,7 @@
|
||||
for cf_alias in \$aliases
|
||||
do
|
||||
if test \$section = 1 ; then
|
||||
@@ -8267,15 +8270,15 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
@@ -8377,15 +8380,15 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
|
||||
if test "$MANPAGE_SYMLINKS" = yes ; then
|
||||
if test -f \$cf_alias\${suffix} ; then
|
||||
@ -216,18 +225,20 @@
|
||||
echo ".so \$cf_source" >\$TMP
|
||||
CF_EOF
|
||||
if test -n "$cf_compress" ; then
|
||||
@@ -8295,8 +8298,8 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
@@ -8405,9 +8408,9 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
)
|
||||
)
|
||||
elif test \$verb = removing ; then
|
||||
- echo \$verb \$cf_target
|
||||
- rm -f \$cf_target
|
||||
+ echo \$verb \$t
|
||||
+ rm -f \$t
|
||||
- test -f \$cf_target && (
|
||||
- echo \$verb \$cf_target
|
||||
- rm -f \$cf_target
|
||||
+ test -f \$t && (
|
||||
+ echo \$verb \$t
|
||||
+ rm -f \$t
|
||||
)
|
||||
test -d \$cf_subdir\${section} &&
|
||||
test -n "\$aliases" && (
|
||||
cd \$cf_subdir\${section} && (
|
||||
for cf_alias in \$aliases
|
||||
@@ -8314,6 +8317,7 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
@@ -8427,6 +8430,7 @@ cat >>$cf_edit_man <<CF_EOF
|
||||
# echo ".hy 0"
|
||||
cat \$TMP
|
||||
fi
|
||||
@ -235,8 +246,8 @@
|
||||
;;
|
||||
esac
|
||||
done
|
||||
@@ -14082,7 +14086,7 @@ else
|
||||
#line 14081 "configure"
|
||||
@@ -14677,7 +14681,7 @@ else
|
||||
#line 14676 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
-#include <stdlib.h>
|
||||
@ -244,27 +255,41 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#if defined(__cplusplus)
|
||||
@@ -15217,6 +15221,7 @@ if test "$with_termlib" != no ; then
|
||||
@@ -15797,12 +15801,13 @@ if test "$with_termlib" != no ; then
|
||||
TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
|
||||
SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
|
||||
fi
|
||||
+ TINFO_ARGS="$TINFO_ARGS -L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
|
||||
else
|
||||
# the next lines are needed for linking libtic over libncurses
|
||||
TINFO_NAME=${LIB_NAME}
|
||||
TINFO_SUFFIX=${DFT_LIB_SUFFIX}
|
||||
TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
|
||||
- TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
|
||||
+ TICS_LIST="$SHLIB_LIST"
|
||||
|
||||
TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
|
||||
fi
|
||||
--- configure.in
|
||||
+++ configure.in 2007-01-31 15:37:34.000000000 +0100
|
||||
@@ -1510,6 +1510,7 @@ if test "$with_termlib" != no ; then
|
||||
+++ configure.in 2008-08-14 17:10:51.210017818 +0200
|
||||
@@ -1622,12 +1622,13 @@ if test "$with_termlib" != no ; then
|
||||
TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
|
||||
SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
|
||||
fi
|
||||
+ TINFO_ARGS="$TINFO_ARGS -L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
|
||||
else
|
||||
# the next lines are needed for linking libtic over libncurses
|
||||
TINFO_NAME=${LIB_NAME}
|
||||
TINFO_SUFFIX=${DFT_LIB_SUFFIX}
|
||||
TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
|
||||
- TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
|
||||
+ TICS_LIST="$SHLIB_LIST"
|
||||
|
||||
TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
|
||||
fi
|
||||
--- include/curses.h.in
|
||||
+++ include/curses.h.in 2006-05-18 16:07:15.000000000 +0200
|
||||
@@ -130,6 +130,8 @@ typedef unsigned @cf_cv_typeof_chtype@ c
|
||||
+++ include/curses.h.in 2008-04-09 15:44:06.583779000 +0200
|
||||
@@ -137,6 +137,8 @@ typedef unsigned @cf_cv_typeof_chtype@ c
|
||||
typedef unsigned @cf_cv_typeof_mmask_t@ mmask_t;
|
||||
#endif
|
||||
|
||||
@ -286,7 +311,7 @@
|
||||
#undef NCURSES_CONST
|
||||
--- include/tic.h
|
||||
+++ include/tic.h 2006-05-18 16:07:15.000000000 +0200
|
||||
@@ -226,12 +226,12 @@ extern NCURSES_EXPORT(const struct name_
|
||||
@@ -211,12 +211,12 @@ extern NCURSES_EXPORT(const struct alias
|
||||
#define NOTFOUND ((struct name_table_entry *) 0)
|
||||
|
||||
/* out-of-band values for representing absent capabilities */
|
||||
@ -303,7 +328,7 @@
|
||||
|
||||
--- man/man_db.renames
|
||||
+++ man/man_db.renames 2006-05-18 16:07:15.000000000 +0200
|
||||
@@ -158,6 +158,8 @@ tput.1 tput.1
|
||||
@@ -161,6 +161,8 @@ tput.1 tput.1
|
||||
tset.1 tset.1
|
||||
vprintf.3s vprintf.3
|
||||
wresize.3x wresize.3ncurses
|
||||
@ -314,7 +339,7 @@
|
||||
tack.1m tack.1
|
||||
--- man/ncurses.3x
|
||||
+++ man/ncurses.3x 2006-05-18 16:07:15.000000000 +0200
|
||||
@@ -88,6 +88,10 @@ after the shell environment variable \fB
|
||||
@@ -97,6 +97,10 @@ after the shell environment variable \fB
|
||||
\fBtset(1)\fR is usually responsible for doing this.
|
||||
[See \fBterminfo\fR(\*n) for further details.]
|
||||
.PP
|
||||
@ -324,20 +349,20 @@
|
||||
+.PP
|
||||
The \fBncurses\fR library permits manipulation of data structures,
|
||||
called \fIwindows\fR, which can be thought of as two-dimensional
|
||||
arrays of characters representing all or part of a CRT screen. A
|
||||
arrays of characters representing all or part of a CRT screen.
|
||||
--- misc/ncurses-config.in
|
||||
+++ misc/ncurses-config.in 2008-04-10 11:12:06.528491302 +0200
|
||||
@@ -73,7 +73,7 @@ while test $# -gt 0; do
|
||||
+++ misc/ncurses-config.in 2008-04-10 11:36:57.986551686 +0200
|
||||
@@ -78,7 +78,7 @@ while test $# -gt 0; do
|
||||
if test "${prefix}/include" != /usr/include ; then
|
||||
INCS="-I${prefix}/include"
|
||||
fi
|
||||
- if test "@WITH_OVERWRITE@" != no ; then
|
||||
+ if test "${THIS%[0-9]*}" != ncurses ; then
|
||||
+ if test "${THIS%[0-5]*}" != ncurses ; then
|
||||
INCS="$INCS -I${prefix}/include/${THIS}"
|
||||
fi
|
||||
sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
|
||||
--- misc/terminfo.src
|
||||
+++ misc/terminfo.src 2007-01-31 14:27:30.000000000 +0100
|
||||
+++ misc/terminfo.src 2008-04-08 17:16:48.748977000 +0200
|
||||
@@ -301,7 +301,9 @@ dumb|80-column dumb tty,
|
||||
am,
|
||||
cols#80,
|
||||
@ -349,7 +374,7 @@
|
||||
gn, use=dumb,
|
||||
lpr|printer|line printer,
|
||||
OTbs, hc, os,
|
||||
@@ -747,9 +749,15 @@ linux-c|linux console 1.3.6+ for older n
|
||||
@@ -757,9 +759,15 @@ linux-c|linux console 1.3.6+ for older n
|
||||
# The 2.2.x kernels add a private mode that sets the cursor type; use that to
|
||||
# get a block cursor for cvvis.
|
||||
# reported by Frank Heckenbach <frank@g-n-u.de>.
|
||||
@ -366,7 +391,7 @@
|
||||
|
||||
# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
|
||||
linux-nic|linux with ich/ich1 suppressed for non-curses programs,
|
||||
@@ -2141,6 +2149,7 @@ vt132|DEC vt132,
|
||||
@@ -2151,6 +2159,7 @@ vt132|DEC vt132,
|
||||
# at the top of the keyboard. The "DO" key is used as F10 to avoid conflict
|
||||
# with the key marked (ESC) on the vt220. See vt220d for an alternate mapping.
|
||||
# PF1--PF4 are used as F1--F4.
|
||||
@ -374,7 +399,7 @@
|
||||
#
|
||||
vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
|
||||
OTbs, OTpt, am, mir, xenl, xon,
|
||||
@@ -2150,7 +2159,7 @@ vt220-old|vt200-old|DEC VT220 in vt100 e
|
||||
@@ -2160,7 +2169,7 @@ vt220-old|vt200-old|DEC VT220 in vt100 e
|
||||
bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l,
|
||||
clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=^M,
|
||||
csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
|
||||
@ -383,7 +408,7 @@
|
||||
dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
|
||||
if=/usr/share/tabset/vt100, il1=\E[L, ind=\ED$<20/>,
|
||||
is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\E[D, kcud1=\E[B,
|
||||
@@ -2298,6 +2307,7 @@ vt320nam|v320n|DEC VT320 in vt100 emul.
|
||||
@@ -2308,6 +2317,7 @@ vt320nam|v320n|DEC VT320 in vt100 emul.
|
||||
# to SMASH the 1k-barrier...
|
||||
# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
|
||||
# (vt320: uncommented <fsl> --esr)
|
||||
@ -391,7 +416,7 @@
|
||||
vt320|vt300|dec vt320 7 bit terminal,
|
||||
am, eslok, hs, mir, msgr, xenl,
|
||||
cols#80, lines#24, wsl#80,
|
||||
@@ -2307,7 +2317,7 @@ vt320|vt300|dec vt320 7 bit terminal,
|
||||
@@ -2317,7 +2327,7 @@ vt320|vt300|dec vt320 7 bit terminal,
|
||||
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
|
||||
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
|
||||
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
|
||||
@ -400,7 +425,7 @@
|
||||
ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, fsl=\E[0$},
|
||||
home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
|
||||
il1=\E[L, ind=\ED,
|
||||
@@ -2740,13 +2750,14 @@ putty-vt100|VT100+ keyboard layout,
|
||||
@@ -2751,13 +2761,14 @@ putty-vt100|VT100+ keyboard layout,
|
||||
# retrieving the window title, and for setting the window size (i.e., using
|
||||
# "resize -s"), though it does not pass SIGWINCH to the application if the
|
||||
# user resizes the window with the mouse.
|
||||
@ -416,7 +441,7 @@
|
||||
dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
|
||||
flash=\E[?5h\E[?5l$<200/>, hpa=\E[%i%p1%dG,
|
||||
il=\E[%p1%dL, il1=\E[L, kdch1=\E[3~, kf1=\E[11~,
|
||||
@@ -2920,6 +2931,7 @@ xterm-r6|xterm-old|xterm X11R6 version,
|
||||
@@ -2931,6 +2942,7 @@ xterm-r6|xterm-old|xterm X11R6 version,
|
||||
use=vt100+enq,
|
||||
# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
|
||||
# The name has been changed and some aliases have been removed.
|
||||
@ -424,7 +449,7 @@
|
||||
xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
|
||||
OTbs, am, bce, km, mir, msgr, xenl,
|
||||
cols#80, it#8, lines#24, ncv@,
|
||||
@@ -2929,7 +2941,7 @@ xterm-xf86-v32|xterm terminal emulator (
|
||||
@@ -2940,7 +2952,7 @@ xterm-xf86-v32|xterm terminal emulator (
|
||||
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
|
||||
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
|
||||
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
|
||||
@ -433,9 +458,9 @@
|
||||
ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
|
||||
flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
|
||||
ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
|
||||
@@ -3285,8 +3297,26 @@ xterm-noapp|xterm with cursor keys in no
|
||||
@@ -3372,8 +3384,26 @@ xterm-noapp|xterm with cursor keys in no
|
||||
xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
|
||||
lines#24, use=xterm,
|
||||
lines#24, use=xterm-old,
|
||||
|
||||
+# For SuSE Linux: Werner Fink <werner@suse.de>
|
||||
+# Note that the modern xterm does not use escape sequences
|
||||
@ -460,7 +485,7 @@
|
||||
use=xterm-new,
|
||||
|
||||
# These entries allow access to the X titlebar and icon name as a status line.
|
||||
@@ -3379,7 +3409,7 @@ xterm-color|nxterm|generic color xterm,
|
||||
@@ -3466,7 +3496,7 @@ xterm-color|nxterm|generic color xterm,
|
||||
op=\E[m, use=xterm-r6, use=klone+color,
|
||||
|
||||
# this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
|
||||
@ -469,7 +494,7 @@
|
||||
bce,
|
||||
kdch1=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
|
||||
use=xterm-color,
|
||||
@@ -3468,10 +3498,14 @@ mgt|Multi GNOME Terminal,
|
||||
@@ -3567,10 +3597,14 @@ mgt|Multi GNOME Terminal,
|
||||
|
||||
# This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce
|
||||
# or not is debatable).
|
||||
@ -485,10 +510,10 @@
|
||||
# Konsole 1.0.1
|
||||
# (formerly known as kvt)
|
||||
#
|
||||
@@ -3559,17 +3593,18 @@ konsole|KDE console window,
|
||||
@@ -3673,17 +3707,18 @@ konsole-256color|KDE console window with
|
||||
# control/alt kf1 to kf12 \E[11;7~ to \E[24;7~
|
||||
# control/shit/alt kf1 to kf12 \E[11;8~ to \E[24;8~
|
||||
#
|
||||
# There are some problems with vttest:
|
||||
# test of character sets leaves it in line-drawing mode.
|
||||
+# Add cvvis <werner@suse.de>
|
||||
mlterm|multi lingual terminal emulator,
|
||||
am, eslok, km, mc5i, mir, msgr, npc, xenl,
|
||||
@ -507,15 +532,15 @@
|
||||
home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
|
||||
ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
|
||||
is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
|
||||
@@ -3608,6 +3643,7 @@ mlterm|multi lingual terminal emulator,
|
||||
@@ -3730,6 +3765,7 @@ mlterm+pcfkeys|fragment for PC-style fke
|
||||
# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
|
||||
# Since rxvt is not really compatible with xterm, it should be configured as
|
||||
# "rxvt" (monochrome) and "rxvt-color".
|
||||
# "rxvt" or "rxvt-color".
|
||||
+# (cvvis added by werner)
|
||||
#
|
||||
# removed dch/dch1 because they are inconsistent with bce/ech -TD
|
||||
# remove km as per tack test -TD
|
||||
@@ -3619,13 +3655,14 @@ rxvt-basic|rxvt terminal base (X Window
|
||||
@@ -3741,13 +3777,14 @@ rxvt-basic|rxvt terminal base (X Window
|
||||
clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
|
||||
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
|
||||
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
|
||||
@ -533,7 +558,7 @@
|
||||
rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m,
|
||||
rmul=\E[24m,
|
||||
rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
|
||||
@@ -3634,7 +3671,7 @@ rxvt-basic|rxvt terminal base (X Window
|
||||
@@ -3756,7 +3793,7 @@ rxvt-basic|rxvt terminal base (X Window
|
||||
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
|
||||
sgr0=\E[0m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
|
||||
smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=vt100+enq,
|
||||
@ -542,10 +567,10 @@
|
||||
# Key Codes from rxvt reference:
|
||||
#
|
||||
# Note: Shift + F1-F10 generates F11-F20
|
||||
@@ -3708,8 +3745,8 @@ rxvt-basic|rxvt terminal base (X Window
|
||||
@@ -3839,8 +3876,8 @@ rxvt-basic|rxvt terminal base (X Window
|
||||
# Removed kDN6, etc (control+shift) since rxvt does not implement this -TD
|
||||
rxvt+pcfkeys|fragment for PC-style fkeys,
|
||||
kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E2$, kLFT=\E[d,
|
||||
kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
|
||||
- kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B,
|
||||
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^,
|
||||
+ kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\EOD, kcud1=\EOB,
|
||||
@ -553,7 +578,7 @@
|
||||
kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
|
||||
kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
|
||||
kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
|
||||
@@ -3742,6 +3779,29 @@ rxvt-cygwin-native|rxvt terminal emulato
|
||||
@@ -3876,6 +3913,29 @@ rxvt-cygwin-native|rxvt terminal emulato
|
||||
acsc=0\333+\257\,\256-\^`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330~\376,
|
||||
use=rxvt-cygwin,
|
||||
|
||||
@ -583,7 +608,7 @@
|
||||
# This variant is supposed to work with rxvt 2.7.7 when compiled with
|
||||
# NO_BRIGHTCOLOR defined. rxvt needs more work...
|
||||
rxvt-16color|xterm with 16 colors like aixterm,
|
||||
@@ -3752,7 +3812,7 @@ rxvt-16color|xterm with 16 colors like a
|
||||
@@ -3893,7 +3953,7 @@ mrxvt|multitabbed rxvt,
|
||||
# Eterm 0.9.3
|
||||
#
|
||||
# removed kf0 which conflicts with kf10 -TD
|
||||
@ -592,7 +617,7 @@
|
||||
# Eterm does not implement control/shift cursor keys such as kDN6, or kPRV/kNXT
|
||||
# but does otherwise follow the rxvt+pcfkeys model -TD
|
||||
# remove nonworking flash -TD
|
||||
@@ -3766,13 +3826,13 @@ Eterm|Eterm-color|Eterm with xterm-style
|
||||
@@ -3907,13 +3967,13 @@ Eterm|Eterm-color|Eterm with xterm-style
|
||||
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
|
||||
cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
|
||||
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
|
||||
@ -608,7 +633,7 @@
|
||||
kc1=\E[8~, kc3=\E[6~, kent=\EOM, khlp=\E[28~, kmous=\E[M,
|
||||
mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
|
||||
rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=,
|
||||
@@ -4108,7 +4168,7 @@ pty|4bsd pseudo teletype,
|
||||
@@ -4249,7 +4309,7 @@ pty|4bsd pseudo teletype,
|
||||
smso=\Ea$, smul=\Ea!, use=cbunix,
|
||||
|
||||
# The codes supported by the term.el terminal emulation in GNU Emacs 19.30
|
||||
@ -617,7 +642,7 @@
|
||||
am, mir, xenl,
|
||||
cols#80, lines#24,
|
||||
bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
|
||||
@@ -4121,6 +4181,13 @@ eterm|gnu emacs term.el terminal emulati
|
||||
@@ -4262,6 +4322,13 @@ eterm|gnu emacs term.el terminal emulati
|
||||
rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
|
||||
sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m,
|
||||
smul=\E[4m,
|
||||
@ -631,7 +656,7 @@
|
||||
|
||||
# Entries for use by the `screen' program by Juergen Weigert,
|
||||
# Michael Schroeder, Oliver Laumann. The screen and
|
||||
@@ -4149,7 +4216,7 @@ screen|VT 100/ANSI X3.64 virtual termina
|
||||
@@ -4290,7 +4357,7 @@ screen|VT 100/ANSI X3.64 virtual termina
|
||||
cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
|
||||
dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
|
||||
flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
|
||||
@ -640,7 +665,7 @@
|
||||
kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
|
||||
kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
|
||||
kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
|
||||
@@ -4265,7 +4332,7 @@ screen2|old VT 100/ANSI X3.64 virtual te
|
||||
@@ -4406,7 +4473,7 @@ screen2|old VT 100/ANSI X3.64 virtual te
|
||||
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
|
||||
dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
|
||||
el=\E[K, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=, il=\E[%p1%dL,
|
||||
@ -649,7 +674,7 @@
|
||||
kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
|
||||
kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
|
||||
nel=^M^J, rc=\E8, ri=\EM, rmir=\E[4l, rmso=\E[23m,
|
||||
@@ -5998,7 +6065,7 @@ hp700-wy|HP700/41 emulating wyse30,
|
||||
@@ -6139,7 +6206,7 @@ hp700-wy|HP700/41 emulating wyse30,
|
||||
ri=\Ej, rmir=\Er, rmso=\EG0$<10/>, rmul=\EG0$<10/>,
|
||||
sgr0=\EG0$<10/>, smir=\Eq, smso=\EG4$<10/>,
|
||||
smul=\EG8$<10/>, tbc=\E0, vpa=\E[%p1%{32}%+%c,
|
||||
@ -658,7 +683,7 @@
|
||||
am, da, db, xhp,
|
||||
cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8,
|
||||
acsc=0cjgktlrmfn/q\,t5u6v8w7x., bel=^G, blink=\E&dA,
|
||||
@@ -9129,6 +9196,7 @@ msk22714|mskermit22714|UCB MS-DOS Kermit
|
||||
@@ -9270,6 +9337,7 @@ msk22714|mskermit22714|UCB MS-DOS Kermit
|
||||
# at support for the VT320 itself.
|
||||
# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu.
|
||||
# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr)
|
||||
@ -666,7 +691,7 @@
|
||||
vt320-k3|MS-Kermit 3.00's vt320 emulation,
|
||||
am, eslok, hs, km, mir, msgr, xenl,
|
||||
cols#80, it#8, lines#49, pb#9600, vt#3,
|
||||
@@ -9138,7 +9206,7 @@ vt320-k3|MS-Kermit 3.00's vt320 emulatio
|
||||
@@ -9279,7 +9347,7 @@ vt320-k3|MS-Kermit 3.00's vt320 emulatio
|
||||
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
|
||||
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
|
||||
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
|
||||
@ -675,7 +700,7 @@
|
||||
dsl=\E[0$~, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
|
||||
flash=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l,
|
||||
fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
|
||||
@@ -13413,7 +13481,7 @@ ibm3101|i3101|IBM 3101-10,
|
||||
@@ -13554,7 +13622,7 @@ ibm3101|i3101|IBM 3101-10,
|
||||
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
|
||||
el=\EI, home=\EH, hts=\E0, ind=^J, kcub1=\ED, kcud1=\EB,
|
||||
kcuf1=\EC, kcuu1=\EA, nel=^M^J, tbc=\EH,
|
||||
@ -684,7 +709,7 @@
|
||||
is2=\E S, rmacs=\E>B, rmcup=\E>B, rs2=\E S, s0ds=\E>B,
|
||||
sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;,
|
||||
sgr0=\E4@\E>B, smacs=\E>A, smcup=\E>B, use=ibm3162,
|
||||
@@ -13641,7 +13709,7 @@ lft|lft-pc850|LFT-PC850|IBM LFT PC850 De
|
||||
@@ -13782,7 +13850,7 @@ lft|lft-pc850|LFT-PC850|IBM LFT PC850 De
|
||||
sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
|
||||
sgr0=\E[0m, smacs=\E(0, smir=\E[4h, smso=\E[7m, smul=\E[4m,
|
||||
tbc=\E[3g,
|
||||
@ -694,8 +719,8 @@
|
||||
s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154,
|
||||
ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display,
|
||||
--- ncurses/Makefile.in
|
||||
+++ ncurses/Makefile.in 2007-01-31 13:34:38.000000000 +0100
|
||||
@@ -184,7 +184,7 @@ $(DESTDIR)$(libdir) :
|
||||
+++ ncurses/Makefile.in 2008-04-09 15:57:41.084024000 +0200
|
||||
@@ -183,7 +183,7 @@ $(DESTDIR)$(libdir) :
|
||||
../lib : ; mkdir $@
|
||||
|
||||
./fallback.c : $(tinfo)/MKfallback.sh
|
||||
@ -706,7 +731,7 @@
|
||||
sh $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@
|
||||
--- ncurses/curses.priv.h
|
||||
+++ ncurses/curses.priv.h 2006-05-18 16:07:15.000000000 +0200
|
||||
@@ -1202,6 +1202,8 @@ extern NCURSES_EXPORT(WINDOW *) _nc_make
|
||||
@@ -1560,6 +1560,8 @@ extern NCURSES_EXPORT(WINDOW *) _nc_make
|
||||
extern NCURSES_EXPORT(char *) _nc_trace_buf (int, size_t);
|
||||
extern NCURSES_EXPORT(char *) _nc_trace_bufcat (int, const char *);
|
||||
extern NCURSES_EXPORT(int) _nc_access (const char *, int);
|
||||
@ -764,7 +789,7 @@
|
||||
|
||||
--- ncurses/tinfo/access.c
|
||||
+++ ncurses/tinfo/access.c 2006-05-18 16:07:15.000000000 +0200
|
||||
@@ -36,6 +36,9 @@
|
||||
@@ -37,6 +37,9 @@
|
||||
|
||||
#include <tic.h>
|
||||
#include <nc_alloc.h>
|
||||
@ -772,7 +797,7 @@
|
||||
+# include <sys/fsuid.h>
|
||||
+#endif
|
||||
|
||||
MODULE_ID("$Id: access.c,v 1.12 2006/08/05 17:18:14 tom Exp $")
|
||||
MODULE_ID("$Id: access.c,v 1.14 2007/11/18 00:57:53 tom Exp $")
|
||||
|
||||
@@ -106,6 +109,30 @@ _nc_basename(char *path)
|
||||
return path + _nc_pathlast(path);
|
||||
@ -807,7 +832,7 @@
|
||||
{
|
||||
--- ncurses/tinfo/lib_setup.c
|
||||
+++ ncurses/tinfo/lib_setup.c 2006-05-18 17:52:22.000000000 +0200
|
||||
@@ -432,6 +432,9 @@ _nc_locale_breaks_acs(void)
|
||||
@@ -454,6 +454,9 @@ _nc_locale_breaks_acs(void)
|
||||
if ((env = getenv("NCURSES_NO_UTF8_ACS")) != 0) {
|
||||
return atoi(env);
|
||||
} else if ((env = getenv("TERM")) != 0) {
|
||||
@ -884,7 +909,7 @@
|
||||
if (copied != 0)
|
||||
--- test/test.priv.h
|
||||
+++ test/test.priv.h 2006-05-18 16:07:19.000000000 +0200
|
||||
@@ -429,12 +429,12 @@ extern int optind;
|
||||
@@ -472,12 +472,12 @@ extern int optind;
|
||||
#endif
|
||||
|
||||
/* out-of-band values for representing absent capabilities */
|
||||
|
@ -1,3 +1,49 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 14 17:26:53 CEST 2008 - werner@suse.de
|
||||
|
||||
- Update to test version 5.6.20080804
|
||||
* fix memory leaks in test/demo_menus
|
||||
* build-fixes for gcc 4.3.1
|
||||
* use NCURSES_MOUSE_MASK() in definition of BUTTON_RELEASE(), etc., to
|
||||
make those work properly with the "--enable-ext-mouse" configuration
|
||||
(cf: 20050205).
|
||||
* improve mlterm and mlterm+pcfkeys terminfo entries -TD
|
||||
* add null-pointer checks for cur_term in baudrate() and
|
||||
def_shell_mode(), def_prog_mode()
|
||||
* fix some memory leaks in delscreen() and wide acs.
|
||||
* modify test/ditto.c to illustrate multi-threaded use_screen().
|
||||
* finish changes to wgetch(), making it switch as needed to the
|
||||
window's actual screen when calling wrefresh() and wgetnstr(). That
|
||||
allows wgetch() to get used concurrently in different threads with
|
||||
some minor restrictions, e.g., the application should not delete a
|
||||
window which is being used in a wgetch().
|
||||
* simplify mutex's, combining the window- and screen-mutex's.
|
||||
* modify wgetch() to use the screen which corresponds to its window
|
||||
parameter rather than relying on SP; some dependent functions still
|
||||
use SP internally.
|
||||
* factor out most use of SP in lib_mouse.c, using parameter.
|
||||
* modify _nc_keypad() to make it switch temporarily as needed to the
|
||||
screen which must be updated.
|
||||
* wrap cur_term variable to help make _nc_keymap() thread-safe, and
|
||||
always set the screen's copy of this variable in set_curterm().
|
||||
* restore curs_set() state after endwin()/refresh() (report/patch
|
||||
Miroslav Lichvar)
|
||||
* corrected manpage description of setcchar()
|
||||
* fix for adding a non-spacing character at the beginning of a line
|
||||
* modify screen.* terminfo entries using new screen+fkeys to fix
|
||||
overridden keys in screen.rxvt (Debian #478094) -TD
|
||||
* simplify some loops with macros each_screen(), each_window() and
|
||||
each_ripoff().
|
||||
* fix typo in form.3x
|
||||
* add screen.rxvt terminfo entry -TD
|
||||
* modify tic -f option to format spaces as \s to prevent them from
|
||||
being lost when that is read back in unformatted strings.
|
||||
* add locks for copywin(), dupwin(), overlap(), overlay() on their
|
||||
window parameters.
|
||||
* add locks for initscr() and newterm() on updates to the SCREEN
|
||||
pointer.
|
||||
* finish table in curs_thread.3x manpage.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 7 20:20:54 CEST 2008 - coolo@suse.de
|
||||
|
||||
@ -10,9 +56,9 @@ Tue Apr 22 16:57:32 CEST 2008 - werner@suse.de
|
||||
terminfo-base to get the resolvers happy (bnc#381293)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 16 18:09:47 CEST 2008 - ro@suse.de
|
||||
Sat Apr 19 23:47:19 CEST 2008 - ro@suse.de
|
||||
|
||||
- update baselibs.conf (for package rename)
|
||||
- update baselibs.conf
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 11 18:22:32 CEST 2008 - werner@suse.de
|
||||
@ -35,12 +81,17 @@ Thu Apr 10 11:17:20 CEST 2008 - werner@suse.de
|
||||
|
||||
- Small change to make the cflags work in ncurses{w,t,tw}-config
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 9 16:43:04 CEST 2008 - werner@suse.de
|
||||
|
||||
- Update to test version 5.6.20080405 with the ABI of the upcoming
|
||||
verion 6.0. This includes already the patch for coverity report.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 8 19:20:00 CEST 2008 - werner@suse.de
|
||||
|
||||
- New sub package libncurses5 including the shared libraries and
|
||||
the required terminfo and termset data files.
|
||||
- Include the patch for coverity report
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 10 15:11:36 CET 2007 - werner@suse.de
|
||||
|
240
ncurses.spec
240
ncurses.spec
@ -2,9 +2,16 @@
|
||||
# spec file for package ncurses (Version 5.6)
|
||||
#
|
||||
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# This file and all modifications and additions to the pristine
|
||||
# package are under the same license as the package itself.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
@ -20,19 +27,20 @@ License: X11/MIT
|
||||
Group: System/Base
|
||||
AutoReqProv: on
|
||||
Version: 5.6
|
||||
Release: 83
|
||||
Release: 85
|
||||
Summary: New curses Libraries
|
||||
Source0: ncurses-5.6.tar.bz2
|
||||
Url: http://invisible-island.net/ncurses/ncurses.html
|
||||
Source1: ncurses-%{version}-20070128-patch.tar.bz2
|
||||
Source0: ncurses-5.6.tar.bz2
|
||||
Source1: ncurses-%{version}-20080804-patch.tar.bz2
|
||||
Source2: handle.linux
|
||||
Source3: README.devel
|
||||
Source4: ncurses-rpmlintrc
|
||||
Source5: tack-1.06.tar.bz2
|
||||
Patch0: ncurses-%{version}.dif
|
||||
Patch1: ncurses-5.3-printw.dif
|
||||
Patch2: ncurses-5.6-pthread.dif
|
||||
Patch3: ncurses-5.6-overwrite.dif
|
||||
Patch4: ncurses-5.6-coverity.patch
|
||||
Patch4: ncurses-5.6-tack.dif
|
||||
Patch5: ncurses-5.6-gpm.dif
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
%global _sysconfdir /etc
|
||||
@ -108,6 +116,8 @@ Authors:
|
||||
Eric S. Raymond <esr@thyrsus.com>
|
||||
Thomas E. Dickey <dickey@invisible-island.net>
|
||||
|
||||
%if %abi == 5
|
||||
|
||||
%package -n libncurses5
|
||||
License: X11/MIT
|
||||
Summary: The New curses Libraries
|
||||
@ -124,6 +134,34 @@ applications for controling its output and input to the screen.
|
||||
|
||||
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Zeyd M. Ben-Halim <zmbenhal@netcom.com>
|
||||
Eric S. Raymond <esr@thyrsus.com>
|
||||
Thomas E. Dickey <dickey@invisible-island.net>
|
||||
Juergen Pfeifer <Juergen.Pfeifer@t-online.de>
|
||||
Pavel Curtis
|
||||
|
||||
%endif
|
||||
|
||||
%package -n libncurses6
|
||||
License: X11/MIT
|
||||
Summary: The New curses Libraries
|
||||
Group: System/Libraries
|
||||
Requires: terminfo-base
|
||||
%if %abi == 5
|
||||
Provides: ncurses = 6.0
|
||||
%else
|
||||
Provides: ncurses = %{version}
|
||||
%endif
|
||||
AutoReqProv: on
|
||||
|
||||
%description -n libncurses6
|
||||
The ncurses library is used by the most curses based terminal
|
||||
applications for controling its output and input to the screen.
|
||||
|
||||
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Zeyd M. Ben-Halim <zmbenhal@netcom.com>
|
||||
@ -145,7 +183,7 @@ file and contains information about any known terminal. The ncurses
|
||||
library makes use of this database to use terminals correctly. If you
|
||||
just use the Linux console, xterm, and VT100, you probably will not
|
||||
need this database -- a minimal /usr/share/terminfo tree for these
|
||||
terminals is already included in the ncurses package.
|
||||
terminals is already included in the terminfo-base package.
|
||||
|
||||
|
||||
|
||||
@ -200,11 +238,16 @@ Authors:
|
||||
|
||||
%prep
|
||||
%setup -q -n ncurses-%{version} -b0
|
||||
tar Oxfj %{SOURCE1} | patch -p1 -s
|
||||
rm -fr tack
|
||||
rm -f Ada95/src/terminal_interface-curses.adb
|
||||
rm -f mkinstalldirs
|
||||
tar Oxfj %{S:1} | patch -p1 -s
|
||||
tar xfj %{S:5}
|
||||
ln -sf tack-* tack
|
||||
%patch -P 1 -p0 -b .va
|
||||
%patch -P 2 -p0 -b .pt
|
||||
%patch -P 3 -p0 -b .ow
|
||||
%patch -P 4 -p0 -b .cv
|
||||
%patch -P 4 -p0 -b .hs
|
||||
%patch -P 5 -p0 -b .gpm
|
||||
%patch -P 0 -p0
|
||||
|
||||
@ -278,7 +321,15 @@ tar Oxfj %{SOURCE1} | patch -p1 -s
|
||||
--enable-sigwinch \
|
||||
--enable-colorfgbg \
|
||||
%if %abi >= 6
|
||||
--with-pthread \
|
||||
--enable-ext-mouse \
|
||||
--disable-widec \
|
||||
--enable-ext-colors \
|
||||
%else
|
||||
--without-pthread \
|
||||
--disable-ext-mouse \
|
||||
--disable-widec \
|
||||
--disable-ext-colors \
|
||||
%endif
|
||||
--enable-wgetch-events \
|
||||
--prefix=%{_prefix} \
|
||||
@ -288,6 +339,7 @@ tar Oxfj %{SOURCE1} | patch -p1 -s
|
||||
--mandir=%{_mandir} \
|
||||
--includedir=%{_incdir} \
|
||||
"${WITHCHTYPE}" \
|
||||
--disable-widec \
|
||||
--with-ticlib=tic
|
||||
#
|
||||
# This is a hack to be able to boot strap
|
||||
@ -298,7 +350,7 @@ tar Oxfj %{SOURCE1} | patch -p1 -s
|
||||
make -C progs termsort.c transform.h infocmp tic
|
||||
rm -f ncurses/fallback.c
|
||||
PATH=$PWD/progs:$OPATH
|
||||
cd ncurses/
|
||||
pushd ncurses/
|
||||
TERMINFO=$PWD/tmp
|
||||
export TERMINFO
|
||||
mkdir -p $TERMINFO
|
||||
@ -307,7 +359,7 @@ tar Oxfj %{SOURCE1} | patch -p1 -s
|
||||
make fallback.c
|
||||
rm -rf $TERMINFO
|
||||
unset TERMINFO
|
||||
cd ../
|
||||
popd
|
||||
PATH=$OPATH
|
||||
#
|
||||
# Refresh second install path
|
||||
@ -317,20 +369,46 @@ tar Oxfj %{SOURCE1} | patch -p1 -s
|
||||
#
|
||||
# Now rebuild libncurses and do the rest of this job
|
||||
#
|
||||
make && make install DESTDIR=%{root} includedir=%{_incdir}
|
||||
make
|
||||
make install DESTDIR=%{root} includedir=%{_incdir}
|
||||
#
|
||||
# Check for tack program on base of above ncurses
|
||||
#
|
||||
pushd tack-*/
|
||||
ldd ./tack
|
||||
popd
|
||||
test ! -L tack || rm -f tack
|
||||
#
|
||||
# The configure line
|
||||
#
|
||||
c=`grep '^ *$ *\./configure' config.log`
|
||||
c=$(grep '^ *$ *\./configure' config.log)
|
||||
%if %abi < 6
|
||||
#
|
||||
# Now use --with-pthread for reentrant pthread support (abi > 5).
|
||||
#
|
||||
eval ./${c#*./} --with-pthread --enable-ext-mouse --disable-widec --disable-ext-colors --without-progs
|
||||
inc=%{_incdir}/ncurses6
|
||||
lib=%{_libdir}/ncurses6
|
||||
make && make install.libs install.includes DESTDIR=%{root} includedir=${inc} libdir=${lib}
|
||||
for h in %{root}${inc}/*.h ; do
|
||||
test -e "$h" || continue
|
||||
h=${h##*/}
|
||||
for t in %{root}${inc}/*.h ; do
|
||||
test -e "$t" || continue
|
||||
test ! -L $t || continue
|
||||
sed -ri "s;(#include[[:blank:]]+<)(${h}>);\1${inc##*/}/\2;" $t
|
||||
done
|
||||
done
|
||||
%endif
|
||||
#
|
||||
# Now use --enable-widec for UTF8/wide character support.
|
||||
# The libs with 16 bit wide characters are binary incompatible
|
||||
# to the normal 8bit wide character libs.
|
||||
#
|
||||
%if %abi >= 6
|
||||
eval ./${c#*./} --enable-widec --enable-ext-colors --without-progs
|
||||
eval ./${c#*./} --with-pthread --enable-ext-mouse --enable-widec --enable-ext-colors --without-progs
|
||||
%else
|
||||
eval ./${c#*./} --enable-widec --without-progs
|
||||
eval ./${c#*./} --disable-ext-mouse --enable-widec --disable-ext-colors --without-progs
|
||||
%endif
|
||||
make && make install.libs install.includes DESTDIR=%{root} includedir=%{_incdir}/ncursesw
|
||||
for h in %{root}%{_incdir}/ncursesw/*.h ; do
|
||||
@ -342,6 +420,24 @@ tar Oxfj %{SOURCE1} | patch -p1 -s
|
||||
sed -ri "s;(#include[[:blank:]]+<)(${h}>);\1ncursesw/\2;" $t
|
||||
done
|
||||
done
|
||||
%if %abi < 6
|
||||
#
|
||||
# Do both --enable-widec and --with-pthread (abi > 5).
|
||||
#
|
||||
eval ./${c#*./} --with-pthread --enable-ext-mouse --enable-widec --enable-ext-colors --without-progs
|
||||
inc=%{_incdir}/ncursesw6
|
||||
lib=%{_libdir}/ncurses6
|
||||
make && make install.libs install.includes DESTDIR=%{root} includedir=${inc} libdir=${lib}
|
||||
for h in %{root}${inc}/*.h ; do
|
||||
test -e "$h" || continue
|
||||
h=${h##*/}
|
||||
for t in %{root}${inc}/*.h ; do
|
||||
test -e "$t" || continue
|
||||
test ! -L $t || continue
|
||||
sed -ri "s;(#include[[:blank:]]+<)(${h}>);\1${inc##*/}/\2;" $t
|
||||
done
|
||||
done
|
||||
%endif
|
||||
|
||||
%install
|
||||
GZIP="-9"
|
||||
@ -349,14 +445,49 @@ tar Oxfj %{SOURCE1} | patch -p1 -s
|
||||
(cd %{root}/; tar -cpsSf - *)|tar -xpsSf - -C %{buildroot}/
|
||||
rm -rf %{root}
|
||||
mkdir %{buildroot}/%{_lib}
|
||||
for lib in libncurses libncursesw
|
||||
for model in libncurses libncursest libncursesw libncursestw
|
||||
do
|
||||
mv %{buildroot}%{_libdir}/${lib}.so.* %{buildroot}/%{_lib}/
|
||||
ln -sf /%{_lib}/${lib}.so.%{version} %{buildroot}%{_libdir}/${lib}.so
|
||||
mv %{buildroot}%{_libdir}/${model}.so.* %{buildroot}/%{_lib}/ || continue
|
||||
for lib in %{buildroot}/%{_lib}/${model}.so.* ; do
|
||||
test -e "${lib}" || continue
|
||||
test ! -L "${lib}" || continue
|
||||
lib=${lib#%{buildroot}}
|
||||
ln -sf ${lib} %{buildroot}%{_libdir}/${model}.so
|
||||
done
|
||||
done
|
||||
chmod 0755 %{buildroot}/%{_lib}/lib*.so.*
|
||||
chmod 0755 %{buildroot}/%{_libdir}/lib*.so.*
|
||||
chmod a-x %{buildroot}/%{_libdir}/lib*.a
|
||||
if test -d %{buildroot}%{_libdir}/ncurses6 ; then
|
||||
mv %{buildroot}%{_libdir}/ncurses6/*.so.6* %{buildroot}/%{_libdir}/
|
||||
for lib in %{buildroot}%{_libdir}/ncurses6/*.so
|
||||
do
|
||||
test -L "${lib}" || continue
|
||||
case "${lib##*/}" in
|
||||
libncurses*) ln -sf /%{_lib}/${lib##*/}.6 ${lib} ;;
|
||||
*) ln -sf ../${lib##*/}.6 ${lib} ;;
|
||||
esac
|
||||
done
|
||||
for model in libncurses libncursest libncursesw libncursestw
|
||||
do
|
||||
mv %{buildroot}%{_libdir}/${model}.so.6* %{buildroot}/%{_lib}/ || continue
|
||||
done
|
||||
for lib in %{buildroot}/%{_lib}/${model}.so.6* ; do
|
||||
test -e "${lib}" || continue
|
||||
test ! -L "${lib}" || continue
|
||||
lib=${lib#%{buildroot}}
|
||||
ln -sf ${lib} %{buildroot}%{_libdir}/${model}.so
|
||||
done
|
||||
chmod 0755 %{buildroot}/%{_lib}/lib*.so.6*
|
||||
chmod 0755 %{buildroot}/%{_libdir}/lib*.so.6*
|
||||
chmod a-x %{buildroot}/%{_libdir}/ncurses6/lib*.a
|
||||
sed -ri -e 's|(THIS=).*|\1"ncurses6"|' \
|
||||
-e 's|(-L.*/lib)|\1/ncurses6|' \
|
||||
-e 's|-l\$\{THIS\}|-l\$\{THIS%%6\}|' %{buildroot}%{_bindir}/ncurses6-config
|
||||
sed -ri -e 's|(THIS=).*|\1"ncursesw6"|' \
|
||||
-e 's|(-L.*/lib)|\1/ncurses6|' \
|
||||
-e 's|-l\$\{THIS\}|-l\$\{THIS%%6\}|' %{buildroot}%{_bindir}/ncursesw6-config
|
||||
fi
|
||||
test -n "%{buildroot}" || ldconfig -N
|
||||
mkdir -p %{buildroot}%{_defaultdocdir}/ncurses
|
||||
bzip2 -c misc/terminfo.src > misc/terminfo.src.bz2
|
||||
@ -433,10 +564,16 @@ tar Oxfj %{SOURCE1} | patch -p1 -s
|
||||
rm -f %{buildroot}%{_prefix}/lib/terminfo
|
||||
mkdir -p %{buildroot}%{_incdir}/ncurses
|
||||
ln -sf ../ncurses.h %{buildroot}%{_incdir}/ncurses/
|
||||
%if %abi == 5
|
||||
|
||||
%post -n libncurses5 -p /sbin/ldconfig
|
||||
|
||||
%postun -n libncurses5 -p /sbin/ldconfig
|
||||
%endif
|
||||
|
||||
%post -n libncurses6 -p /sbin/ldconfig
|
||||
|
||||
%postun -n libncurses6 -p /sbin/ldconfig
|
||||
|
||||
%files -n terminfo-base -f default.list
|
||||
%defattr(-,root,root)
|
||||
@ -459,11 +596,18 @@ tar Oxfj %{SOURCE1} | patch -p1 -s
|
||||
%doc %{_mandir}/man1/tput.1.gz
|
||||
%doc %{_mandir}/man1/tset.1.gz
|
||||
%doc %{_mandir}/man5/*.gz
|
||||
%if %abi == 5
|
||||
|
||||
%files -n libncurses5
|
||||
%defattr(-,root,root)
|
||||
/%{_lib}/lib*.so.*
|
||||
%{_libdir}/lib*.so.*
|
||||
/%{_lib}/lib*.so.5*
|
||||
%{_libdir}/lib*.so.5*
|
||||
%endif
|
||||
|
||||
%files -n libncurses6
|
||||
%defattr(-,root,root)
|
||||
/%{_lib}/lib*.so.6*
|
||||
%{_libdir}/lib*.so.6*
|
||||
|
||||
%files -n ncurses-devel
|
||||
%defattr(-,root,root)
|
||||
@ -476,10 +620,15 @@ tar Oxfj %{SOURCE1} | patch -p1 -s
|
||||
%{_bindir}/tic
|
||||
%dir %{_incdir}/ncurses/
|
||||
%dir %{_incdir}/ncursesw/
|
||||
%dir %{_incdir}/ncurses6/
|
||||
%dir %{_incdir}/ncursesw6/
|
||||
%dir %{_libdir}/ncurses6/
|
||||
%{_incdir}/*.h
|
||||
%{_incdir}/ncurses*/*.h
|
||||
%{_libdir}/lib*.a
|
||||
%{_libdir}/lib*.so
|
||||
%{_libdir}/ncurses6/lib*.a
|
||||
%{_libdir}/ncurses6/lib*.so
|
||||
%doc %{_mandir}/man1/captoinfo.1.gz
|
||||
%doc %{_mandir}/man1/infocmp.1.gz
|
||||
%doc %{_mandir}/man1/infotocap.1.gz
|
||||
@ -496,13 +645,56 @@ tar Oxfj %{SOURCE1} | patch -p1 -s
|
||||
%defattr(-,root,root)
|
||||
|
||||
%changelog
|
||||
* Thu Aug 14 2008 werner@suse.de
|
||||
- Update to test version 5.6.20080804
|
||||
* fix memory leaks in test/demo_menus
|
||||
* build-fixes for gcc 4.3.1
|
||||
* use NCURSES_MOUSE_MASK() in definition of BUTTON_RELEASE(), etc., to
|
||||
make those work properly with the "--enable-ext-mouse" configuration
|
||||
(cf: 20050205).
|
||||
* improve mlterm and mlterm+pcfkeys terminfo entries -TD
|
||||
* add null-pointer checks for cur_term in baudrate() and
|
||||
def_shell_mode(), def_prog_mode()
|
||||
* fix some memory leaks in delscreen() and wide acs.
|
||||
* modify test/ditto.c to illustrate multi-threaded use_screen().
|
||||
* finish changes to wgetch(), making it switch as needed to the
|
||||
window's actual screen when calling wrefresh() and wgetnstr(). That
|
||||
allows wgetch() to get used concurrently in different threads with
|
||||
some minor restrictions, e.g., the application should not delete a
|
||||
window which is being used in a wgetch().
|
||||
* simplify mutex's, combining the window- and screen-mutex's.
|
||||
* modify wgetch() to use the screen which corresponds to its window
|
||||
parameter rather than relying on SP; some dependent functions still
|
||||
use SP internally.
|
||||
* factor out most use of SP in lib_mouse.c, using parameter.
|
||||
* modify _nc_keypad() to make it switch temporarily as needed to the
|
||||
screen which must be updated.
|
||||
* wrap cur_term variable to help make _nc_keymap() thread-safe, and
|
||||
always set the screen's copy of this variable in set_curterm().
|
||||
* restore curs_set() state after endwin()/refresh() (report/patch
|
||||
Miroslav Lichvar)
|
||||
* corrected manpage description of setcchar()
|
||||
* fix for adding a non-spacing character at the beginning of a line
|
||||
* modify screen.* terminfo entries using new screen+fkeys to fix
|
||||
overridden keys in screen.rxvt (Debian #478094) -TD
|
||||
* simplify some loops with macros each_screen(), each_window() and
|
||||
each_ripoff().
|
||||
* fix typo in form.3x
|
||||
* add screen.rxvt terminfo entry -TD
|
||||
* modify tic -f option to format spaces as \s to prevent them from
|
||||
being lost when that is read back in unformatted strings.
|
||||
* add locks for copywin(), dupwin(), overlap(), overlay() on their
|
||||
window parameters.
|
||||
* add locks for initscr() and newterm() on updates to the SCREEN
|
||||
pointer.
|
||||
* finish table in curs_thread.3x manpage.
|
||||
* Wed May 07 2008 coolo@suse.de
|
||||
- we need to obsolete ncurses 5.6 too, it's 10.3's version
|
||||
* Tue Apr 22 2008 werner@suse.de
|
||||
- Split ncurses into two separate packages ncurses-utils and
|
||||
terminfo-base to get the resolvers happy (bnc#381293)
|
||||
* Wed Apr 16 2008 ro@suse.de
|
||||
- update baselibs.conf (for package rename)
|
||||
* Sun Apr 20 2008 ro@suse.de
|
||||
- update baselibs.conf
|
||||
* Fri Apr 11 2008 werner@suse.de
|
||||
- Do not dlopen libgpm if already loaded by runtime linker
|
||||
* Thu Apr 10 2008 lrupp@suse.de
|
||||
@ -512,10 +704,12 @@ tar Oxfj %{SOURCE1} | patch -p1 -s
|
||||
for multilib support
|
||||
* Thu Apr 10 2008 werner@suse.de
|
||||
- Small change to make the cflags work in ncurses{w,t,tw}-config
|
||||
* Wed Apr 09 2008 werner@suse.de
|
||||
- Update to test version 5.6.20080405 with the ABI of the upcoming
|
||||
verion 6.0. This includes already the patch for coverity report.
|
||||
* Tue Apr 08 2008 werner@suse.de
|
||||
- New sub package libncurses5 including the shared libraries and
|
||||
the required terminfo and termset data files.
|
||||
- Include the patch for coverity report
|
||||
* Mon Dec 10 2007 werner@suse.de
|
||||
- Avoid endless loop in case of including the wrapper header
|
||||
* Wed Dec 05 2007 werner@suse.de
|
||||
|
3
tack-1.06.tar.bz2
Normal file
3
tack-1.06.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2c16b0244f1808d1edf32ecbeb4be6ad2b8d5b7aca6a5386af3b7eaae796fd27
|
||||
size 129237
|
Loading…
Reference in New Issue
Block a user