diff --git a/Makefile b/Makefile index b0bd42d..9ec8d21 100644 --- 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 new file mode 100644 index 0000000..c01354d --- /dev/null +++ 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 deleted file mode 100644 index 0bd2c4e..0000000 --- a/st.h +++ /dev/null @@ -1,178 +0,0 @@ -/* See LICENSE for licence details. */ -#define _XOPEN_SOURCE -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* 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
 [[ []  [;]] ] */
-	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);