Got rid of code duplication in tnew() and tresize().
authorAlexander Sedov <alex0player@gmail.com>
Sun, 14 Apr 2013 20:12:10 +0000 (00:12 +0400)
committerChristoph Lohmann <20h@r-36.net>
Thu, 18 Apr 2013 04:39:43 +0000 (06:39 +0200)
Signed-off-by: Christoph Lohmann <20h@r-36.net>
st.c

diff --git a/st.c b/st.c
index 56dc94c..fc07a46 100644 (file)
--- a/st.c
+++ b/st.c
@@ -1195,22 +1195,10 @@ treset(void) {
 
 void
 tnew(int col, int row) {
-       /* set screen size */
-       term.row = row;
-       term.col = col;
-       term.line = xmalloc(term.row * sizeof(Line));
-       term.alt  = xmalloc(term.row * sizeof(Line));
-       term.dirty = xmalloc(term.row * sizeof(*term.dirty));
-       term.tabs = xmalloc(term.col * sizeof(*term.tabs));
-
-       for(row = 0; row < term.row; row++) {
-               term.line[row] = xmalloc(term.col * sizeof(Glyph));
-               term.alt [row] = xmalloc(term.col * sizeof(Glyph));
-               term.dirty[row] = 0;
-       }
-
+       /* setting "zero" terminal to resize it later */
+       memset(&term, 0, sizeof(Term));
+       tresize(col, row);
        term.numlock = 1;
-       memset(term.tabs, 0, term.col * sizeof(*term.tabs));
        /* setup screen */
        treset();
 }