added/removed files, updated Makefile.
This commit is contained in:
		
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							@@ -18,7 +18,7 @@ options:
 | 
				
			|||||||
	@echo CC $<
 | 
						@echo CC $<
 | 
				
			||||||
	@${CC} -c ${CFLAGS} $<
 | 
						@${CC} -c ${CFLAGS} $<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
${OBJ}: config.mk
 | 
					${OBJ}: config.h config.mk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
st: ${OBJ}
 | 
					st: ${OBJ}
 | 
				
			||||||
	@echo CC -o $@
 | 
						@echo CC -o $@
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										39
									
								
								config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								config.h
									
									
									
									
									
										Normal file
									
								
							@@ -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" },
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										178
									
								
								st.h
									
									
									
									
									
								
							
							
						
						
									
										178
									
								
								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);
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user