diff --git a/curses.h b/curses.h index f7976f93..8a4edb3d 100644 --- a/curses.h +++ b/curses.h @@ -15,7 +15,7 @@ * See the file maintain.er for details of the current maintainer. * ************************************************************************/ -/* $Id: curses.h,v 1.221 2006/09/20 06:42:03 wmcbrine Exp $ */ +/* $Id: curses.h,v 1.222 2006/09/20 07:36:03 wmcbrine Exp $ */ /*----------------------------------------------------------------------* * PDCurses * @@ -743,144 +743,55 @@ currently used.) /*** Alternate character set macros ***/ -/* Non-X/Unicode definitions are from jshumate@wrdis01.robins.af.mil -- - these match code page 437 and compatible pages (CP850, CP852, etc.) */ +extern chtype pdc_acs[]; /* VT100-compatible symbols -- box chars */ -#ifdef PDC_WIDE -# define ACS_ULCORNER (chtype)0x250c -# define ACS_LLCORNER (chtype)0x2514 -# define ACS_URCORNER (chtype)0x2510 -# define ACS_LRCORNER (chtype)0x2518 -# define ACS_RTEE (chtype)0x2524 -# define ACS_LTEE (chtype)0x251c -# define ACS_BTEE (chtype)0x2534 -# define ACS_TTEE (chtype)0x252c -# define ACS_HLINE (chtype)0x2500 -# define ACS_VLINE (chtype)0x2502 -# define ACS_PLUS (chtype)0x253c -#else -# ifdef XCURSES -# define ACS_ULCORNER ((chtype)13 | A_ALTCHARSET) -# define ACS_LLCORNER ((chtype)14 | A_ALTCHARSET) -# define ACS_URCORNER ((chtype)12 | A_ALTCHARSET) -# define ACS_LRCORNER ((chtype)11 | A_ALTCHARSET) -# define ACS_RTEE ((chtype)22 | A_ALTCHARSET) -# define ACS_LTEE ((chtype)21 | A_ALTCHARSET) -# define ACS_BTEE ((chtype)23 | A_ALTCHARSET) -# define ACS_TTEE ((chtype)24 | A_ALTCHARSET) -# define ACS_HLINE ((chtype)18 | A_ALTCHARSET) -# define ACS_VLINE ((chtype)25 | A_ALTCHARSET) -# define ACS_PLUS ((chtype)15 | A_ALTCHARSET) -# else -# define ACS_ULCORNER (chtype)0xda -# define ACS_LLCORNER (chtype)0xc0 -# define ACS_URCORNER (chtype)0xbf -# define ACS_LRCORNER (chtype)0xd9 -# define ACS_RTEE (chtype)0xb4 -# define ACS_LTEE (chtype)0xc3 -# define ACS_BTEE (chtype)0xc1 -# define ACS_TTEE (chtype)0xc2 -# define ACS_HLINE (chtype)0xc4 -# define ACS_VLINE (chtype)0xb3 -# define ACS_PLUS (chtype)0xc5 -# endif -#endif +#define ACS_ULCORNER (pdc_acs[0]) +#define ACS_LLCORNER (pdc_acs[1]) +#define ACS_URCORNER (pdc_acs[2]) +#define ACS_LRCORNER (pdc_acs[3]) +#define ACS_RTEE (pdc_acs[4]) +#define ACS_LTEE (pdc_acs[5]) +#define ACS_BTEE (pdc_acs[6]) +#define ACS_TTEE (pdc_acs[7]) +#define ACS_HLINE (pdc_acs[8]) +#define ACS_VLINE (pdc_acs[9]) +#define ACS_PLUS (pdc_acs[10]) /* VT100-compatible symbols -- other */ -#ifdef PDC_WIDE -# define ACS_S1 (chtype)0x23ba -# define ACS_S9 (chtype)0x23bd -# define ACS_DIAMOND (chtype)0x2666 -# define ACS_CKBOARD (chtype)0x2592 -# define ACS_DEGREE (chtype)0x00b0 -# define ACS_PLMINUS (chtype)0x00b1 -# define ACS_BULLET (chtype)0x00b7 -#else -# ifdef XCURSES -# define ACS_S1 ((chtype)16 | A_ALTCHARSET) -# define ACS_S9 ((chtype)20 | A_ALTCHARSET) -# define ACS_DIAMOND ((chtype)1 | A_ALTCHARSET) -# define ACS_CKBOARD ((chtype)2 | A_ALTCHARSET) -# define ACS_DEGREE ((chtype)7 | A_ALTCHARSET) -# define ACS_PLMINUS ((chtype)8 | A_ALTCHARSET) -# define ACS_BULLET (chtype)'*' -# else -# define ACS_S1 (chtype)0x2d -# define ACS_S9 (chtype)0x5f -# define ACS_DIAMOND ((chtype)0x04 | A_ALTCHARSET) -# define ACS_CKBOARD (chtype)0xb1 -# define ACS_DEGREE (chtype)0xf8 -# define ACS_PLMINUS (chtype)0xf1 -# define ACS_BULLET (chtype)0xf9 -# endif -#endif +#define ACS_S1 (pdc_acs[11]) +#define ACS_S9 (pdc_acs[12]) +#define ACS_DIAMOND (pdc_acs[13]) +#define ACS_CKBOARD (pdc_acs[14]) +#define ACS_DEGREE (pdc_acs[15]) +#define ACS_PLMINUS (pdc_acs[16]) +#define ACS_BULLET (pdc_acs[17]) /* Teletype 5410v1 symbols -- these are defined in SysV curses, but are not well-supported by most terminals. Stick to VT100 characters for optimum portability. */ -#ifdef PDC_WIDE -# define ACS_LARROW (chtype)0x2190 -# define ACS_RARROW (chtype)0x2192 -# define ACS_DARROW (chtype)0x2193 -# define ACS_UARROW (chtype)0x2191 -# define ACS_BOARD (chtype)0x2591 -# define ACS_LANTERN (chtype)0x00a4 -# define ACS_BLOCK (chtype)0x2588 -#else -# ifdef XCURSES -# define ACS_LARROW (chtype)'<' -# define ACS_RARROW (chtype)'>' -# define ACS_DARROW (chtype)'v' -# define ACS_UARROW (chtype)'^' -# define ACS_BOARD (chtype)'#' -# define ACS_LANTERN (chtype)'#' -# define ACS_BLOCK ((chtype)0 | A_ALTCHARSET) -# else -# define ACS_LARROW ((chtype)0x1b | A_ALTCHARSET) -# define ACS_RARROW ((chtype)0x1a | A_ALTCHARSET) -# define ACS_DARROW ((chtype)0x19 | A_ALTCHARSET) -# define ACS_UARROW ((chtype)0x18 | A_ALTCHARSET) -# define ACS_BOARD (chtype)0xb0 -# define ACS_LANTERN ((chtype)0x0f | A_ALTCHARSET) -# define ACS_BLOCK (chtype)0xdb -# endif -#endif +#define ACS_LARROW (pdc_acs[18]) +#define ACS_RARROW (pdc_acs[19]) +#define ACS_DARROW (pdc_acs[20]) +#define ACS_UARROW (pdc_acs[21]) +#define ACS_BOARD (pdc_acs[22]) +#define ACS_LANTERN (pdc_acs[23]) +#define ACS_BLOCK (pdc_acs[24]) /* That goes double for these -- undocumented SysV symbols. Don't use them. Also, the definitions here aren't compatible with as many code pages as those above. */ -#ifdef PDC_WIDE -# define ACS_S3 (chtype)0x23bb -# define ACS_S7 (chtype)0x23bc -# define ACS_LEQUAL (chtype)0x2264 -# define ACS_GEQUAL (chtype)0x2265 -# define ACS_PI (chtype)0x03c0 -# define ACS_NEQUAL (chtype)0x2260 -# define ACS_STERLING (chtype)0x00a3 -#else -# ifdef XCURSES -# define ACS_S3 ((chtype)17 | A_ALTCHARSET) -# define ACS_S7 ((chtype)19 | A_ALTCHARSET) -# define ACS_LEQUAL ((chtype)26 | A_ALTCHARSET) -# define ACS_GEQUAL ((chtype)27 | A_ALTCHARSET) -# define ACS_PI ((chtype)28 | A_ALTCHARSET) -# define ACS_NEQUAL ((chtype)29 | A_ALTCHARSET) -# define ACS_STERLING ((chtype)30 | A_ALTCHARSET) -# else -# define ACS_S3 (chtype)0x2d -# define ACS_S7 (chtype)0x2d -# define ACS_LEQUAL (chtype)0xf3 -# define ACS_GEQUAL (chtype)0xf2 -# define ACS_PI (chtype)0xe3 -# define ACS_NEQUAL (chtype)0xd8 -# define ACS_STERLING (chtype)0x9c -# endif -#endif +#define ACS_S3 (pdc_acs[25]) +#define ACS_S7 (pdc_acs[26]) +#define ACS_LEQUAL (pdc_acs[27]) +#define ACS_GEQUAL (pdc_acs[28]) +#define ACS_PI (pdc_acs[29]) +#define ACS_NEQUAL (pdc_acs[30]) +#define ACS_STERLING (pdc_acs[31]) /* Box char aliases */ diff --git a/dos/pdcscrn.c b/dos/pdcscrn.c index 8a041fdf..7667a31e 100644 --- a/dos/pdcscrn.c +++ b/dos/pdcscrn.c @@ -24,7 +24,21 @@ # include #endif -RCSID("$Id: pdcscrn.c,v 1.51 2006/08/18 20:11:05 wmcbrine Exp $"); +RCSID("$Id: pdcscrn.c,v 1.52 2006/09/20 07:36:03 wmcbrine Exp $"); + +/* Definitions for ACS_ULCORNER through ACS_STERLING, in the order + listed in curses.h, from jshumate@wrdis01.robins.af.mil -- these + match code page 437 and compatible pages (CP850, CP852, etc.) */ + +chtype pdc_acs[] = +{ + 0xda, 0xc0, 0xbf, 0xd9, 0xb4, 0xc3, 0xc1, 0xc2, 0xc4, 0xb3, + 0xc5, 0x2d, 0x5f, (0x04 | A_ALTCHARSET), 0xb1, 0xf8, 0xf1, 0xf9, + (0x1b | A_ALTCHARSET), (0x1a | A_ALTCHARSET), + (0x19 | A_ALTCHARSET), (0x18 | A_ALTCHARSET), 0xb0, + (0x0f | A_ALTCHARSET), 0xdb, 0x2d, 0x2d, 0xf3, 0xf2, 0xe3, 0xd8, + 0x9c +}; int pdc_adapter; /* screen type */ int pdc_scrnmode; /* default screen mode */ diff --git a/os2/pdcscrn.c b/os2/pdcscrn.c index 8efe74ab..e21295ee 100644 --- a/os2/pdcscrn.c +++ b/os2/pdcscrn.c @@ -25,7 +25,21 @@ #include #include -RCSID("$Id: pdcscrn.c,v 1.46 2006/08/18 20:02:04 wmcbrine Exp $"); +RCSID("$Id: pdcscrn.c,v 1.47 2006/09/20 07:36:03 wmcbrine Exp $"); + +/* Definitions for ACS_ULCORNER through ACS_STERLING, in the order + listed in curses.h, from jshumate@wrdis01.robins.af.mil -- these + match code page 437 and compatible pages (CP850, CP852, etc.) */ + +chtype pdc_acs[] = +{ + 0xda, 0xc0, 0xbf, 0xd9, 0xb4, 0xc3, 0xc1, 0xc2, 0xc4, 0xb3, + 0xc5, 0x2d, 0x5f, (0x04 | A_ALTCHARSET), 0xb1, 0xf8, 0xf1, 0xf9, + (0x1b | A_ALTCHARSET), (0x1a | A_ALTCHARSET), + (0x19 | A_ALTCHARSET), (0x18 | A_ALTCHARSET), 0xb0, + (0x0f | A_ALTCHARSET), 0xdb, 0x2d, 0x2d, 0xf3, 0xf2, 0xe3, 0xd8, + 0x9c +}; int pdc_font; /* default font size */ diff --git a/pdcurses/initscr.c b/pdcurses/initscr.c index b6b844b6..cd02cc6e 100644 --- a/pdcurses/initscr.c +++ b/pdcurses/initscr.c @@ -23,7 +23,7 @@ #undef isendwin #undef is_termresized -RCSID("$Id: initscr.c,v 1.74 2006/09/20 06:42:03 wmcbrine Exp $"); +RCSID("$Id: initscr.c,v 1.75 2006/09/20 07:36:03 wmcbrine Exp $"); const char *_curses_notice = "PDCurses 3.0 - Public Domain 2006"; @@ -38,14 +38,17 @@ int TABSIZE = 8; MOUSE_STATUS Mouse_status, pdc_mouse_status; #ifdef PDC_WIDE + +/* Unicode definitions for WACS_ULCORNER through WACS_STERLING, in the + order listed in curses.h */ + cchar_t pdc_wacs[] = { - ACS_ULCORNER, ACS_LLCORNER, ACS_URCORNER, ACS_LRCORNER, - ACS_RTEE, ACS_LTEE, ACS_BTEE, ACS_TTEE, ACS_HLINE, ACS_VLINE, - ACS_PLUS, ACS_S1, ACS_S9, ACS_DIAMOND, ACS_CKBOARD, ACS_DEGREE, - ACS_PLMINUS, ACS_BULLET, ACS_LARROW, ACS_RARROW, ACS_DARROW, - ACS_UARROW, ACS_BOARD, ACS_LANTERN, ACS_BLOCK, ACS_S3, ACS_S7, - ACS_LEQUAL, ACS_GEQUAL, ACS_PI, ACS_NEQUAL, ACS_STERLING + 0x250c, 0x2514, 0x2510, 0x2518, 0x2524, 0x251c, 0x2534, 0x252c, + 0x2500, 0x2502, 0x253c, 0x23ba, 0x23bd, 0x2666, 0x2592, 0x00b0, + 0x00b1, 0x00b7, 0x2190, 0x2192, 0x2193, 0x2191, 0x2591, 0x00a4, + 0x2588, 0x23bb, 0x23bc, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3 }; + #endif extern RIPPEDOFFLINE linesripped[5]; @@ -226,6 +229,13 @@ WINDOW *Xinitscr(int argc, char *argv[]) PDC_init_atrtab(); /* set up default colors */ +#ifdef PDC_WIDE + /* Set the ACS_* table to the same values WACS_* */ + + for (i = 0; i < 32; i++) + pdc_acs[i] = pdc_wacs[i]; +#endif + MOUSE_X_POS = MOUSE_Y_POS = (-1); BUTTON_STATUS(1) = BUTTON_RELEASED; BUTTON_STATUS(2) = BUTTON_RELEASED; diff --git a/win32/pdcscrn.c b/win32/pdcscrn.c index 2463bbfc..788b50e1 100644 --- a/win32/pdcscrn.c +++ b/win32/pdcscrn.c @@ -24,7 +24,21 @@ #define CURSES_LIBRARY 1 #include -RCSID("$Id: pdcscrn.c,v 1.57 2006/08/20 06:57:56 wmcbrine Exp $"); +RCSID("$Id: pdcscrn.c,v 1.58 2006/09/20 07:36:04 wmcbrine Exp $"); + +/* Definitions for ACS_ULCORNER through ACS_STERLING, in the order + listed in curses.h, from jshumate@wrdis01.robins.af.mil -- these + match code page 437 and compatible pages (CP850, CP852, etc.) */ + +chtype pdc_acs[] = +{ + 0xda, 0xc0, 0xbf, 0xd9, 0xb4, 0xc3, 0xc1, 0xc2, 0xc4, 0xb3, + 0xc5, 0x2d, 0x5f, (0x04 | A_ALTCHARSET), 0xb1, 0xf8, 0xf1, 0xf9, + (0x1b | A_ALTCHARSET), (0x1a | A_ALTCHARSET), + (0x19 | A_ALTCHARSET), (0x18 | A_ALTCHARSET), 0xb0, + (0x0f | A_ALTCHARSET), 0xdb, 0x2d, 0x2d, 0xf3, 0xf2, 0xe3, 0xd8, + 0x9c +}; #define PDC_RESTORE_NONE 0 #define PDC_RESTORE_BUFFER 1 diff --git a/x11/pdcscrn.c b/x11/pdcscrn.c index 148fae88..20b02b4a 100644 --- a/x11/pdcscrn.c +++ b/x11/pdcscrn.c @@ -17,7 +17,23 @@ #include "pdcx11.h" -RCSID("$Id: pdcscrn.c,v 1.39 2006/08/21 04:29:46 wmcbrine Exp $"); +RCSID("$Id: pdcscrn.c,v 1.40 2006/09/20 07:36:04 wmcbrine Exp $"); + +/* Definitions for ACS_ULCORNER through ACS_STERLING, in the order + listed in curses.h */ + +chtype pdc_acs[] = +{ + (13 | A_ALTCHARSET), (14 | A_ALTCHARSET), (12 | A_ALTCHARSET), + (11 | A_ALTCHARSET), (22 | A_ALTCHARSET), (21 | A_ALTCHARSET), + (23 | A_ALTCHARSET), (24 | A_ALTCHARSET), (18 | A_ALTCHARSET), + (25 | A_ALTCHARSET), (15 | A_ALTCHARSET), (16 | A_ALTCHARSET), + (20 | A_ALTCHARSET), (1 | A_ALTCHARSET), (2 | A_ALTCHARSET), + (7 | A_ALTCHARSET), (8 | A_ALTCHARSET), '*', '<', '>', 'v', '^', + '#', '#', (0 | A_ALTCHARSET), (17 | A_ALTCHARSET), + (19 | A_ALTCHARSET), (26 | A_ALTCHARSET), (27 | A_ALTCHARSET), + (28 | A_ALTCHARSET), (29 | A_ALTCHARSET), (30 | A_ALTCHARSET) +}; /*man-start**************************************************************