st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit 2e37752961f439c33614a9d8469d7c297f0465cb
parent 8b4bfe31ec1075316dbb2e7d21753771ae3e5590
Author: Aurélien Aptel <aurelien.aptel@gmail.com>
Date:   Tue, 16 Jun 2009 02:33:38 +0200

added/removed files, updated Makefile.

Diffstat:
MMakefile | 2+-
Aconfig.h | 39+++++++++++++++++++++++++++++++++++++++
Dst.h | 178-------------------------------------------------------------------------------
3 files changed, 40 insertions(+), 179 deletions(-)
diff --git a/Makefile b/Makefile
@@ -18,7 +18,7 @@ options:
     @echo CC $<
     @${CC} -c ${CFLAGS} $<
 
-${OBJ}: config.mk
+${OBJ}: config.h config.mk
 
 st: ${OBJ}
     @echo CC -o $@
diff --git a/config.h b/config.h
@@ -0,0 +1,39 @@
+#define SHELL "/bin/bash"
+#define TAB    8
+
+#define FONT "fixed"
+#define BORDER 3
+#define LINESPACE 1 /* additional pixel between each line */
+
+/* Terminal colors */
+static char* colorname[] = {
+    "black",
+    "red",
+    "green",
+    "yellow",
+    "blue",
+    "magenta",
+    "cyan",
+    "white",
+};
+
+/* Default colors (colorname index) */
+/* foreground, background, cursor, visual bell */
+#define DefaultFG 7
+#define DefaultBG 0
+#define DefaultCS 1
+#define BellCol   DefaultFG
+
+
+/* special keys */
+static Key key[] = {
+    { XK_Delete, "\033[3~" },
+    { XK_Home,   "\033[1~" },
+    { XK_End,    "\033[4~" },
+    { XK_Prior,  "\033[5~" },
+    { XK_Next,   "\033[6~" },
+    { XK_Left,   "\033[D" },
+    { XK_Right,  "\033[C" },
+    { XK_Up,     "\033[A" },
+    { XK_Down,   "\033[B" },
+};
diff --git a/st.h b/st.h
@@ -1,178 +0,0 @@
-/* See LICENSE for licence details. */
-#define _XOPEN_SOURCE
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <locale.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-#include <sys/ioctl.h>
-#include <sys/select.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <X11/Xlib.h>
-#include <X11/keysym.h>
-#include <X11/Xutil.h>
-
-/* special keys */
-#define KEYDELETE "\033[3~"
-#define KEYHOME   "\033[1~"
-#define KEYEND    "\033[4~"
-#define KEYPREV   "\033[5~"
-#define KEYNEXT   "\033[6~"
-
-#define TNAME "st"
-#define SHELL "/bin/bash"
-#define TAB    8
-
-#define FONT "fixed"
-#define BORDER 3
-#define LINESPACE 1 /* additional pixel between each line */
-
-/* Default colors */
-#define DefaultFG 7
-#define DefaultBG 0
-#define DefaultCS 1
-#define BellCol   DefaultFG /* visual bell color */
-
-static char* colorname[] = {
-    "black",
-    "red",
-    "green",
-    "yellow",
-    "blue",
-    "magenta",
-    "cyan",
-    "white",
-};
-
-/* Arbitrary sizes */
-#define ESCSIZ 256
-#define ESCARG 16
-
-#define SERRNO strerror(errno)
-#define MIN(a, b)  ((a) < (b) ? (a) : (b))
-#define MAX(a, b)  ((a) < (b) ? (b) : (a))
-#define LEN(a)     (sizeof(a) / sizeof(a[0]))
-#define DEFAULT(a, b)     (a) = (a) ? (a) : (b)    
-#define BETWEEN(x, a, b)  ((a) <= (x) && (x) <= (b))
-#define LIMIT(x, a, b)    (x) = (x) < (a) ? (a) : (x) > (b) ? (b) : (x)
-
-
-enum { ATnone=0 , ATreverse=1 , ATunderline=2, ATbold=4 }; /* Attribute */
-enum { CSup, CSdown, CSright, CSleft, CShide, CSdraw, CSwrap, CSsave, CSload }; /* Cursor */
-enum { CRset=1 , CRupdate=2 }; /* Character state */
-enum { TMwrap=1 , TMinsert=2, TMaltcharset }; /* Terminal mode */
-enum { SCupdate, SCredraw }; /* screen draw mode */
-
-typedef int Color;
-
-typedef struct {
-    char c;     /* character code  */
-    char mode;  /* attribute flags */
-    Color fg;   /* foreground      */
-    Color bg;   /* background      */
-    char state; /* state flag      */
-} Glyph;
-
-typedef Glyph* Line;
-
-typedef struct {
-    Glyph attr;  /* current char attributes */
-    char hidden;
-    int x;
-    int y;
-} TCursor;
-
-/* Escape sequence structs */
-typedef struct {
-    char buf[ESCSIZ+1]; /* raw string */
-    int len;            /* raw string length */
-    /* ESC <pre> [[ [<priv>] <arg> [;]] <mode>] */
-    char pre;           
-    char priv;
-    int arg[ESCARG+1];
-    int narg;           /* nb of args */
-    char mode;
-} Escseq;
-
-/* Internal representation of the screen */
-typedef struct {
-    int row;    /* nb row */  
-    int col;    /* nb col */
-    Line* line; /* screen */
-    TCursor c;  /* cursor */
-    int top;    /* top    scroll limit */
-    int bot;    /* bottom scroll limit */
-    int mode;   /* terminal mode */
-} Term;
-
-/* Purely graphic info */
-typedef struct {
-    Display* dis;
-    Window win;
-    int scr;
-    int w;  /* window width  */
-    int h;  /* window height */
-    int ch; /* char height */
-    int cw; /* char width  */
-} XWindow; 
-
-/* Drawing Context */
-typedef struct {
-    unsigned long col[LEN(colorname)];
-    XFontStruct* font;
-    GC gc;
-} DC;
-
-
-void die(const char *errstr, ...);
-void draw(int);
-void execsh(void);
-void sigchld(int);
-void kpress(XKeyEvent *);
-void resize(XEvent *);
-void run(void);
-
-int escaddc(char);
-int escfinal(char);
-void escdump(void);
-void eschandle(void);
-void escparse(void);
-void escreset(void);
-
-void tclearregion(int, int, int, int);
-void tcpos(int);
-void tcursor(int);
-void tdeletechar(int);
-void tdeleteline(int);
-void tdump(void);
-void tinsertblank(int);
-void tinsertblankline(int);
-void tmoveto(int, int);
-void tnew(int, int);
-void tnewline(void);
-void tputc(char);
-void tputs(char*, int);
-void tresize(int, int);
-void tscroll(void);
-void tsetattr(int*, int);
-void tsetchar(char);
-void tsetscroll(int, int);
-
-void ttynew(void);
-void ttyread(void);
-void ttyresize(int, int);
-void ttywrite(char *, size_t);
-
-unsigned long xgetcol(const char *);
-void xclear(int, int, int, int);
-void xcursor(int);
-void xdrawc(int, int, Glyph);
-void xinit(void);
-void xscroll(void);