# HG changeset patch # User ods15 # Date 1135535195 0 # Node ID 11459d1ff17cfcd5177f179f06ac909bec175da5 # Parent b654001ae89a8f23f08455b8a45d44c3dcbef3c4 Use termcap "erase to end of line" character code instead of using spaces to end of screen. diff -r b654001ae89a -r 11459d1ff17c mplayer.c --- a/mplayer.c Sun Dec 25 17:38:19 2005 +0000 +++ b/mplayer.c Sun Dec 25 18:26:35 2005 +0000 @@ -962,9 +962,8 @@ saddf(line, &pos, width, "%4.2fx ", playback_speed); // end - memset(&line[pos], ' ', width - pos); - line[width] = 0; - mp_msg(MSGT_AVSYNC, MSGL_STATUS, "%s\r", line); + line[pos] = 0; + mp_msg(MSGT_AVSYNC, MSGL_STATUS, "%s%s\r", line, erase_to_end_of_line); free(line); } diff -r b654001ae89a -r 11459d1ff17c osdep/getch2.c --- a/osdep/getch2.c Sun Dec 25 17:38:19 2005 +0000 +++ b/osdep/getch2.c Sun Dec 25 18:26:35 2005 +0000 @@ -40,6 +40,7 @@ int screen_width=80; int screen_height=24; +char * erase_to_end_of_line = "\033[J"; typedef struct { int len; @@ -78,6 +79,7 @@ static int success=0; int load_termcap(char *termtype){ + char * p; if(!termtype) termtype=getenv("TERM"); if(!termtype) termtype="unknown"; success=tgetent(term_buffer, termtype); @@ -88,6 +90,7 @@ screen_height=tgetnum("li"); if(screen_width<1 || screen_width>255) screen_width=80; if(screen_height<1 || screen_height>255) screen_height=24; + if ((p = tgetstr("cd",&term_p))) erase_to_end_of_line=p; termcap_add("kP",KEY_PGUP); termcap_add("kN",KEY_PGDWN); diff -r b654001ae89a -r 11459d1ff17c osdep/getch2.h --- a/osdep/getch2.h Sun Dec 25 17:38:19 2005 +0000 +++ b/osdep/getch2.h Sun Dec 25 18:26:35 2005 +0000 @@ -5,6 +5,9 @@ extern int screen_width; extern int screen_height; +/* Termcap code to erase to end of line */ +extern char * erase_to_end_of_line; + /* Get screen-size using IOCTL call. */ extern void get_screen_size();