diff options
| author | Aurélien Aptel <aurelien.aptel@gmail.com> | 2009-06-16 02:33:38 +0200 | 
|---|---|---|
| committer | Aurélien Aptel <aurelien.aptel@gmail.com> | 2009-06-16 02:33:38 +0200 | 
| commit | 2e37752961f439c33614a9d8469d7c297f0465cb (patch) | |
| tree | 6c15000913cfef0ceb3455dfea08dacd22b0aeec | |
| parent | 8b4bfe31ec1075316dbb2e7d21753771ae3e5590 (diff) | |
| download | st-fork-2e37752961f439c33614a9d8469d7c297f0465cb.tar.gz | |
added/removed files, updated Makefile.
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | config.h | 39 | ||||
| -rw-r--r-- | st.h | 178 | 
3 files changed, 40 insertions, 179 deletions
| @@ -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" }, +}; @@ -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); | 
