snapshot of project "ncurses", label v1_9_9e_e307_960713

This commit is contained in:
Thomas E. Dickey 1996-07-14 03:41:46 -04:00
parent a1bfb3a089
commit 5ad35d9728
22 changed files with 1127 additions and 618 deletions

11
NEWS
View File

@ -3,6 +3,17 @@ started working with Pavel Curtis' original work, pcurses, in 1992:
### ncurses-1.9.9e -> 1.9.9?
960713 - snapshot
+ always check for <sys/bsdtypes.h> since ISC needs it to declare
fd_set (Juergen Pfeifer)
+ install shared-libraries on NetBSD/FreeBSD with ABI-version (reported
by several people: Juergen Pfeifer, Mike Long)
+ add LOCAL_LDFLAGS2 symbol (Juergen Pfeifer)
+ corrected prototype for delay_output() -- bump ABI to 3.2
+ terminfo patches #306/307 from Eric.
+ moved logic that filters out rmul and rmso from setupterm to newterm
where it is less likely to interfere with termcap applications.
960707
+ rollback Eric's #305 change to terminfo.src (it breaks existing
applications, e.g., 'less 290').

21
aclocal.m4 vendored
View File

@ -1,4 +1,4 @@
dnl $Id: aclocal.m4,v 1.29 1996/07/08 00:24:57 tom Exp $
dnl $Id: aclocal.m4,v 1.31 1996/07/14 01:07:59 tom Exp $
dnl Macros used in NCURSES auto-configuration script.
dnl
dnl ---------------------------------------------------------------------------
@ -456,6 +456,8 @@ AC_DEFUN([NC_LIB_SUFFIX],
profile) $2='_p.a' ;;
shared)
case $nc_cv_systype in
NetBSD|FreeBSD)
$2='.so.$(ABI_VERSION)' ;;
HP_UX) $2='.sl' ;;
*) $2='.so' ;;
esac
@ -768,6 +770,8 @@ dnl Note: $(LOCAL_LDFLAGS) is used to link executables that will run within the
dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
dnl We avoid compiling-in a ../lib path for the shared library since that can
dnl lead to unexpected results at runtime.
dnl $(LOCAL_LDFLAGS2) has the same intention but assumes that the shared libraries
dnl are compiled in ../../lib
dnl
dnl The variable 'nc_cv_do_symlinks' is used to control whether we configure
dnl to install symbolic links to the rel/abi versions of shared libraries.
@ -778,6 +782,7 @@ AC_DEFUN([NC_SHARED_OPTS],
AC_REQUIRE([NC_SYSTYPE])
AC_REQUIRE([NC_VERSION])
LOCAL_LDFLAGS=
LOCAL_LDFLAGS2=
nc_cv_do_symlinks=no
nc_cv_rm_so_locs=no
@ -808,17 +813,13 @@ AC_DEFUN([NC_SHARED_OPTS],
MK_SHARED_LIB="gcc -o \$[@].\$(REL_VERSION) -shared -Wl,-soname,\`basename \$[@].\$(ABI_VERSION)\`,-stats"
if test $DFT_LWR_MODEL = "shared" ; then
LOCAL_LDFLAGS='-Wl,-rpath,../lib'
LOCAL_LDFLAGS2='-Wl,-rpath,../../lib'
fi
nc_cv_do_symlinks=yes
;;
NetBSD)
NetBSD|FreeBSD)
CC_SHARED_OPTS='-fpic -DPIC'
MK_SHARED_LIB='ld -Bshareable -o $[@]'
;;
FreeBSD)
CC_SHARED_OPTS='-fpic -DPIC'
MK_SHARED_LIB="ld -Bshareable -o \$[@].\$(REL_VERSION)"
nc_cv_do_symlinks=yes
MK_SHARED_LIB="ld -Bshareable -o \$[@]"
;;
OSF1|MLS+)
# tested with OSF/1 V3.2 and 'cc'
@ -828,6 +829,7 @@ AC_DEFUN([NC_SHARED_OPTS],
MK_SHARED_LIB="ld -o \$[@].\$(REL_VERSION) -shared -soname \`basename \$[@].\$(ABI_VERSION)\`"
if test $DFT_LWR_MODEL = "shared" ; then
LOCAL_LDFLAGS='-Wl,-rpath,../lib'
LOCAL_LDFLAGS2='-Wl,-rpath,../../lib'
fi
nc_cv_do_symlinks=yes
nc_cv_rm_so_locs=yes
@ -863,6 +865,7 @@ AC_DEFUN([NC_SHARED_OPTS],
AC_SUBST(CC_SHARED_OPTS)
AC_SUBST(MK_SHARED_LIB)
AC_SUBST(LOCAL_LDFLAGS)
AC_SUBST(LOCAL_LDFLAGS2)
])dnl
dnl ---------------------------------------------------------------------------
dnl Check for datatype 'speed_t', which is normally declared via either
@ -953,7 +956,7 @@ changequote(<<, >>)dnl
nc_cv_gnat_version=`$nc_ada_make -v 2>&1 | grep '[0-9].[0-9][0-9]*' |\
sed -e 's/[^0-9 \.]//g' | $AWK '{print $<<1>>;}'`
case $nc_cv_gnat_version in
3.0[4-9]|3.[1-9]*|[4-9].*)
3.0[5-9]|3.[1-9]*|[4-9].*)
ac_cv_prog_gnat_correct=yes
;;
*) echo Unsupported GNAT version $nc_cv_gnat_version. Disabling Ada95 binding.

