about summary refs log tree commit diff stats
path: root/src/LYCurses.h
diff options
context:
space:
mode:
authorThomas E. Dickey <dickey@invisible-island.net>2010-04-29 22:00:22 -0400
committerThomas E. Dickey <dickey@invisible-island.net>2010-04-29 22:00:22 -0400
commitdc748b1c47baadafae2c90f0e188927b11b7e029 (patch)
treec728869dc6504570b9bffb7459ccbdd1bf264a9f /src/LYCurses.h
parentd4093cadbda3787dfb165954f8f6521790cfac86 (diff)
downloadlynx-snapshots-dc748b1c47baadafae2c90f0e188927b11b7e029.tar.gz
snapshot of project "lynx", label v2_8_8dev_6c
Diffstat (limited to 'src/LYCurses.h')
-rw-r--r--src/LYCurses.h831
1 files changed, 0 insertions, 831 deletions
diff --git a/src/LYCurses.h b/src/LYCurses.h
deleted file mode 100644
index 178b0d4d..00000000
--- a/src/LYCurses.h
+++ /dev/null
@@ -1,831 +0,0 @@
-/* $LynxId: LYCurses.h,v 1.83 2009/11/27 12:58:31 tom Exp $ */
-#ifndef LYCURSES_H
-#define LYCURSES_H
-
-#ifndef HTUTILS_H
-#include <HTUtils.h>
-#endif
-
-/*
- * Because we have to configure PDCURSES last, we may get bogus definitions
- * from the system curses library - cancel these now.
- */
-#ifdef HAVE_XCURSES
-
-#undef ASSUME_DEFAULT_COLORS
-#undef COLOR_CURSES
-#undef FANCY_CURSES
-#undef HAVE_CBREAK
-#undef HAVE_RESIZETERM
-#undef HAVE_USE_DEFAULT_COLORS
-#undef NCURSES
-#undef USE_DEFAULT_COLORS
-
-#define HAVE_CBREAK 1
-#define COLOR_CURSES 1
-#define FANCY_CURSES 1
-
-#endif
-
-/*
- * The simple color scheme maps the 8 combinations of bold/underline/reverse
- * to the standard 8 ANSI colors (with some variations based on context).
- */
-#undef USE_COLOR_TABLE
-
-#ifdef USE_COLOR_STYLE
-#define USE_COLOR_TABLE 1	/* default color logic is used */
-#else
-#if defined(USE_SLANG) || defined(COLOR_CURSES)
-#define USE_COLOR_TABLE 1
-#endif
-#endif
-
-#ifdef TRUE
-#undef TRUE			/* to prevent parse error :( */
-#endif /* TRUE */
-#ifdef FALSE
-#undef FALSE			/* to prevent parse error :( */
-#endif /* FALSE */
-
-#ifdef USE_SLANG
-#include <slang.h>
-typedef unsigned long chtype;
-
-#undef WINDOW
-typedef struct {
-    int top_y;
-    int left_x;
-    int height;
-    int width;
-} WINDOW;
-
-/* slang doesn't really do windows... */
-#define waddch(w,c)  LYaddch(c)
-#define waddstr(w,s) addstr(s)
-#define wmove(win, row, col) SLsmg_gotorc(((win)?(win)->top_y:0) + (row), ((win)?(win)->left_x:0) + (col))
-
-#ifndef SLSMG_UARROW_CHAR
-#define SLSMG_UARROW_CHAR '^'
-#endif
-
-#ifndef SLSMG_DARROW_CHAR
-#define SLSMG_DARROW_CHAR 'v'
-#endif
-
-#ifndef SLSMG_LARROW_CHAR
-#define SLSMG_LARROW_CHAR '<'
-#endif
-
-#ifndef SLSMG_RARROW_CHAR
-#define SLSMG_RARROW_CHAR '>'
-#endif
-
-#ifndef SLSMG_CKBRD_CHAR
-#define SLSMG_CKBRD_CHAR '#'
-#endif
-
-#ifndef SLSMG_BLOCK_CHAR
-#define SLSMG_BLOCK_CHAR '#'
-#endif
-
-#ifndef ACS_UARROW
-#define ACS_UARROW  SLSMG_UARROW_CHAR
-#endif
-
-#ifndef ACS_DARROW
-#define ACS_DARROW  SLSMG_DARROW_CHAR
-#endif
-
-#ifndef ACS_LARROW
-#define ACS_LARROW  SLSMG_LARROW_CHAR
-#endif
-
-#ifndef ACS_RARROW
-#define ACS_RARROW  SLSMG_RARROW_CHAR
-#endif
-
-#ifndef ACS_CKBOARD
-#define ACS_CKBOARD SLSMG_CKBRD_CHAR
-#endif
-
-#ifndef ACS_BLOCK
-#define ACS_BLOCK   SLSMG_BLOCK_CHAR
-#endif
-
-#else /* Using curses: */
-
-#ifdef VMS
-#define FANCY_CURSES
-
-#endif /* VMS */
-
-#ifndef HAVE_TYPE_CHTYPE
-
-#ifdef __PDCURSES__
-#define HAVE_TYPE_CHTYPE 1
-#endif
-
-#if defined(_VMS_CURSES) || defined(VMS)
-typedef char chtype;
-
-#define HAVE_TYPE_CHTYPE 1
-#endif
-
-#endif /* ! HAVE_TYPE_CHTYPE */
-
-/*
- *	CR may be defined before the curses.h include occurs.
- *	There is a conflict between the termcap char *CR and the define.
- *	Assuming that the definition of CR will always be carriage return.
- *	06-09-94 Lynx 2-3-1 Garrett Arch Blythe
- */
-#ifdef CR
-#undef CR			/* to prevent parse error :( */
-#define REDEFINE_CR
-#endif /* CR */
-
-#ifdef HZ
-#undef HZ			/* to prevent parse error :( */
-#endif /* HZ */
-
-/* SunOS 4.x has a redefinition between ioctl.h and termios.h */
-#if defined(sun) && !defined(__SVR4)
-#undef NL0
-#undef NL1
-#undef CR0
-#undef CR1
-#undef CR2
-#undef CR3
-#undef TAB0
-#undef TAB1
-#undef TAB2
-#undef XTABS
-#undef BS0
-#undef BS1
-#undef FF0
-#undef FF1
-#undef ECHO
-#undef NOFLSH
-#undef TOSTOP
-#undef FLUSHO
-#undef PENDIN
-#endif
-
-#if defined(_MSC_VER)
-#undef MOUSE_MOVED		/* conflict between PDCURSES and _WIN32 */
-#endif /* _MSC_VER */
-
-/*
- * Do this to build with glibc 2.1.3 (apparently it was not used to build a
- * system before release).
- */
-#include <signal.h>
-
-#undef CS			/* some BSD versions of curses use this */
-#define CS curses_CS		/* ...but we don't */
-
-#ifdef ERR
-#undef ERR			/* all versions of curses define this */
-#endif
-
-#ifdef MOUSE_MOVED
-#undef MOUSE_MOVED		/* wincon.h or MINGW32's copy of it */
-#endif
-
-#ifdef HAVE_CONFIG_H
-# ifdef HAVE_NCURSESW_NCURSES_H
-#  undef GCC_PRINTFLIKE		/* <libutf8.h> may define 'printf' */
-#  include <ncursesw/ncurses.h>
-#  undef printf			/* but we don't want that... */
-# else
-#  ifdef HAVE_NCURSES_NCURSES_H
-#   include <ncurses/ncurses.h>
-#  else
-#   ifdef HAVE_NCURSES_H
-#    include <ncurses.h>
-#   else
-#    ifdef HAVE_CURSESX_H
-#     include <cursesX.h>	/* Ultrix */
-#    else
-#     ifdef HAVE_JCURSES_H
-#      include <jcurses.h>	/* sony_news */
-#     else
-#      ifdef HAVE_XCURSES
-#       include <xcurses.h>	/* PDCurses' UNIX port */
-#      else
-#       include <curses.h>	/* default */
-#      endif
-#     endif
-#    endif
-#   endif
-#  endif
-# endif
-
-# if defined(wgetbkgd) && !defined(getbkgd)
-#  define getbkgd(w) wgetbkgd(w)	/* workaround pre-1.9.9g bug */
-# endif
-
-# ifdef FANCY_CURSES
-#  if defined(NCURSES) && defined(HAVE_NCURSESW_TERM_H)
-#    include <ncursesw/term.h>
-#  else
-#    if defined(NCURSES) && defined(HAVE_NCURSES_TERM_H)
-#      include <ncurses/term.h>
-#    else
-#     if defined(HAVE_NCURSESW_NCURSES_H) || defined(HAVE_NCURSES_NCURSES_H) || defined(HAVE_XCURSES)
-#       undef HAVE_TERM_H	/* only use one in comparable path! */
-#     endif
-#     if defined(HAVE_TERM_H)
-#      include <term.h>
-#     endif
-#   endif
-#  endif
-# endif
-
-# if defined(NCURSES_VERSION) && defined(HAVE_DEFINE_KEY)
-#  define USE_KEYMAPS		1
-# endif
-
-#else
-# if defined(VMS) && defined(__GNUC__)
-#  include <LYGCurses.h>
-#  else
-#   include <curses.h>		/* everything else */
-# endif				/* VMS && __GNUC__ */
-#endif /* HAVE_CONFIG_H */
-
-/*
- * PDCurses' mouse code does nothing in the DJGPP configuration.
- */
-#if defined(PDCURSES) && !defined(__DJGPP__) && !defined(HAVE_XCURSES)
-#define USE_MOUSE 1
-#endif
-
-/*
- * Pick up the native ncurses name:
- */
-#if defined(NCURSES_MOUSE_VERSION)
-#define USE_MOUSE 1
-#endif
-
-/*
- * For systems where select() does not work for TTY's, we can poll using
- * curses.
- */
-#if defined(_WINDOWS) || defined(__MINGW32__)
-#if defined(PDCURSES) && defined(PDC_BUILD) && PDC_BUILD >= 2401
-#define USE_CURSES_NODELAY 1
-#endif
-
-#if defined(NCURSES_VERSION)
-#define USE_CURSES_NODELAY 1
-#endif
-#endif /* _WINDOWS || __MINGW32__ */
-
-#if defined(NCURSES_VERSION) && defined(__BEOS__)
-#define USE_CURSES_NODELAY 1
-#endif
-
-/*
- * If we have pads, use them to implement left/right scrolling.
- */
-#if defined(HAVE_NEWPAD) && defined(HAVE_PNOUTREFRESH) && !defined(PDCURSES)
-#define USE_CURSES_PADS 1
-#endif
-
-/*
- * ncurses 1.9.9e won't work for pads, but 4.2 does (1.9.9g doesn't have a
- * convenient ifdef, though it would work).
- */
-#if defined(NCURSES_VERSION) && !defined(NCURSES_VERSION_MAJOR)
-#undef USE_CURSES_PADS
-#endif
-
-/*
- * Most implementations of curses treat pair 0 specially, as the default
- * foreground and background color.  Also, the COLORS variable corresponds to
- * the total number of colors.
- *
- * PDCurses does not follow these rules.  Its COLORS variable claims it has
- * 8 colors, but it actually implements 16.  That makes it hard to optimize
- * color settings against color pair 0 in a portable fashion.
- */
-#if defined(COLOR_CURSES)
-#if defined(PDCURSES) || defined(HAVE_XCURSES)
-#define COLORS 16		/* should be a variable... */
-#else
-#define USE_CURSES_PAIR_0
-#endif
-#endif
-
-#endif /* USE_SLANG */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#ifdef USE_SLANG
-#define LYstopPopup()		/* nothing */
-#define LYtopwindow() LYwin
-#else
-    extern void LYsubwindow(WINDOW * param);
-    extern WINDOW *LYtopwindow(void);
-
-#define LYstopPopup() LYsubwindow(0)
-#endif				/* NCURSES */
-
-    extern void LYbox(WINDOW * win, BOOLEAN formfield);
-    extern WINDOW *LYstartPopup(int *top_y, int *left_x, int *height, int *width);
-
-/*
- * Useful macros not in PDCurses or very old ncurses headers.
- */
-#if !defined(HAVE_GETBEGX) && !defined(getbegx)
-#define getbegx(win) ((win)->_begx)
-#endif
-#if !defined(HAVE_GETBEGY) && !defined(getbegy)
-#define getbegy(win) ((win)->_begy)
-#endif
-#if !defined(HAVE_GETBKGD) && !defined(getbkgd)
-#define getbkgd(win) ((win)->_bkgd)
-#endif
-
-#if defined(HAVE_WATTR_GET)
-    extern long LYgetattrs(WINDOW * win);
-
-#else
-#if defined(HAVE_GETATTRS) || defined(getattrs)
-#define LYgetattrs(win) getattrs(win)
-#else
-#define LYgetattrs(win) ((win)->_attrs)
-#endif
-#endif				/* HAVE_WATTR_GET */
-
-#if defined(PDCURSES)
-#define HAVE_GETBKGD 1		/* can use fallback definition */
-#define HAVE_NAPMS 1		/* can use millisecond-delays */
-#  if defined(PDC_BUILD) && PDC_BUILD >= 2401
-    extern int saved_scrsize_x;
-    extern int saved_scrsize_y;
-#  endif
-#endif
-
-#ifdef HAVE_NAPMS
-#define SECS2Secs(n) (1000 * (n))
-#define Secs2SECS(n) ((n) / 1000.0)
-#define SECS_FMT "%.3f"
-#else
-#define SECS2Secs(n) (n)
-#define Secs2SECS(n) (n)
-#define SECS_FMT "%.0f"
-#endif
-
-#ifdef NCURSES_VERSION
-    extern void _nc_freeall(void);	/* HAVE__NC_FREEALL */
-    extern void _nc_free_and_exit(int);		/* HAVE__NC_FREE_AND_EXIT */
-#endif
-
-/* Both slang and curses: */
-#ifndef TRUE
-#define TRUE  1
-#endif				/* !TRUE */
-#ifndef FALSE
-#define FALSE 0
-#endif				/* !FALSE */
-
-#ifdef REDEFINE_CR
-#define CR FROMASCII('\015')
-#endif				/* REDEFINE_CR */
-
-#ifdef ALT_CHAR_SET
-#define BOXVERT 0		/* use alt char set for popup window vertical borders */
-#define BOXHORI 0		/* use alt char set for popup window vertical borders */
-#endif
-
-#ifndef BOXVERT
-#define BOXVERT '*'		/* character for popup window vertical borders */
-#endif
-#ifndef BOXHORI
-#define BOXHORI '*'		/* character for popup window horizontal borders */
-#endif
-
-#ifndef KEY_DOWN
-#undef HAVE_KEYPAD		/* avoid confusion with bogus 'keypad()' */
-#endif
-
-    extern int LYlines;		/* replaces LINES */
-    extern int LYcols;		/* replaces COLS */
-
-/*
- * The scrollbar, if used, occupies the rightmost column.
- */
-#ifdef USE_SCROLLBAR
-#define LYbarWidth (LYShowScrollbar ? 1 : 0)
-#else
-#define LYbarWidth 0
-#endif
-
-/*
- * Usable limits for display:
- */
-#if defined(FANCY_CURSES) || defined(USE_SLANG)
-#if defined(PDCURSES)
-#define LYcolLimit (LYcols - LYbarWidth - 1)	/* PDCurses wrapping is buggy */
-#else
-#define LYcolLimit (LYcols - LYbarWidth)
-#endif
-#else
-#define LYcolLimit (LYcols - 1)
-#endif
-
-#ifdef USE_CURSES_PADS
-    extern WINDOW *LYwin;
-    extern int LYshiftWin;
-    extern int LYwideLines;
-    extern int LYtableCols;
-    extern BOOLEAN LYuseCursesPads;
-
-#else
-#define LYwin stdscr
-#define LYshiftWin	0
-#define LYwideLines	0
-#define LYtableCols	0
-#endif
-
-    extern BOOLEAN setup(char *terminal);
-    extern int LYscreenHeight(void);
-    extern int LYscreenWidth(void);
-    extern int LYstrExtent(const char *string, int len, int maxCells);
-    extern int LYstrExtent2(const char *string, int len);
-    extern int LYstrFittable(const char *string, int maxCells);
-    extern int LYstrCells(const char *string);
-    extern void LYclear(void);
-    extern void LYclrtoeol(void);
-    extern void LYerase(void);
-    extern void LYmove(int y, int x);
-    extern void LYnoVideo(int mask);
-    extern void LYnormalColor(void);
-    extern void LYpaddstr(WINDOW * w, int width, const char *s);
-    extern void LYrefresh(void);
-    extern void LYstartTargetEmphasis(void);
-    extern void LYstopTargetEmphasis(void);
-    extern void LYtouchline(int row);
-    extern void LYwaddnstr(WINDOW * w, const char *s, size_t len);
-    extern void start_curses(void);
-    extern void stop_curses(void);
-
-#define LYaddstr(s)      LYwaddnstr(LYwin, s, strlen(s))
-
-#ifdef VMS
-    extern int DCLsystem(char *command);
-    extern void VMSexit();
-    extern int ttopen();
-    extern int ttclose();
-    extern int ttgetc();
-    extern void VMSsignal(int sig, void (*func) ());
-#endif				/* VMS */
-
-#if defined(USE_COLOR_STYLE)
-    extern void curses_css(char *name, int dir);
-    extern void curses_style(int style, int dir);
-    extern void setHashStyle(int style, int color, int cattr, int mono, const char *element);
-    extern void setStyle(int style, int color, int cattr, int mono);
-    extern void wcurses_css(WINDOW * win, char *name, int dir);
-    extern void curses_w_style(WINDOW * win, int style, int dir);
-
-#  define LynxChangeStyle(style,dir) curses_style(style,dir)
-#  define LynxWChangeStyle(win,style,dir) curses_w_style(win,style,dir)
-#else
-#  define LynxWChangeStyle(win,style,dir)	(void)1
-#endif				/* USE_COLOR_STYLE */
-
-#ifdef USE_COLOR_TABLE
-    extern void LYaddAttr(int a);
-    extern void LYsubAttr(int a);
-    extern void lynx_setup_colors(void);
-    extern unsigned Lynx_Color_Flags;
-#endif
-
-#if defined(USE_COLOR_TABLE) || defined(USE_SLANG)
-    extern int Current_Attr;
-#endif
-
-#ifdef USE_SLANG
-#define SHOW_WHEREIS_TARGETS 1
-
-#if !defined(VMS) && !defined(DJGPP)
-#define USE_MOUSE              1
-#endif
-
-#if !defined(__DJGPP__) && !defined(__CYGWIN__)
-#define USE_KEYMAPS		1
-#endif
-
-#define SL_LYNX_USE_COLOR	1
-#define SL_LYNX_OVERRIDE_COLOR	2
-
-#define start_bold()      	LYaddAttr(LYUnderlineLinks ? 4 : 1)
-#define start_reverse()   	LYaddAttr(2)
-#define start_underline() 	LYaddAttr(LYUnderlineLinks ? 1 : 4)
-#define stop_bold()       	LYsubAttr(LYUnderlineLinks ? 4 : 1)
-#define stop_reverse()    	LYsubAttr(2)
-#define stop_underline()  	LYsubAttr(LYUnderlineLinks ? 1 : 4)
-
-#ifdef FANCY_CURSES
-#undef FANCY_CURSES
-#endif				/* FANCY_CURSES */
-
-/*
- *  Map some curses functions to slang functions.
- */
-#define stdscr ((WINDOW *)0)
-#ifdef SLANG_MBCS_HACK
-    extern int PHYSICAL_SLtt_Screen_Cols;
-
-#define COLS PHYSICAL_SLtt_Screen_Cols
-#else
-#define COLS SLtt_Screen_Cols
-#endif				/* SLANG_MBCS_HACK */
-#define LINES SLtt_Screen_Rows
-#define move SLsmg_gotorc
-#define addstr SLsmg_write_string
-    extern void LY_SLerase(void);
-
-#define erase LY_SLerase
-#define clear LY_SLerase
-#define standout SLsmg_reverse_video
-#define standend  SLsmg_normal_video
-#define clrtoeol SLsmg_erase_eol
-
-#ifdef SLSMG_NEWLINE_SCROLLS
-#define scrollok(a,b) SLsmg_Newline_Behavior \
-   = ((b) ? SLSMG_NEWLINE_SCROLLS : SLSMG_NEWLINE_MOVES)
-#else
-#define scrollok(a,b) SLsmg_Newline_Moves = ((b) ? 1 : -1)
-#endif
-
-#define LYaddch(ch)   SLsmg_write_char(ch)
-
-#if SLANG_VERSION >= 20000
-#define addch_raw(ch) do {                                \
-                        SLsmg_Char_Type buf;              \
-                        buf.nchars = 1;                   \
-                        buf.wchars[0] = ch;               \
-                        buf.color = Current_Attr;         \
-                        SLsmg_write_raw (&buf, 1);        \
-                      } while (0)
-#else
-#define addch_raw(ch) do {                                \
-                        SLsmg_Char_Type buf;              \
-                        buf = (ch) | (Current_Attr << 4); \
-                        SLsmg_write_raw (&buf, 1);        \
-                      } while (0)
-#endif				/* SLANG_VERSION >= 20000 */
-
-#define echo()
-#define printw        SLsmg_printf
-
-    extern int curscr;
-    extern BOOLEAN FullRefresh;
-
-#ifdef clearok
-#undef clearok
-#endif				/* clearok */
-#define clearok(a,b) { FullRefresh = (BOOLEAN)b; }
-    extern void LY_SLrefresh(void);
-
-#ifdef refresh
-#undef refresh
-#endif				/* refresh */
-#define refresh LY_SLrefresh
-
-#ifdef VMS
-    extern void VTHome(void);
-
-#define endwin() LYclear(),refresh(),SLsmg_reset_smg(),VTHome()
-#else
-#define endwin SLsmg_reset_smg(),SLang_reset_tty
-#endif				/* VMS */
-
-#else				/* Define curses functions: */
-
-#ifdef FANCY_CURSES
-#define SHOW_WHEREIS_TARGETS 1
-
-#ifdef VMS
-/*
- *  For VMS curses, [w]setattr() and [w]clrattr()
- *  add and subtract, respectively, the attributes
- *  _UNDERLINE, _BOLD, _REVERSE, and _BLINK. - FM
- */
-#define start_bold()		setattr(LYUnderlineLinks ? _UNDERLINE : _BOLD)
-#define stop_bold()		clrattr(LYUnderlineLinks ? _UNDERLINE : _BOLD)
-#define start_underline()	setattr(LYUnderlineLinks ? _BOLD : _UNDERLINE)
-#define stop_underline()	clrattr(LYUnderlineLinks ? _BOLD : _UNDERLINE)
-#define start_reverse()		setattr(_REVERSE)
-#define wstart_reverse(w)	wsetattr(w, _REVERSE)
-#define stop_reverse()		clrattr(_REVERSE)
-#define wstop_reverse(w)	wclrattr(w, _REVERSE)
-
-#else				/* Not VMS: */
-
-    extern int string_to_attr(const char *name);
-
-/*
- *  For Unix FANCY_FANCY curses we interpose
- *  our own functions to add or subtract the
- *  A_foo attributes. - FM
- */
-#if defined(USE_COLOR_TABLE) && !defined(USE_COLOR_STYLE)
-    extern void LYaddWAttr(WINDOW * win, int a);
-    extern void LYsubWAttr(WINDOW * win, int a);
-    extern void LYaddWAttr(WINDOW * win, int a);
-    extern void LYsubWAttr(WINDOW * win, int a);
-
-#undef  standout
-#define standout() 		lynx_standout(TRUE)
-#undef  standend
-#define standend() 		lynx_standout(FALSE)
-#else
-#define LYaddAttr(attr)		LYaddWAttr(LYwin,attr)
-#define LYaddWAttr(win,attr)	wattron(win,attr)
-#define LYsubAttr(attr)		LYsubWAttr(LYwin,attr)
-#define LYsubWAttr(win,attr)	wattroff(win,attr)
-#endif
-
-#if defined(USE_COLOR_TABLE)
-    extern void lynx_set_color(int a);
-    extern void lynx_standout(int a);
-    extern char *LYgetTableString(int code);
-    extern int LYgetTableAttr(void);
-    extern int lynx_chg_color(int, int, int);
-#endif
-
-#define start_bold()		LYaddAttr(LYUnderlineLinks ? A_UNDERLINE : A_BOLD)
-#define stop_bold()		LYsubAttr(LYUnderlineLinks ? A_UNDERLINE : A_BOLD)
-#define start_underline()	LYaddAttr(LYUnderlineLinks ? A_BOLD : A_UNDERLINE)
-#define stop_underline()	LYsubAttr(LYUnderlineLinks ? A_BOLD : A_UNDERLINE)
-
-#if defined(SNAKE) && defined(HP_TERMINAL)
-#define start_reverse()		LYaddWAttr(LYwin, A_DIM)
-#define wstart_reverse(w)	LYaddWAttr(w, A_DIM)
-#define stop_reverse()		LYsubWAttr(LYwin, A_DIM)
-#define wstop_reverse(w)	LYsubWAttr(w, A_DIM)
-#else
-#define start_reverse()		LYaddAttr(A_REVERSE)
-#define wstart_reverse(w)	LYaddWAttr(w, A_REVERSE)
-#define stop_reverse()		LYsubAttr(A_REVERSE)
-#define wstop_reverse(w)	LYsubWAttr(w, A_REVERSE)
-#endif				/* SNAKE && HP_TERMINAL */
-
-#endif				/* VMS */
-
-#else				/* Not FANCY_CURSES: */
-/* *INDENT-OFF* */
-#ifdef COLOR_CURSES
-#undef COLOR_CURSES
-Error FANCY_CURSES
-There is a problem with the configuration.  We expect to have FANCY_CURSES
-defined when COLOR_CURSES is defined, since we build on the attributes used in
-FANCY_CURSES.  Check your config.log to see why the FANCY_CURSES test failed.
-#endif
-/* *INDENT-ON* */
-
-/*
- *  We only have [w]standout() and [w]standin(),
- *  so we'll use them synonymously for bold and
- *  reverse, and ignore underline. - FM
- */
-#define start_bold()		standout()
-#define start_underline()	/* nothing */
-#define start_reverse()		standout()
-#define wstart_reverse(a)	wstandout(a)
-#define stop_bold()		standend()
-#define stop_underline()	/* nothing */
-#define stop_reverse()		standend()
-#define wstop_reverse(a)	wstandend(a)
-
-#endif				/* FANCY_CURSES */
-
-#ifdef __hpux			/* FIXME: configure check */
-#undef ACS_UARROW
-#undef ACS_DARROW
-#undef ACS_LARROW
-#undef ACS_RARROW
-#undef ACS_BLOCK
-#undef ACS_CKBOARD
-#endif
-
-#ifndef ACS_UARROW
-#define ACS_UARROW  '^'
-#endif
-
-#ifndef ACS_DARROW
-#define ACS_DARROW  'V'
-#endif
-
-#ifndef ACS_LARROW
-#define ACS_LARROW '{'
-#endif
-
-#ifndef ACS_RARROW
-#define ACS_RARROW '}'
-#endif
-
-#ifndef ACS_BLOCK
-#define ACS_BLOCK  '}'
-#endif
-
-#ifndef ACS_CKBOARD
-#define ACS_CKBOARD '}'
-#endif
-
-#define LYaddch(ch)		waddch(LYwin, ch)
-
-#define addch_raw(ch)           LYaddch(ch)
-
-#endif				/* USE_SLANG */
-
-#ifdef USE_SLANG
-#define LYGetYX(y, x)   y = SLsmg_get_row(), x = SLsmg_get_column()
-#else
-#ifdef getyx
-#define LYGetYX(y, x)   getyx(LYwin, y, x)
-#else
-#define LYGetYX(y, x)   y = LYwin->_cury, x = LYwin->_curx
-#endif				/* getyx */
-#endif				/* USE_SLANG */
-
-/*
- * If the screen library allows us to specify "default" color, allow user to
- * control it.
- */
-#ifdef USE_DEFAULT_COLORS
-#if defined(USE_SLANG) || defined(HAVE_ASSUME_DEFAULT_COLORS)
-#define EXP_ASSUMED_COLOR 1
-#endif
-#endif
-
-    extern void lynx_enable_mouse(int);
-    extern void lynx_force_repaint(void);
-    extern void lynx_nl2crlf(int normal);
-    extern void lynx_start_title_color(void);
-    extern void lynx_stop_title_color(void);
-    extern void lynx_start_link_color(int flag, int pending);
-    extern void lynx_stop_link_color(int flag, int pending);
-    extern void lynx_stop_target_color(void);
-    extern void lynx_start_target_color(void);
-    extern void lynx_start_status_color(void);
-    extern void lynx_stop_status_color(void);
-    extern void lynx_start_h1_color(void);
-    extern void lynx_stop_h1_color(void);
-    extern void lynx_start_prompt_color(void);
-    extern void lynx_stop_prompt_color(void);
-    extern void lynx_start_radio_color(void);
-    extern void lynx_stop_radio_color(void);
-    extern void lynx_stop_all_colors(void);
-
-    extern void lynx_start_bold(void);
-    extern void lynx_start_reverse(void);
-    extern void lynx_start_underline(void);
-    extern void lynx_stop_bold(void);
-    extern void lynx_stop_reverse(void);
-    extern void lynx_stop_underline(void);
-
-/*
- * To prevent corrupting binary data on DOS, MS-WINDOWS or OS/2 we open files
- * and stdout in BINARY mode by default.  Where necessary we should open and
- * (close!) TEXT mode.
- *
- * Note:  EMX has no corresponding variable like _fmode on DOS, but it does
- * have setmode.
- */
-#if defined(_WINDOWS) || defined(DJGPP) || defined(__EMX__) || defined(WIN_EX)
-#define SetOutputMode(mode) fflush(stdout), setmode(fileno(stdout), mode)
-#else
-#define SetOutputMode(mode)	/* nothing */
-#endif
-
-#if defined(_WINDOWS) || defined(DJGPP)
-#define SetDefaultMode(mode) _fmode = mode
-#else
-#define SetDefaultMode(mode)	/* nothing */
-#endif
-
-/*
- * Very old versions of curses cannot put the cursor on the lower right corner.
- * Adjust our "hidden" cursor position accordingly.
- */
-#if defined(FANCY_CURSES) || defined(USE_SLANG)
-#define LYHideCursor() LYmove((LYlines - 1), (LYcolLimit - 1))
-#else
-#define LYHideCursor() LYmove((LYlines - 1), (LYcolLimit - 2))
-#endif
-
-    extern void LYstowCursor(WINDOW * win, int row, int col);
-    extern void LYSetDisplayLines(void);
-
-#ifdef __cplusplus
-}
-#endif
-#endif				/* LYCURSES_H */