Annotation of researchv10no/ncurses/screen/_tscroll.c, revision 1.1.1.1

1.1       root        1: # include      "curses.ext"
                      2: /*     @(#) _tscroll.c: 1.1 10/15/83   (1.3    7/17/82)        */
                      3: 
                      4: _tscroll( win )
                      5: register WINDOW        *win;
                      6: {
                      7: 
                      8:        register chtype *sp;
                      9:        register int            i;
                     10:        register chtype *temp;
                     11:        register int    top, bot;
                     12: 
                     13: #ifdef DEBUG
                     14:        if( win == stdscr )
                     15:        {
                     16:                if(outf) fprintf( outf, "scroll( stdscr )\n" );
                     17:        }
                     18:        else
                     19:        {
                     20:                if( win == curscr)
                     21:                {
                     22:                        if(outf) fprintf( outf, "scroll( curscr )\n" );
                     23:                }
                     24:                else
                     25:                {
                     26:                        if(outf) fprintf( outf, "scroll( %x )\n", win );
                     27:                }
                     28:        }
                     29: #endif
                     30:        if( !win->_scroll )
                     31:        {
                     32:                return ERR;
                     33:        }
                     34:        /* scroll the window lines themselves up */
                     35:        top = win->_tmarg;
                     36:        bot = win->_bmarg;
                     37:        temp = win->_y[top];
                     38: #ifdef DEBUG
                     39:        if(outf)
                     40:        {
                     41:                fprintf( outf, "top = %d, bot = %d\n", top, bot );
                     42:        }
                     43: #endif DEBUG
                     44:        for (i = top; i < bot; i++)
                     45:        {
                     46:                win->_y[i] = win->_y[i+1];
                     47:        }
                     48:        /* Put a blank line in the opened up space */
                     49:        for (sp = temp; sp - temp < win->_maxx; )
                     50:                *sp++ = ' ';
                     51:        win->_y[bot] = temp;
                     52: #ifdef DEBUG
                     53:        if(outf)
                     54:        {
                     55:                fprintf(outf,"SCROLL win [0%o], curscr [0%o], top %d, bot %d\n",
                     56:                                win, curscr, top, bot);
                     57:                fprintf( outf, "Doing --> touchwin( 0%o )\n", win );
                     58:        }
                     59: #endif DEBUG
                     60:        win->_cury--;
                     61: /*
                     62: **     This section taken out because it wasn't allowing the scrolling of a
                     63: **     region smaller than the full screen.  Taken out on 10/12/83.  The 
                     64: **     function call touchwin(win) is done all the time now, & seems to do
                     65: **     the correct thing when it comes to scrolling with a smaller than screen
                     66: **     sized region, & a screen sized region.
                     67: **
                     68: **     if( win->_flags&_FULLWIN )
                     69: **     {
                     70: **             _scrdown();
                     71: **     }
                     72: **     else
                     73: **     {
                     74: **             musttouch = 1;
                     75: **     }
                     76: **     if( musttouch )
                     77: **             touchwin(win);
                     78: */
                     79:        touchwin(win);
                     80:        return OK;
                     81: }

unix.superglobalmegacorp.com

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