Annotation of researchv10no/ncurses/screen/_pos.c, revision 1.1

1.1     ! root        1: /*     @(#) _pos.c: 1.1 10/15/83       (1.21   2/11/83)        */
        !             2: 
        !             3: #include "curses.ext"
        !             4: 
        !             5: extern int     _outch();
        !             6: 
        !             7: /* Position the SP->curptr to (row, column) which start at 0. */
        !             8: _pos(row, column)
        !             9: int    row;
        !            10: int    column;
        !            11: {
        !            12: #ifdef DEBUG
        !            13:     if(outf) fprintf(outf, "_pos from row %d, col %d => row %d, col %d\n",
        !            14:            SP->phys_y, SP->phys_x, row, column);
        !            15: #endif
        !            16:        if( SP->phys_x == column && SP->phys_y == row )
        !            17:        {
        !            18:                return; /* already there */
        !            19:        }
        !            20:        /*
        !            21:         * Many terminals can't move the cursor when in standout mode.
        !            22:         * We must be careful, however, because HP's and cookie terminals
        !            23:         * will drop a cookie when we do this.
        !            24:         */
        !            25:        if( !move_standout_mode && SP->phys_gr && magic_cookie_glitch < 0 )
        !            26:        {
        !            27:                if( !ceol_standout_glitch )
        !            28:                {
        !            29:                        _clearhl ();
        !            30:                }
        !            31:        }
        !            32:        /* some terminals can't move in insert mode */
        !            33:        if( SP->phys_irm == 1 && !move_insert_mode )
        !            34:        {
        !            35:                tputs(exit_insert_mode, 1, _outch);
        !            36:                SP->phys_irm = 0;
        !            37:        }
        !            38:        /* If we try to move outside the scrolling region, widen it */
        !            39:        if( row<SP->phys_top_mgn || row>SP->phys_bot_mgn )
        !            40:        {
        !            41:                _window(0, lines-1, 0, columns-1);
        !            42:                _setwind();
        !            43:        }
        !            44:        mvcur(SP->phys_y, SP->phys_x, row, column);
        !            45:        SP->phys_x = column;
        !            46:        SP->phys_y = row;
        !            47: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.