X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftty%2Flib_mvcur.c;h=9cecc5dbfef0003021c143573fc19fd732b358d3;hp=c4f482384730e6a5d66e879d80afe44fe84048a7;hb=3a0d9d27e0cf115ff9dcc6163c251bccaa62bd7d;hpb=404cc3f5b0751dd219565139f825c5a4d445f651 diff --git a/ncurses/tty/lib_mvcur.c b/ncurses/tty/lib_mvcur.c index c4f48238..9cecc5db 100644 --- a/ncurses/tty/lib_mvcur.c +++ b/ncurses/tty/lib_mvcur.c @@ -159,10 +159,15 @@ #define CUR SP_TERMTYPE #endif -MODULE_ID("$Id: lib_mvcur.c,v 1.120 2009/05/10 00:52:29 tom Exp $") +MODULE_ID("$Id: lib_mvcur.c,v 1.122 2009/10/24 22:05:03 tom Exp $") #define WANT_CHAR(sp, y, x) (sp)->_newscr->_line[y].text[x] /* desired state */ + +#if NCURSES_SP_FUNCS +#define BAUDRATE(sp) sp->_term->_baudrate /* bits per second */ +#else #define BAUDRATE(sp) cur_term->_baudrate /* bits per second */ +#endif #if defined(MAIN) || defined(NCURSES_TEST) #include @@ -279,6 +284,9 @@ NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_mvcur_resume) (NCURSES_SP_DCL0) /* what to do at initialization time and after each shellout */ { + if (SP_PARM && !IsTermInfo(SP_PARM)) + return; + /* initialize screen for cursor access */ if (enter_ca_mode) { NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx @@ -451,7 +459,6 @@ NCURSES_EXPORT(void) _nc_mvcur_init(void) { NCURSES_SP_NAME(_nc_mvcur_init) (CURRENT_SCREEN); - _nc_mvcur_resume(); } #endif @@ -460,7 +467,10 @@ NCURSES_SP_NAME(_nc_mvcur_wrap) (NCURSES_SP_DCL0) /* wrap up cursor-addressing mode */ { /* leave cursor at screen bottom */ - mvcur(-1, -1, screen_lines(CURRENT_SCREEN) - 1, 0); + TINFO_MVCUR(NCURSES_SP_ARGx -1, -1, screen_lines(SP_PARM) - 1, 0); + + if (SP_PARM && !IsTermInfo(SP_PARM)) + return; /* set cursor to normal mode */ if (SP_PARM->_cursor != -1) { @@ -932,16 +942,15 @@ onscreen_mvcur(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew, bool ovw) return (ERR); } -/* optimized cursor move from (yold, xold) to (ynew, xnew) */ NCURSES_EXPORT(int) -NCURSES_SP_NAME(mvcur) (NCURSES_SP_DCLx - int yold, int xold, int ynew, int xnew) +TINFO_MVCUR(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew) +/* optimized cursor move from (yold, xold) to (ynew, xnew) */ { NCURSES_CH_T oldattr; int code; - TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%d,%d,%d,%d)"), - yold, xold, ynew, xnew)); + TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("_nc_tinfo_mvcur(%p,%d,%d,%d,%d)"), + (void *) SP_PARM, yold, xold, ynew, xnew)); if (SP_PARM == 0) { code = ERR; @@ -1032,7 +1041,7 @@ NCURSES_SP_NAME(mvcur) (NCURSES_SP_DCLx returnCode(code); } -#if NCURSES_SP_FUNCS +#if NCURSES_SP_FUNCS && !defined(USE_TERM_DRIVER) NCURSES_EXPORT(int) mvcur(int yold, int xold, int ynew, int xnew) {