st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit 1cf8b77d2798a43c979b71e16fd45d63b808f569
parent 0ecfcc39b07bb7cca6a688a743299e6ef990e122
Author: Aurélien Aptel <aurelien.aptel@gmail.com>
Date:   Thu, 14 May 2009 01:03:17 +0200

handle tabulation (still not perfect)

Diffstat:
Mst.c | 14++++++++++++++
Mst.h | 2++
2 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/st.c b/st.c
@@ -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;
 
@@ -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
@@ -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 */