# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit 5ce6c5c0324ef3b7d0f5b9e6e2ba4d87ae0d3bb1
    parent ef69118028afad1938951a1f7dff8db2aa557879
    Author: Aurélien Aptel <aurelien.aptel@gmail.com>
    Date:   Wed,  1 Sep 2010 17:21:09 +0200

    fixed IL and DL.

    Diffstat:
    Mst.c | 30+++++++++++-------------------

    1 file changed, 11 insertions(+), 19 deletions(-)
    diff --git a/st.c b/st.c
    @@ -392,8 +392,10 @@ ttyread(void) {

     	if((ret = read(cmdfd, buf, LEN(buf))) < 0)
     		die("Couldn't read from shell: %s\n", SERRNO);
    -	else
    +	else {
    +		printf("ttyread %d\n", ret);
     		tputs(buf, ret);
    +	}
     }

     void
    @@ -589,21 +591,16 @@ tinsertblankline(int n) {
     	Line blank;
     	int bot = term.bot;

    -	if(term.c.y > term.bot)
    -		bot = term.row - 1;
    -	else if(term.c.y < term.top)
    -		bot = term.top - 1;
    -	if(term.c.y + n >= bot) {
    -		tclearregion(0, term.c.y, term.col-1, bot);
    +	if(term.c.y < term.top || term.c.y > term.bot)
     		return;
    -	}
    +
    +	LIMIT(n, 0, bot-term.c.y+1);
    +	tclearregion(0, bot-n+1, term.col-1, bot);
     	for(i = bot; i >= term.c.y+n; i--) {
     		/* swap deleted line <-> blanked line */
     		blank = term.line[i];
     		term.line[i] = term.line[i-n];
     		term.line[i-n] = blank;
    -		/* blank it */
    -		memset(blank, 0, term.col * sizeof(Glyph));
     	}
     }

    @@ -613,21 +610,16 @@ tdeleteline(int n) {
     	Line blank;
     	int bot = term.bot;

    -	if(term.c.y > term.bot)
    -		bot = term.row - 1;
    -	else if(term.c.y < term.top)
    -		bot = term.top - 1;
    -	if(term.c.y + n >= bot) {
    -		tclearregion(0, term.c.y, term.col-1, bot);
    +	if(term.c.y < term.top || term.c.y > term.bot)
     		return;
    -	}
    +
    +	LIMIT(n, 0, bot-term.c.y+1);
    +	tclearregion(0, term.c.y, term.col-1, term.c.y+n-1);
     	for(i = term.c.y; i <= bot-n; i++) {
     		/* swap deleted line <-> blanked line */
     		blank = term.line[i];
     		term.line[i] = term.line[i+n];
     		term.line[i+n] = blank;
    -		/* blank it */
    -		memset(blank, 0, term.col * sizeof(Glyph));
     	}
     }