View File

@ -1,7 +1,7 @@
dnl $Id: configure.in,v 1.24 1996/07/06 18:15:56 tom Exp $
dnl $Id: configure.in,v 1.25 1996/07/14 01:06:54 tom Exp $
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.9)
AC_REVISION($Revision: 1.24 $)
AC_REVISION($Revision: 1.25 $)
AC_INIT(ncurses/lib_initscr.c)
NC_VERSION
@ -219,6 +219,7 @@ getopt.h \
libc.h \
limits.h \
locale.h \
sys/bsdtypes.h \
sys/ioctl.h \
sys/param.h \
sys/select.h \
@ -246,10 +247,11 @@ if test -z "$GCC"; then
fi;fi
# check for ISC (this may also define _POSIX_SOURCE)
# Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
if test "$ISC" = yes ; then
AC_CHECK_LIB(main,cposix)
AC_CHECK_LIB(main,inet,,,"$LIBS")
AC_CHECK_HEADERS( sys/bsdtypes.h sys/termio.h )
AC_CHECK_HEADERS( sys/termio.h )
fi
# check for SCO. this is a hack, and should be split into individual

View File

@ -16,7 +16,7 @@ SHELL = /bin/sh
# If a new ncurses has an incompatible application binary interface than
# previous one, the ABI version should be changed.
VERSION = 1.9.9g
SHARED_ABI = 3.1
SHARED_ABI = 3.2
dist: announce.html misc/ncurses-intro.doc misc/hackguide.doc
(cd ..; tar cvf ncurses-$(VERSION).tar `sed <ncurses-$(VERSION)/MANIFEST 's/^./ncurses-$(VERSION)/'`; gzip ncurses-$(VERSION).tar)

View File

@ -1222,6 +1222,21 @@ capalias GG IGNORE XENIX acs-glitch
#
capalias kq %1 IBM key_help
#
# Iris extensions:
#
capalias HS mh IRIS enter_dim_mode
#
# Tektronix extensions:
#
capalias KA k; Tek key_f10
capalias KB F1 Tek key_f11
capalias KC F2 Tek key_f12
capalias KD F3 Tek key_f13
capalias KE F4 Tek key_f14
capalias KF F5 Tek key_f15
capalias BC Sb Tek set_background
capalias FC Sf Tek set_foreground
#
# There are also the following:
#
# XENIX XENIX variable name name clash with terminfo?

View File

