From a64690b41844a4fb65dc00c5d86768fdbd410e9b Mon Sep 17 00:00:00 2001 From: gunboy001 Date: Tue, 5 Nov 2019 17:15:39 +0100 Subject: [PATCH] cleanup --- ste.c | 208 ++++++++++++++-------------------------------------------- 1 file changed, 50 insertions(+), 158 deletions(-) diff --git a/ste.c b/ste.c index cf5b143..0413ec4 100644 --- a/ste.c +++ b/ste.c @@ -23,9 +23,6 @@ struct term { int off_y; int r_x; int r_y; - //int d_x; - //int xx; - //int yy; } cur; struct { @@ -65,7 +62,6 @@ static void curUpdateRender (void); static void cursorMove(int a); static int decimalSize (int n); static inline void lnMove (int y, int x); -//static int curRealToRender (row *rw, int c_x); /* Row operations */ static inline void rowInit (void); @@ -143,20 +139,15 @@ int main (int argc, char *argv[]) case (KEY_ENTER): case (10): case ('\r'): - //rowAddRow(t.cur.yy); - - //t.cur.off_x = 0; rowAddRow(t.cur.y); t.cur.y++; t.cur.x = 0; break; case (KEY_END): t.cur.y = rows.rownum - 1; - //t.cur.off_y = 0; break; case (KEY_HOME): t.cur.y = 0; - //t.cur.off_y = 0; break; default: if (c == KEY_STAB) c = '\t'; @@ -375,7 +366,7 @@ void fileOpen (char *filename) void rowAddLast (char *s, int len) { /* Extend the block of memory containing the lines */ - row *newr = reallocarray(rows.rw, rows.rownum + 1, sizeof(row)); + row *newr = realloc(rows.rw, (rows.rownum + 1) * sizeof(row)); if (newr == NULL) termDie("realloc in rowAddLast"); else rows.rw = newr; @@ -558,102 +549,82 @@ void rowDeleteRow (int pos) /* ----------------------------- row operations --------------------------- */ /* take care of the cursor movement */ -/*void cursorMove (int a) +void cursorMove (int a) { switch (a) { case (KEY_LEFT): - //if (t.cur.x <= 0 && !t.cur.off_x) { if (t.cur.x <= 0) { - if (t.cur.yy) { + if (t.cur.y) { t.cur.y--; - t.cur.yy--; - t.cur.x = rows.rw[t.cur.yy].size; + t.cur.x = rows.rw[t.cur.y].size; } - } else t.cur.x--; + } else + t.cur.x--; break; case (KEY_RIGHT): - if (t.cur.x >= rows.rw[t.cur.yy].size) { - if (t.cur.yy < rows.rownum - 1) { - t.cur.y++; - t.cur.yy++; - //if (t.cur.off_x) t.cur.off_x = 0; - //t.cur.x = rows.rw[t.cur.yy].size; - t.cur.x = 0; - } - } else t.cur.x++; + if (t.cur.x >= rows.rw[t.cur.y].size) { + if (t.cur.y < rows.rownum - 1) { + t.cur.y++; + t.cur.x = 0; + } + } else + t.cur.x++; break; case (KEY_UP): - if (t.cur.yy > 0) { - if (t.cur.y) { - t.cur.y--; - t.cur.yy--; - if (t.cur.x > rows.rw[t.cur.yy].size) { - //if (t.cur.off_x) t.cur.off_x = 0; - t.cur.x = rows.rw[t.cur.yy].size; - } + if (t.cur.y) { + t.cur.y--; + if (t.cur.x > rows.rw[t.cur.y].size) + t.cur.x = rows.rw[t.cur.y].size; } break; case (KEY_DOWN): - if (t.cur.yy < rows.rownum - 1) { + if (t.cur.y < rows.rownum - 1) { t.cur.y++; - t.cur.yy++; - if (t.cur.x > rows.rw[t.cur.yy].size) { - //if (t.cur.off_x) t.cur.off_x = 0; - t.cur.x = rows.rw[t.cur.yy].size; - } + if (t.cur.x > rows.rw[t.cur.y].size) + t.cur.x = rows.rw[t.cur.y].size; } break; - } } -}*/ - +} -/*void curUpdateRender (void) +void curUpdateRender () { - //Set y offset - if (t.cur.y >= t.dim.y) { - if (t.cur.y == t.dim.y) t.cur.off_y++; - else t.cur.off_y += t.cur.y - t.dim.y; - - t.cur.y = t.dim.y - 1; - - } else if (t.cur.y <= 0 && t.cur.off_y > 0) { - t.cur.off_y--; - t.cur.y = 0; - } + // y + if (t.cur.y >= t.cur.off_y && t.cur.y < t.cur.off_y + t.dim.y) { + t.cur.r_y = t.cur.y - t.cur.off_y; - //Old curRealToRender() - t.cur.r_x = curRealToRender(&rows.rw[t.cur.yy], t.cur.x); + } else if (t.cur.y >= t.cur.off_y + t.dim.y) { + if (t.cur.y == t.cur.off_y + t.dim.y) t.cur.off_y++; + else t.cur.off_y += t.cur.y - (t.cur.off_y + t.dim.y); + t.cur.r_y = t.dim.y - 1; + + } else if (t.cur.y < t.cur.off_y) { + t.cur.off_y -= t.cur.off_y - t.cur.y; + t.cur.r_y = 0; + } + // x + static int i; + for (i = 0, t.cur.r_x = 0; i < t.cur.x; i++) { + if (rows.rw[t.cur.y].chars[i] == '\t') t.cur.r_x += (TABSIZE - 1) - (t.cur.r_x % TABSIZE); + t.cur.r_x++; + } - if (t.cur.r_x >= t.dim.x) { - t.cur.off_x += (t.cur.r_x > t.dim.x ) ? (t.cur.r_x - t.dim.x) : 1; - t.cur.r_x = t.dim.x - 1; - } else if (t.cur.r_x <= 0) { - t.cur.off_x -= (t.cur.off_x > 0) ? 0 : t.cur.off_x; + if (t.cur.r_x >= t.cur.off_x && t.cur.r_x < t.dim.x) { + //ok + } else if (t.cur.r_x < t.cur.off_x) { + t.cur.off_x -= t.cur.off_x - t.cur.r_x; t.cur.r_x = 0; + + } else if (t.cur.r_x > t.cur.off_x + t.dim.x) { + if (t.cur.r_x == t.cur.off_x + t.dim.x) t.cur.off_x++; + else t.cur.off_x += t.cur.r_x - t.cur.off_x - t.dim.x; + t.cur.r_x = t.dim.x; } - //convert the cursor from real to render - // and update other cursor info - t.cur.yy = t.cur.y + t.cur.off_y; - //t.cur.xx = t.cur.x + t.cur.off_x; - //t.cur.d_x = t.cur.r_x - t.cur.x; -} */ - -/* convert the cursor matchoing the memory to the drawn one */ -/* -int curRealToRender (row *rw, int c_x) -{ - static int r_x = 0, i; - for (i = 0, r_x = 0; i < c_x; i++) { - if (rw->chars[i] == '\t') r_x += (TABSIZE - 1) - (r_x % TABSIZE); - r_x++; - } - return r_x; -}*/ +} /*---------------------------------- scroll ------------------------------------*/ @@ -699,8 +670,6 @@ void handleDel (int select) } } -/*--------------------------------- garbage ------------------------------------*/ - void updateInfo (void) { getmaxyx(stdscr, t.dim.y, t.dim.x); @@ -709,81 +678,4 @@ void updateInfo (void) t.dim.x -= t.pad + 1; } -/* take care of the cursor movement */ -void cursorMove (int a) -{ - switch (a) { - case (KEY_LEFT): - if (t.cur.x <= 0) { - if (t.cur.y) { - t.cur.y--; - t.cur.x = rows.rw[t.cur.y].size; - } - } else - t.cur.x--; - break; - - case (KEY_RIGHT): - if (t.cur.x >= rows.rw[t.cur.y].size) { - if (t.cur.y < rows.rownum - 1) { - t.cur.y++; - t.cur.x = 0; - } - } else - t.cur.x++; - break; - - case (KEY_UP): - if (t.cur.y) { - t.cur.y--; - if (t.cur.x > rows.rw[t.cur.y].size) - t.cur.x = rows.rw[t.cur.y].size; - } - break; - - case (KEY_DOWN): - if (t.cur.y < rows.rownum - 1) { - t.cur.y++; - if (t.cur.x > rows.rw[t.cur.y].size) - t.cur.x = rows.rw[t.cur.y].size; - } - break; - } -} - -void curUpdateRender () -{ - // y - if (t.cur.y >= t.cur.off_y && t.cur.y < t.cur.off_y + t.dim.y) { - t.cur.r_y = t.cur.y - t.cur.off_y; - - } else if (t.cur.y >= t.cur.off_y + t.dim.y) { - if (t.cur.y == t.cur.off_y + t.dim.y) t.cur.off_y++; - else t.cur.off_y += t.cur.y - (t.cur.off_y + t.dim.y); - t.cur.r_y = t.dim.y - 1; - - } else if (t.cur.y < t.cur.off_y) { - t.cur.off_y -= t.cur.off_y - t.cur.y; - t.cur.r_y = 0; - } - - // x - static int i; - for (i = 0, t.cur.r_x = 0; i < t.cur.x; i++) { - if (rows.rw[t.cur.y].chars[i] == '\t') t.cur.r_x += (TABSIZE - 1) - (t.cur.r_x % TABSIZE); - t.cur.r_x++; - } - - if (t.cur.r_x >= t.cur.off_x && t.cur.r_x < t.dim.x) { - //ok - } else if (t.cur.r_x < t.cur.off_x) { - t.cur.off_x -= t.cur.off_x - t.cur.r_x; - t.cur.r_x = 0; - - } else if (t.cur.r_x > t.cur.off_x + t.dim.x) { - if (t.cur.r_x == t.cur.off_x + t.dim.x) t.cur.off_x++; - else t.cur.off_x += t.cur.r_x - t.cur.off_x - t.dim.x; - t.cur.r_x = t.dim.x; - } -} /*--------------------------------- testing ------------------------------------*/