Introduction
Introduction Statistics Contact Development Disclaimer Help
tadded macro to test flags, removed tmovecursor(). - st - [fork] customized bui…
git clone git://src.adamsgaard.dk/st
Log
Files
Refs
README
LICENSE
---
commit 5d611cd5476b56884077120bc2a6ba9727fcdd2c
parent 4db3df312ada9d92564d5580fb4e67f7704efff8
Author: AurĂ©lien Aptel <[email protected]>
Date: Thu, 26 Aug 2010 23:43:08 +0200
added macro to test flags, removed tmovecursor().
Diffstat:
M st.c | 42 +++++++++++------------------…
1 file changed, 15 insertions(+), 27 deletions(-)
---
diff --git a/st.c b/st.c
t@@ -34,6 +34,7 @@
#define BETWEEN(x, a, b) ((a) <= (x) && (x) <= (b))
#define LIMIT(x, a, b) (x) = (x) < (a) ? (a) : (x) > (b) ? (b) : (x)
#define ATTRCMP(a, b) ((a).mode != (b).mode || (a).fg != (b).fg || (a).bg != (…
+#define IS_SET(flag) (term.mode & flag)
/* Attribute, Cursor, Character state, Terminal mode, Screen draw mode */
enum { ATTR_NULL=0 , ATTR_REVERSE=1 , ATTR_UNDERLINE=2, ATTR_BOLD=4, ATTR_GFX=…
t@@ -128,7 +129,7 @@ static void csireset(void);
static void tclearregion(int, int, int, int);
static void tcursor(int);
-static void tmovecursor(int);
+static void twrapcursor(void);
static void tdeletechar(int);
static void tdeleteline(int);
static void tinsertblank(int);
t@@ -437,29 +438,13 @@ tmoveto(int x, int y) {
}
void
-tmovecursor(int dir) {
- int xf = term.c.x, yf = term.c.y;
-
- switch(dir) {
- case CURSOR_UP:
- yf--;
- break;
- case CURSOR_DOWN:
- yf++;
- break;
- case CURSOR_LEFT:
- xf--;
- break;
- case CURSOR_RIGHT:
- xf++;
- if(term.mode & MODE_WRAP && xf >= term.col) {
- xf = 0, yf++;
- if(yf > term.bot)
- yf = term.bot, tscroll();
- }
- break;
- }
- tmoveto(xf, yf);
+twrapcursor(void) {
+ int y = term.c.y+1;
+ if(y > term.bot) {
+ tmoveto(0, term.bot);
+ tscroll();
+ } else
+ tmoveto(0, y);
}
void
t@@ -969,7 +954,7 @@ tputc(char c) {
tputtab();
break;
case '\b':
- tmovecursor(CURSOR_LEFT);
+ tmoveto(term.c.x-1, term.c.y);
break;
case '\r':
tmoveto(0, term.c.y);
t@@ -986,7 +971,10 @@ tputc(char c) {
break;
default:
tsetchar(c);
- tmovecursor(CURSOR_RIGHT);
+ if(term.c.x+1 < term.col) {
+ tmoveto(term.c.x+1, term.c.y);
+ } else if(IS_SET(MODE_WRAP))
+ twrapcursor();
break;
}
}
t@@ -1282,7 +1270,7 @@ kpress(XEvent *ev) {
case XK_Down:
case XK_Left:
case XK_Right:
- sprintf(buf, "\033%c%c", term.mode & MODE_APPKEYPAD ? …
+ sprintf(buf, "\033%c%c", IS_SET(MODE_APPKEYPAD) ? 'O' …
ttywrite(buf, 3);
break;
case XK_Insert:
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.