@ -360,7 +360,7 @@ extern int copywin(const WINDOW*,WINDOW*,int,int,int,int,int,int,int); /* implem
extern int curs_set(int); /* implemented */
extern int def_prog_mode(void); /* implemented */
extern int def_shell_mode(void); /* implemented */
extern int delay_output(float); /* implemented */
extern int delay_output(int); /* implemented */
extern int delch(void); /* generated */
extern void delscreen(SCREEN *); /* implemented */
extern int delwin(WINDOW *); /* implemented */
@ -929,7 +929,7 @@ extern int wvline_set(WINDOW *, const cchar_t *, int); /* missing */
#define mvwgetnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n))
#define mvwgetstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str))
#define mvwhline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline(win,c,n))
#define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? ERR : winch(win))
#define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? (chtype)ERR : winch(win))
#define mvwinchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n))
#define mvwinchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winchstr(win,s))
#define mvwinnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n))
@ -1239,7 +1239,7 @@ extern bool no_optimize; /* suppress optimization */
/* other non-XSI functions */
extern int mcprint(char *, int); /* direct data to printer */
extern size_t mcprint(char *, size_t); /* direct data to printer */
extern int has_key(int); /* do we have given key? */
#endif /* __NCURSES_H */

View File

@ -70,6 +70,15 @@ PS pf XENIX prtr_on
PU kP XENIX key_ppage
RT @8 XENIX kent
UP ku XENIX kcuu1
KA k; Tek key_f10
KB F1 Tek key_f11
KC F2 Tek key_f12
KD F3 Tek key_f13
KE F4 Tek key_f14
KF F5 Tek key_f15
BC Sb Tek set_background
FC Sf Tek set_foreground
HS mh Iris enter_dim_mode
.TE
.PP
XENIX termcap also used to have a set of extension capabilities

View File

@ -982,9 +982,40 @@ than the power-up default background; these should have the boolean capability
.PP
To change the current foreground or background color on a Tektronix-type
terminal, use \fBsetaf\fR (set ANSI foreground) and \fBsetab\fR (set ANSI
background). These take one parameter, the color number. On an HP-like
terminal, use \fBscp\fR with a color-pair number parameter to set which
color pair is current.
background) or \fBsetf\fR (set foreground) and \fBsetb\fR (set background).
These take one parameter, the color number. The SVr4 documentation describes
only \fBsetaf\fR/\fBsetab\fR; the XPG4 draft says that "If the terminal
supports ANSI escape sequences to set background and foreground, they should
be coded as \fBsetaf\fR and \fBsetab\fR, respectively. If the terminal
supports other escape sequences to set background and foreground, they should
be coded as \fBsetf\fR and \fBsetb\fR, respectively. The \fIvidputs()\fR
function and the refresh functions use \fBsetaf\fR and \fBsetab\fR if they are
defined."
.PP
The \fBsetaf\fR/\fBsetab\fR and \fBsetf\fR/\fBsetb\fR capabilities take a
single numeric argument each. Argument values 0-7 are portably defined as
follows (the middle column is the symbolic #define available in the header for
the \fBcurses\fR or \fBncurses\fR libraries). The terminal hardware is free to
map these as it likes, but the RGB values indicate normal locations in color
space.
.PP
.TS H
.center;
c c c c
l l n l.
\fBColor #define Value RGB
black \fBCOLOR_BLACK\fR 0 0, 0, 0
red \fBCOLOR_RED\ \fR 1 max,0,0
green \fBCOLOR_GREEN\fR 2 0,max,0
yellow \fBCOLOR_YELLOW\fR 3 max,max,0
blue \fBCOLOR_BLUE\fR 4 0,0,max
magenta \fBCOLOR_MAGENTA\fR 5 max,0,max
cyan \fBCOLOR_CYAN\fR 6 0,max,max
white \fBCOLOR_WHITE\fR 7 max,max,max
.TE
.PP
On an HP-like terminal, use \fBscp\fR with a color-pair number parameter to set
which color pair is current.
.PP
On a Tektronix-like terminal, the capability \fBccc\fR may be present to
indicate that colors can be modified. If so, the \fBinitc\fR capability will

View File

