diff options
| author | Aurélien Aptel <aurelien.aptel@gmail.com> | 2010-09-01 17:21:09 +0200 | 
|---|---|---|
| committer | Aurélien Aptel <aurelien.aptel@gmail.com> | 2010-09-01 17:21:09 +0200 | 
| commit | 5ce6c5c0324ef3b7d0f5b9e6e2ba4d87ae0d3bb1 (patch) | |
| tree | 2cfa099cb73f60e0011f63ddc3ff742040ab9c2e | |
| parent | ef69118028afad1938951a1f7dff8db2aa557879 (diff) | |
| download | st-5ce6c5c0324ef3b7d0f5b9e6e2ba4d87ae0d3bb1.tar.xz st-5ce6c5c0324ef3b7d0f5b9e6e2ba4d87ae0d3bb1.zip | |
fixed IL and DL.
| -rw-r--r-- | st.c | 30 | 
1 files changed, 11 insertions, 19 deletions
| @@ -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));  	}  } | 
