The xinit() call needs to be behind all the tty init, otherwise all the - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 055a4f6d2cc727cc58509a39e130bdd8dbfa452b
 (DIR) parent e9c677816c0161a6702dabb244bd2fd918dcb0af
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Mon, 24 Sep 2012 11:04:26 +0200
       
       The xinit() call needs to be behind all the tty init, otherwise all the
       
       allocated structures are wrong. The xclear() is now done on purpose. Please
       keep X11 calls out of the way of pure tty-related calls.
       Diffstat:
         M st.c                                |       5 +++--
       
       1 file changed, 3 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -953,7 +953,7 @@ treset(void) {
                        term.tabs[i] = 1;
                term.top = 0, term.bot = term.row - 1;
                term.mode = MODE_WRAP;
       -        xclear(0, 0, xw.w, xw.h);
       +
                tclearregion(0, 0, term.col-1, term.row-1);
        }
        
       @@ -1728,6 +1728,7 @@ tputc(char *c) {
                                case 'c': /* RIS -- Reset to inital state */
                                        treset();
                                        term.esc = 0;
       +                                xclear(0, 0, xw.w, xw.h);
                                        xresettitle();
                                        break;
                                case '=': /* DECPAM -- Application keypad */
       @@ -2456,9 +2457,9 @@ main(int argc, char *argv[]) {
        
         run:
                setlocale(LC_CTYPE, "");
       -        xinit();
                tnew(80, 24);
                ttynew();
       +        xinit();
                selinit();
                run();
                return 0;