@ -90,7 +90,7 @@ Restrict output to a given subset. This option is for use with archaic
versions of terminfo like those on SVr1, Ultrix, or HP/UX that don't support
the full set of SVR4/XSI Curses terminfo; and outright broken ports like AIX
that have their own extensions incompatible with SVr4/XSI. Available subsets
are "SVr1", "Ultrix", "HP", "BSD" and AIX"; see \fBterminfo\fR(\*n) for details.
are "SVr1", "Ultrix", "HP", "BSD" and "AIX"; see \fBterminfo\fR(\*n) for details.
.TP
\fI-r\fR
Force entry resolution (so there are no remaining tc capabilities) even

File diff suppressed because it is too large Load Diff

View File

@ -626,7 +626,7 @@ int const parametrized) /* do % translations if 1, pad translations if >=0 */
if (ch1)
c1 = ch1;
if (is7bits(c1) && isprint(c1))
bufptr = save_char(bufptr, c1);
bufptr = save_char(bufptr, (char)c1);
else
{
if (c1 == (c1 & 0x1f)) /* iscntrl() returns T on 255 */

View File

@ -173,7 +173,7 @@ start_token:
/* have to make some punctuation chars legal for terminfo */
if (!isalnum(ch) && !strchr(terminfo_punct, (char)ch)) {
_nc_warning("Illegal character (expected alphanumeric or %s) - %s",
terminfo_punct, _tracechar(ch));
terminfo_punct, _tracechar((chtype)ch));
_nc_panic_mode(separator);
goto start_token;
}
@ -321,7 +321,7 @@ start_token:
case '@':
if ((ch = next_char()) != separator)
_nc_warning("Missing separator after `%s', have %s",
buffer, _tracechar(ch));
buffer, _tracechar((chtype)ch));
_nc_curr_token.tk_name = buffer;
type = CANCEL;
break;
@ -358,7 +358,7 @@ start_token:
/* just to get rid of the compiler warning */
type = UNDEF;
_nc_warning("Illegal character - %s",
_tracechar(ch));
_tracechar((chtype)ch));
}
} /* end else (first_column == FALSE) */
} /* end else (ch != EOF) */
@ -478,7 +478,7 @@ chtype ch, last_ch = '\0';
_nc_warning("Non-octal digit `%c' in \\ sequence", c);
/* allow the digit; it'll do less harm */
} else {
push_back(c);
push_back((char)c);
break;
}
}

View File

