thandle tabulation (still not perfect) - st - [fork] customized build of st, th… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 1cf8b77d2798a43c979b71e16fd45d63b808f569 | |
parent 0ecfcc39b07bb7cca6a688a743299e6ef990e122 | |
Author: Aurélien Aptel <[email protected]> | |
Date: Thu, 14 May 2009 01:03:17 +0200 | |
handle tabulation (still not perfect) | |
Diffstat: | |
M st.c | 14 ++++++++++++++ | |
M st.h | 2 ++ | |
2 files changed, 16 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -559,6 +559,17 @@ escreset(void) { | |
} | |
void | |
+tputtab(void) { | |
+ int space = TAB - term.c.x % TAB; | |
+ | |
+ if(term.c.x + space >= term.col) | |
+ space--; | |
+ | |
+ for(; space > 0; space--) | |
+ tputc(' '); | |
+} | |
+ | |
+void | |
tputc(char c) { | |
static int inesc = 0; | |
t@@ -574,6 +585,9 @@ tputc(char c) { | |
tsetchar(c); | |
tcursor(CSright); | |
break; | |
+ case '\t': | |
+ tputtab(); | |
+ break; | |
case '\b': | |
tcursor(CSleft); | |
break; | |
diff --git a/st.h b/st.h | |
t@@ -66,6 +66,8 @@ enum { CRset=1 , CRupdate=2 }; /* Character state */ | |
enum { TMwrap=1 , TMinsert=2 }; /* Terminal mode */ | |
enum { SCupdate, SCredraw }; /* screen draw mode */ | |
+typedef int Color; | |
+ | |
typedef struct { | |
char c; /* character code */ | |
char mode; /* attribute flags */ |