mirror of
https://github.com/VARCem/PDCurses.git
synced 2026-09-25 00:05:16 +00:00
Removed the XCURSES ifdefs from Xinitscr() and delscreen(), which now
also calls XCursesExit().
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
* See the file maintain.er for details of the current maintainer. *
|
||||
************************************************************************/
|
||||
|
||||
/* $Id: curspriv.h,v 1.91 2006/07/16 18:41:53 wmcbrine Exp $ */
|
||||
/* $Id: curspriv.h,v 1.92 2006/07/16 19:56:07 wmcbrine Exp $ */
|
||||
|
||||
/* CURSPRIV.H
|
||||
|
||||
@@ -116,7 +116,7 @@ int PDC_reset_prog_mode(void);
|
||||
int PDC_reset_shell_mode(void);
|
||||
int PDC_resize_screen(int, int);
|
||||
int PDC_scr_close(void);
|
||||
int PDC_scr_open(SCREEN *);
|
||||
int PDC_scr_open(int, char **);
|
||||
int PDC_set_ctrl_break(bool);
|
||||
int PDC_set_cursor_mode(int, int);
|
||||
int PDC_set_font(int);
|
||||
@@ -142,7 +142,9 @@ int PDC_query_adapter_type(void);
|
||||
|
||||
#ifdef XCURSES
|
||||
int XCursesInstructAndWait(int);
|
||||
int XCursesInitscr(int, char **);
|
||||
# define PDC_scr_exit() XCursesExit()
|
||||
#else
|
||||
# define PDC_scr_exit() if (SP) free(SP)
|
||||
#endif
|
||||
|
||||
#ifdef PDCDEBUG
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
# include <sys/movedata.h>
|
||||
#endif
|
||||
|
||||
RCSID("$Id: pdcscrn.c,v 1.32 2006/07/16 18:08:16 wmcbrine Exp $");
|
||||
RCSID("$Id: pdcscrn.c,v 1.33 2006/07/16 19:56:07 wmcbrine Exp $");
|
||||
|
||||
Regs regs; /* used in various other modules */
|
||||
|
||||
@@ -109,11 +109,11 @@ int PDC_scr_close(void)
|
||||
The DOS platform will never fail.
|
||||
|
||||
Portability:
|
||||
PDCurses int PDC_scr_open(SCREEN *internal);
|
||||
PDCurses int PDC_scr_open(int argc, char **argv);
|
||||
|
||||
**man-end****************************************************************/
|
||||
|
||||
int PDC_scr_open(SCREEN *internal)
|
||||
int PDC_scr_open(int argc, char **argv)
|
||||
{
|
||||
#if SMALL || MEDIUM
|
||||
# ifndef __PACIFIC__
|
||||
@@ -123,44 +123,49 @@ int PDC_scr_open(SCREEN *internal)
|
||||
#endif
|
||||
PDC_LOG(("PDC_scr_open() - called\n"));
|
||||
|
||||
internal->orig_attr = FALSE;
|
||||
internal->orig_emulation = getdosmembyte(0x487);
|
||||
if ((SP = (SCREEN *)calloc(1, sizeof(SCREEN))) == (SCREEN *)NULL)
|
||||
return ERR;
|
||||
|
||||
PDC_get_cursor_pos(&internal->cursrow, &internal->curscol);
|
||||
SP->orig_attr = FALSE;
|
||||
SP->orig_emulation = getdosmembyte(0x487);
|
||||
|
||||
internal->direct_video = TRUE; /* Assume that we can */
|
||||
internal->video_seg = 0xb000; /* Base screen segment addr */
|
||||
internal->video_ofs = 0x0; /* Base screen segment ofs */
|
||||
internal->video_page = 0; /* Current Video Page */
|
||||
internal->cursor = PDC_get_cursor_mode();
|
||||
PDC_get_cursor_pos(&SP->cursrow, &SP->curscol);
|
||||
|
||||
internal->adapter = PDC_query_adapter_type();
|
||||
internal->scrnmode = PDC_get_scrn_mode();
|
||||
SP->direct_video = TRUE; /* Assume that we can */
|
||||
SP->video_seg = 0xb000; /* Base screen segment addr */
|
||||
SP->video_ofs = 0x0; /* Base screen segment ofs */
|
||||
SP->video_page = 0; /* Current Video Page */
|
||||
SP->cursor = PDC_get_cursor_mode();
|
||||
|
||||
internal->orig_font = internal->font = PDC_get_font();
|
||||
internal->lines = PDC_get_rows();
|
||||
internal->cols = PDC_get_columns();
|
||||
SP->adapter = PDC_query_adapter_type();
|
||||
SP->scrnmode = PDC_get_scrn_mode();
|
||||
|
||||
internal->orig_cursor = internal->cursor;
|
||||
internal->orgcbr = PDC_get_ctrl_break();
|
||||
SP->orig_font = SP->font = PDC_get_font();
|
||||
SP->lines = PDC_get_rows();
|
||||
SP->cols = PDC_get_columns();
|
||||
|
||||
SP->orig_cursor = SP->cursor;
|
||||
SP->orgcbr = PDC_get_ctrl_break();
|
||||
|
||||
/* If the environment variable PDCURSES_BIOS is set, the DOS
|
||||
int10() BIOS calls are used in place of direct video memory
|
||||
access. */
|
||||
|
||||
if (getenv("PDCURSES_BIOS") != NULL)
|
||||
internal->direct_video = FALSE;
|
||||
SP->direct_video = FALSE;
|
||||
|
||||
/* This code for preserving the current screen. */
|
||||
|
||||
if (getenv("PDC_RESTORE_SCREEN") != NULL)
|
||||
{
|
||||
saved_lines = internal->lines;
|
||||
saved_cols = internal->cols;
|
||||
saved_lines = SP->lines;
|
||||
saved_cols = SP->cols;
|
||||
if ((saved_screen = (unsigned short*)malloc(saved_lines
|
||||
* saved_cols * sizeof(unsigned short))) == NULL)
|
||||
return ERR;
|
||||
|
||||
{
|
||||
SP->_preserve = FALSE;
|
||||
return OK;
|
||||
}
|
||||
#ifdef __DJGPP__
|
||||
dosmemget ((unsigned long)_FAR_POINTER(SP->video_seg,
|
||||
SP->video_ofs), saved_lines * saved_cols *
|
||||
@@ -183,7 +188,7 @@ int PDC_scr_open(SCREEN *internal)
|
||||
#endif
|
||||
}
|
||||
|
||||
internal->_preserve = (getenv("PDC_PRESERVE_SCREEN") != NULL);
|
||||
SP->_preserve = (getenv("PDC_PRESERVE_SCREEN") != NULL);
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <curses.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
RCSID("$Id: pdcscrn.c,v 1.28 2006/07/16 18:08:16 wmcbrine Exp $");
|
||||
RCSID("$Id: pdcscrn.c,v 1.29 2006/07/16 19:56:07 wmcbrine Exp $");
|
||||
|
||||
#ifdef EMXVIDEO
|
||||
static unsigned char *saved_screen = NULL;
|
||||
@@ -132,36 +132,38 @@ bool PDC_scrn_modes_equal(int mode1, int mode2)
|
||||
The DOS platform will never fail.
|
||||
|
||||
Portability:
|
||||
PDCurses int PDC_scr_open(SCREEN *internal);
|
||||
PDCurses int PDC_scr_open(int argc, char **argv);
|
||||
|
||||
**man-end****************************************************************/
|
||||
|
||||
int PDC_scr_open(SCREEN *internal)
|
||||
int PDC_scr_open(int argc, char **argv)
|
||||
{
|
||||
char *ptr;
|
||||
#ifndef EMXVIDEO
|
||||
USHORT totchars;
|
||||
#endif
|
||||
PDC_LOG(("PDC_scr_open() - called\n"));
|
||||
|
||||
PDC_LOG(("PDC_scr_open() - called. internal: %x\n", internal));
|
||||
if ((SP = (SCREEN *)calloc(1, sizeof(SCREEN))) == (SCREEN *)NULL)
|
||||
return ERR;
|
||||
|
||||
#ifdef EMXVIDEO
|
||||
v_init();
|
||||
#endif
|
||||
internal->orig_attr = FALSE;
|
||||
internal->orig_emulation = 0;
|
||||
SP->orig_attr = FALSE;
|
||||
SP->orig_emulation = 0;
|
||||
|
||||
PDC_get_cursor_pos(&internal->cursrow, &internal->curscol);
|
||||
PDC_get_cursor_pos(&SP->cursrow, &SP->curscol);
|
||||
|
||||
internal->cursor = PDC_get_cursor_mode();
|
||||
SP->cursor = PDC_get_cursor_mode();
|
||||
#ifdef EMXVIDEO
|
||||
internal->tahead = -1;
|
||||
SP->tahead = -1;
|
||||
#endif
|
||||
|
||||
#ifndef EMXVIDEO
|
||||
PDC_query_adapter_type(&internal->adapter);
|
||||
PDC_get_scrn_mode(&internal->scrnmode);
|
||||
PDC_get_keyboard_info(&internal->kbdinfo);
|
||||
PDC_query_adapter_type(&SP->adapter);
|
||||
PDC_get_scrn_mode(&SP->scrnmode);
|
||||
PDC_get_keyboard_info(&SP->kbdinfo);
|
||||
|
||||
PDC_LOG(("PDC_scr_open() - after PDC_get_keyboard_info(). cb: %x, "
|
||||
"fsMask: %x, chTurnAround: %x, fsInterim: %x, fsState: %x\n",
|
||||
@@ -173,16 +175,16 @@ int PDC_scr_open(SCREEN *internal)
|
||||
|
||||
PDC_set_keyboard_binary();
|
||||
#else
|
||||
internal->adapter = PDC_query_adapter_type();
|
||||
if (internal->adapter == _UNIX_MONO)
|
||||
internal->mono = TRUE;
|
||||
SP->adapter = PDC_query_adapter_type();
|
||||
if (SP->adapter == _UNIX_MONO)
|
||||
SP->mono = TRUE;
|
||||
#endif
|
||||
internal->orig_font = internal->font = PDC_get_font();
|
||||
internal->lines = PDC_get_rows();
|
||||
internal->cols = PDC_get_columns();
|
||||
internal->orig_cursor = internal->cursor;
|
||||
internal->orgcbr = PDC_get_ctrl_break();
|
||||
internal->sizeable = TRUE;
|
||||
SP->orig_font = SP->font = PDC_get_font();
|
||||
SP->lines = PDC_get_rows();
|
||||
SP->cols = PDC_get_columns();
|
||||
SP->orig_cursor = SP->cursor;
|
||||
SP->orgcbr = PDC_get_ctrl_break();
|
||||
SP->sizeable = TRUE;
|
||||
|
||||
/* This code for preserving the current screen */
|
||||
|
||||
@@ -194,18 +196,24 @@ int PDC_scr_open(SCREEN *internal)
|
||||
#endif
|
||||
if (ptr != NULL)
|
||||
{
|
||||
saved_lines = internal->lines;
|
||||
saved_cols = internal->cols;
|
||||
saved_lines = SP->lines;
|
||||
saved_cols = SP->cols;
|
||||
#ifdef EMXVIDEO
|
||||
if ((saved_screen = (unsigned char *)malloc(2 * saved_lines *
|
||||
saved_cols * sizeof(unsigned char))) == NULL)
|
||||
return ERR;
|
||||
{
|
||||
SP->_preserve = FALSE;
|
||||
return OK;
|
||||
}
|
||||
|
||||
v_getline(saved_screen, 0, 0, saved_lines * saved_cols);
|
||||
#else
|
||||
if ((saved_screen = (PCH)malloc(2 * saved_lines *
|
||||
saved_cols * sizeof(unsigned char))) == NULL)
|
||||
return ERR;
|
||||
{
|
||||
SP->_preserve = FALSE;
|
||||
return OK;
|
||||
}
|
||||
|
||||
totchars = saved_lines * saved_cols * 2;
|
||||
VioReadCellStr((PCH)saved_screen, &totchars, 0, 0, (HVIO)NULL);
|
||||
@@ -218,7 +226,7 @@ int PDC_scr_open(SCREEN *internal)
|
||||
if (DosScanEnv("PDC_PRESERVE_SCREEN", (PSZ *)&ptr))
|
||||
ptr = NULL;
|
||||
#endif
|
||||
internal->_preserve = (ptr != NULL);
|
||||
SP->_preserve = (ptr != NULL);
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
# undef wnoutrefresh
|
||||
#endif
|
||||
|
||||
RCSID("$Id: initscr.c,v 1.55 2006/07/16 18:41:53 wmcbrine Exp $");
|
||||
RCSID("$Id: initscr.c,v 1.56 2006/07/16 19:56:07 wmcbrine Exp $");
|
||||
|
||||
const char *_curses_notice = "PDCurses 3.0 - Public Domain 2006";
|
||||
|
||||
@@ -172,23 +172,12 @@ WINDOW *Xinitscr(int argc, char *argv[])
|
||||
if (SP != (SCREEN *)NULL && SP->alive)
|
||||
return NULL;
|
||||
|
||||
#ifdef XCURSES
|
||||
if (XCursesInitscr(argc, argv) == ERR)
|
||||
exit(7);
|
||||
#endif
|
||||
|
||||
#ifdef XCURSES
|
||||
if (SP == (SCREEN *)NULL) /* SP already attached in XCursesInitscr() */
|
||||
#else
|
||||
if ((SP = (SCREEN *)calloc(1, sizeof(SCREEN))) == (SCREEN *)NULL)
|
||||
#endif
|
||||
if (PDC_scr_open(argc, argv) == ERR)
|
||||
{
|
||||
fprintf(stderr, "initscr(): Unable to create SP\n");
|
||||
exit(8);
|
||||
}
|
||||
|
||||
PDC_scr_open(SP);
|
||||
|
||||
SP->autocr = TRUE; /* cr -> lf by default */
|
||||
SP->raw_out = FALSE; /* tty I/O modes */
|
||||
SP->raw_inp = FALSE; /* tty I/O modes */
|
||||
@@ -369,13 +358,9 @@ void delscreen(SCREEN *sp)
|
||||
curscr = (WINDOW *)NULL;
|
||||
SP->alive = FALSE;
|
||||
|
||||
#ifndef XCURSES
|
||||
if (SP)
|
||||
{
|
||||
free(SP);
|
||||
SP = (SCREEN *)NULL;
|
||||
}
|
||||
#endif
|
||||
PDC_scr_exit();
|
||||
|
||||
SP = (SCREEN *)NULL;
|
||||
}
|
||||
|
||||
int resize_term(int nlines, int ncols)
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
#define INCLUDE_WINDOWS_H
|
||||
#include <curses.h>
|
||||
|
||||
RCSID("$Id: pdcscrn.c,v 1.38 2006/07/16 18:08:16 wmcbrine Exp $");
|
||||
RCSID("$Id: pdcscrn.c,v 1.39 2006/07/16 19:56:07 wmcbrine Exp $");
|
||||
|
||||
#define PDC_RESTORE_NONE 0
|
||||
#define PDC_RESTORE_BUFFER 1
|
||||
@@ -125,11 +125,11 @@ int PDC_scr_close(void)
|
||||
The DOS platform will never fail.
|
||||
|
||||
Portability:
|
||||
PDCurses int PDC_scr_open(SCREEN *internal);
|
||||
PDCurses int PDC_scr_open(int argc, char **argv);
|
||||
|
||||
**man-end****************************************************************/
|
||||
|
||||
int PDC_scr_open(SCREEN *internal)
|
||||
int PDC_scr_open(int argc, char **argv)
|
||||
{
|
||||
COORD bufsize, origin;
|
||||
SMALL_RECT rect;
|
||||
@@ -142,6 +142,9 @@ int PDC_scr_open(SCREEN *internal)
|
||||
#endif
|
||||
PDC_LOG(("PDC_scr_open() - called\n"));
|
||||
|
||||
if ((SP = (SCREEN *)calloc(1, sizeof(SCREEN))) == (SCREEN *)NULL)
|
||||
return ERR;
|
||||
|
||||
hConOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
hConIn = GetStdHandle(STD_INPUT_HANDLE);
|
||||
|
||||
@@ -149,34 +152,34 @@ int PDC_scr_open(SCREEN *internal)
|
||||
GetConsoleScreenBufferInfo(hConOut, &orig_scr);
|
||||
GetConsoleMode(hConIn, &dwConsoleMode);
|
||||
|
||||
internal->lines = ((str = getenv("LINES")) != NULL) ?
|
||||
SP->lines = ((str = getenv("LINES")) != NULL) ?
|
||||
atoi(str) : PDC_get_rows();
|
||||
|
||||
internal->cols = ((str = getenv("COLS")) != NULL) ?
|
||||
SP->cols = ((str = getenv("COLS")) != NULL) ?
|
||||
atoi(str) : PDC_get_columns();
|
||||
|
||||
if (internal->lines < 2 || internal->lines > csbi.dwMaximumWindowSize.Y)
|
||||
if (SP->lines < 2 || SP->lines > csbi.dwMaximumWindowSize.Y)
|
||||
{
|
||||
fprintf(stderr, "LINES value must be >= 2 and <= %d: got %d\n",
|
||||
csbi.dwMaximumWindowSize.Y, internal->lines);
|
||||
csbi.dwMaximumWindowSize.Y, SP->lines);
|
||||
|
||||
return ERR;
|
||||
}
|
||||
|
||||
if (internal->cols < 2 || internal->cols > csbi.dwMaximumWindowSize.X)
|
||||
if (SP->cols < 2 || SP->cols > csbi.dwMaximumWindowSize.X)
|
||||
{
|
||||
fprintf(stderr, "COLS value must be >= 2 and <= %d: got %d\n",
|
||||
csbi.dwMaximumWindowSize.X, internal->cols);
|
||||
csbi.dwMaximumWindowSize.X, SP->cols);
|
||||
|
||||
return ERR;
|
||||
}
|
||||
|
||||
internal->orig_fore = csbi.wAttributes & 0x0f;
|
||||
internal->orig_back = (csbi.wAttributes & 0xf0) >> 4;
|
||||
SP->orig_fore = csbi.wAttributes & 0x0f;
|
||||
SP->orig_back = (csbi.wAttributes & 0xf0) >> 4;
|
||||
|
||||
internal->orig_attr = TRUE;
|
||||
SP->orig_attr = TRUE;
|
||||
|
||||
internal->_restore = PDC_RESTORE_NONE;
|
||||
SP->_restore = PDC_RESTORE_NONE;
|
||||
|
||||
if (getenv("PDC_RESTORE_SCREEN") != NULL)
|
||||
{
|
||||
@@ -246,13 +249,13 @@ int PDC_scr_open(SCREEN *internal)
|
||||
return ERR;
|
||||
}
|
||||
|
||||
internal->_restore = PDC_RESTORE_WINDOW;
|
||||
SP->_restore = PDC_RESTORE_WINDOW;
|
||||
}
|
||||
else
|
||||
internal->_restore = PDC_RESTORE_BUFFER;
|
||||
SP->_restore = PDC_RESTORE_BUFFER;
|
||||
}
|
||||
|
||||
internal->_preserve = (getenv("PDC_PRESERVE_SCREEN") != NULL);
|
||||
SP->_preserve = (getenv("PDC_PRESERVE_SCREEN") != NULL);
|
||||
|
||||
bufsize.X = orig_scr.srWindow.Right - orig_scr.srWindow.Left + 1;
|
||||
bufsize.Y = orig_scr.srWindow.Bottom - orig_scr.srWindow.Top + 1;
|
||||
@@ -268,14 +271,14 @@ int PDC_scr_open(SCREEN *internal)
|
||||
|
||||
PDC_reset_prog_mode();
|
||||
|
||||
PDC_get_cursor_pos(&internal->cursrow, &internal->curscol);
|
||||
PDC_get_cursor_pos(&SP->cursrow, &SP->curscol);
|
||||
|
||||
internal->cursor = PDC_get_cursor_mode();
|
||||
internal->adapter = PDC_query_adapter_type();
|
||||
SP->cursor = PDC_get_cursor_mode();
|
||||
SP->adapter = PDC_query_adapter_type();
|
||||
|
||||
internal->orig_cursor = internal->cursor;
|
||||
SP->orig_cursor = SP->cursor;
|
||||
|
||||
internal->orgcbr = PDC_get_ctrl_break();
|
||||
SP->orgcbr = PDC_get_ctrl_break();
|
||||
|
||||
#ifdef PDC_THREAD_BUILD
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
#include "pdcx11.h"
|
||||
|
||||
RCSID("$Id: pdcscrn.c,v 1.26 2006/07/16 18:08:16 wmcbrine Exp $");
|
||||
RCSID("$Id: pdcscrn.c,v 1.27 2006/07/16 19:56:07 wmcbrine Exp $");
|
||||
|
||||
bool GLOBAL_sb_on = FALSE;
|
||||
bool GLOBAL_slk_on = FALSE;
|
||||
@@ -63,30 +63,33 @@ int PDC_scr_close(void)
|
||||
The DOS platform will never fail.
|
||||
|
||||
Portability:
|
||||
PDCurses int PDC_scr_open(SCREEN *internal);
|
||||
PDCurses int PDC_scr_open(int argc, char **argv);
|
||||
|
||||
**man-end****************************************************************/
|
||||
|
||||
int PDC_scr_open(SCREEN *internal)
|
||||
int PDC_scr_open(int argc, char **argv)
|
||||
{
|
||||
extern bool sb_started;
|
||||
|
||||
PDC_LOG(("PDC_scr_open() - called\n"));
|
||||
|
||||
internal->cursrow = internal->curscol = 0;
|
||||
internal->cursor = 0;
|
||||
internal->adapter = 0;
|
||||
internal->orig_cursor = internal->cursor;
|
||||
internal->orig_attr = FALSE;
|
||||
internal->orgcbr = 0;
|
||||
internal->sb_on = sb_started;
|
||||
internal->sb_total_y = 0;
|
||||
internal->sb_viewport_y = 0;
|
||||
internal->sb_cur_y = 0;
|
||||
internal->sb_total_x = 0;
|
||||
internal->sb_viewport_x = 0;
|
||||
internal->sb_cur_x = 0;
|
||||
internal->line_color = COLOR_WHITE;
|
||||
if ((XCursesInitscr(argc, argv) == ERR) || (SP == (SCREEN *)NULL))
|
||||
return ERR;
|
||||
|
||||
SP->cursrow = SP->curscol = 0;
|
||||
SP->cursor = 0;
|
||||
SP->adapter = 0;
|
||||
SP->orig_cursor = SP->cursor;
|
||||
SP->orig_attr = FALSE;
|
||||
SP->orgcbr = 0;
|
||||
SP->sb_on = sb_started;
|
||||
SP->sb_total_y = 0;
|
||||
SP->sb_viewport_y = 0;
|
||||
SP->sb_cur_y = 0;
|
||||
SP->sb_total_x = 0;
|
||||
SP->sb_viewport_x = 0;
|
||||
SP->sb_cur_x = 0;
|
||||
SP->line_color = COLOR_WHITE;
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* See the file maintain.er for details of the current maintainer. *
|
||||
************************************************************************/
|
||||
|
||||
/* $Id: pdcx11.h,v 1.36 2006/07/16 18:41:53 wmcbrine Exp $ */
|
||||
/* $Id: pdcx11.h,v 1.37 2006/07/16 19:56:08 wmcbrine Exp $ */
|
||||
|
||||
#define CURSES_LIBRARY 1
|
||||
#ifdef HAVE_CONFIG_H
|
||||
@@ -295,6 +295,7 @@ void XCursesEndwin(void);
|
||||
void XCursesExitCursesProcess(int, char *);
|
||||
void XCursesExitXCursesProcess(int, int, char *);
|
||||
int XCursesInstruct(int);
|
||||
int XCursesInitscr(int, char **);
|
||||
|
||||
void SelectionOff(void);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user