OBS User unknown 2008-08-15 20:20:03 +00:00 committed by Git OBS Bridge
parent a3921eb265
commit 3d4c11d216
12 changed files with 715 additions and 861 deletions

View File

@ -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

View File

@ -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"

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:322cb2dbbd37327df2e2cd90325d06c862f598a01ffcb0c72a2992d939775966
size 153357

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bf49c5db276114b8158ac969b51ae2d6e80c9e2bddc4bf6a4d28db929ac3a46c
size 507144

View File

@ -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));

View File

@ -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

View File

@ -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
View 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@

View File

@ -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 */

View File

@ -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

View File

@ -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
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2c16b0244f1808d1edf32ecbeb4be6ad2b8d5b7aca6a5386af3b7eaae796fd27
size 129237