@ -60,6 +60,22 @@ char *t = getenv("NCURSES_TRACE");
if (setupterm(term, fileno(ofp), &errret) == ERR)
return NULL;
/*
* Check for mismatched graphic-rendition capabilities. Most svr4
* terminfo tree contain entries that have rmul or rmso equated to sgr0
* (Solaris curses copes with those entries). We do this only for
* curses, since many termcap applications assume that smso/rmso and
* smul/rmul are paired, and will not function properly if we remove
* rmso or rmul. Curses applications shouldn't be looking at this
* detail.
*/
if (exit_attribute_mode) {
#define SGR0_FIX(mode) if (mode != 0 && !strcmp(mode, exit_attribute_mode)) \
mode = 0
SGR0_FIX(exit_underline_mode);
SGR0_FIX(exit_standout_mode);
}
/* optional optimization hack -- do before any output to ofp */
#if HAVE_SETVBUF || HAVE_SETBUFFER
{

View File

@ -26,11 +26,11 @@
#include <errno.h>
#include <string.h>
int mcprint(char *data, int len)
size_t mcprint(char *data, size_t len)
/* ship binary character data to the printer via mc4/mc5/mc5p */
{
char *mybuf, *switchon;
int onsize, offsize, res;
size_t onsize, offsize, res;
errno = 0;
if (!prtr_non && (!prtr_on || !prtr_off))

View File

@ -262,18 +262,6 @@ struct term *term_ptr;
strncpy(ttytype, cur_term->type.term_names, NAMESIZE - 1);
ttytype[NAMESIZE - 1] = '\0';
/*
* Check for mismatched graphic-rendition capabilities. Most
* svr4 terminfo tree contain entries that have rmul or rmso
* equated to sgr0 (Solaris curses copes with those entries).
*/
if (exit_attribute_mode) {
#define SGR0_FIX(mode) if (mode != 0 && !strcmp(mode, exit_attribute_mode)) \
mode = 0
SGR0_FIX(exit_underline_mode);
SGR0_FIX(exit_standout_mode);
}
/*
* Allow output redirection. This is what SVr3 does.
* If stdout is directed to a file, screen updates go

View File

@ -33,15 +33,15 @@
#include <ctype.h>
#include "term.h" /* padding_baud_rate, xon_xoff */
int delay_output(float ms)
int delay_output(int ms)
{
T(("delay_output(%f) called", ms));
T(("delay_output(%d) called", ms));
if (SP == 0 || SP->_baudrate <= 0)
return(ERR);
#ifdef no_pad_char
else if (no_pad_char)
_nc_timed_wait(0, (int)ms, (int *)NULL);
_nc_timed_wait(0, ms, (int *)NULL);
#endif /* no_pad_char */
else {
register int nullcount;

View File

@ -154,8 +154,8 @@ char *_tracechtype(chtype ch)
if (sp->val == ch)
{
(void) sprintf(buf, "%s | %s",
sp->name,
_traceattr((ch & (chtype)A_ATTRIBUTES &~ A_ALTCHARSET)));
sp->name,
_traceattr(AttrOf(ch) & (chtype)(~A_ALTCHARSET)));
return(buf);
}
}
@ -163,6 +163,6 @@ char *_tracechtype(chtype ch)
(void) sprintf(buf, "%s | %s",
_tracechar((unsigned char)(ch & A_CHARTEXT)),
_traceattr((ch & (chtype)A_ATTRIBUTES)));
_traceattr(AttrOf(ch)));
return(buf);
}

View File

@ -1926,7 +1926,7 @@ char *tparm(
#undef delay_output
int delay_output(
float ms)
int ms)
{ return(*(int *)0); }
#undef _nc_outch

View File

@ -88,7 +88,7 @@ int _nc_read_file_entry(const char *const filename, TERMTYPE *ptr)
int i, fd, numread;
char buf[MAX_ENTRY_SIZE];
if ((fd = open(filename, 0)) < 0)
if ((fd = open(filename, O_RDONLY)) < 0)
{
if (errno == ENOENT)
{

View File

@ -53,7 +53,7 @@ int main (int argc, char *argv[])
else
_nc_progname++;
while ((c = getopt(argc, argv, "hu:v:U:V")) != EOF)
while ((c = getopt(argc, argv, "huv:U:V")) != EOF)
switch (c)
{
case 'h':

View File

@ -7,7 +7,6 @@
* v2.0 featuring strict ANSI/POSIX conformance, November 1993.
* v2.1 with ncurses mouse support, September 1995
*/
/* #define _POSIX_SOURCE -- incompatible with solaris termios.h */
#include "test.priv.h"
@ -195,7 +194,6 @@ static void announceopts(void)
static void intro(void)
{
extern char *getlogin(void);
char *tmpname;
srand((unsigned)(time(0L)+getpid())); /* Kick the random number generator */

View File

@ -61,7 +61,7 @@ main(
char *argv[] GCC_UNUSED)
{
WINDOW *win;
int w, x, y, i, j, len;
int w, x, y, i, j, k, len;
char buffer[80], *message;
int width, height;
chtype save[80];
@ -173,9 +173,12 @@ chtype c;
init_pair(7,COLOR_RED,COLOR_GREEN);
wattron(win, COLOR_PAIR(7));
for(i=2; i < width - 4; ++i)
{ c = mvwinch(win, 4, i);
save[j++] = c;
c = c & A_CHARTEXT;
{
k = mvwinch(win, 4, i);
if (k == ERR)
break;
save[j++] = c = k;
c &= A_CHARTEXT;
mvwaddch(win, 4, i, c);
}
wrefresh(win);