Split X-specific code into x.c
This commit is contained in:
		
							parent
							
								
									c63a87cd93
								
							
						
					
					
						commit
						e2ee5ee611
					
				
							
								
								
									
										5
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								Makefile
									
									
									
									
									
								
							| @ -3,7 +3,7 @@ | |||||||
| 
 | 
 | ||||||
| include config.mk | include config.mk | ||||||
| 
 | 
 | ||||||
| SRC = st.c | SRC = st.c x.c | ||||||
| OBJ = ${SRC:.c=.o} | OBJ = ${SRC:.c=.o} | ||||||
| 
 | 
 | ||||||
| all: options st | all: options st | ||||||
| @ -21,6 +21,9 @@ config.h: | |||||||
| 	@echo CC $< | 	@echo CC $< | ||||||
| 	@${CC} -c ${CFLAGS} $< | 	@${CC} -c ${CFLAGS} $< | ||||||
| 
 | 
 | ||||||
|  | st.o: config.h st.h win.h | ||||||
|  | x.o: arg.h st.h win.h | ||||||
|  | 
 | ||||||
| ${OBJ}: config.h config.mk | ${OBJ}: config.h config.mk | ||||||
| 
 | 
 | ||||||
| st: ${OBJ} | st: ${OBJ} | ||||||
|  | |||||||
							
								
								
									
										64
									
								
								config.def.h
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								config.def.h
									
									
									
									
									
								
							| @ -5,8 +5,8 @@ | |||||||
|  * |  * | ||||||
|  * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
 |  * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
 | ||||||
|  */ |  */ | ||||||
| static char font[] = "Liberation Mono:pixelsize=12:antialias=true:autohint=true"; | char font[] = "Liberation Mono:pixelsize=12:antialias=true:autohint=true"; | ||||||
| static int borderpx = 2; | int borderpx = 2; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * What program is execed by st depends of these precedence rules: |  * What program is execed by st depends of these precedence rules: | ||||||
| @ -24,8 +24,8 @@ static char stty_args[] = "stty raw pass8 nl -echo -iexten -cstopb 38400"; | |||||||
| static char vtiden[] = "\033[?6c"; | static char vtiden[] = "\033[?6c"; | ||||||
| 
 | 
 | ||||||
| /* Kerning / character bounding-box multipliers */ | /* Kerning / character bounding-box multipliers */ | ||||||
| static float cwscale = 1.0; | float cwscale = 1.0; | ||||||
| static float chscale = 1.0; | float chscale = 1.0; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * word delimiter string |  * word delimiter string | ||||||
| @ -35,26 +35,26 @@ static float chscale = 1.0; | |||||||
| static char worddelimiters[] = " "; | static char worddelimiters[] = " "; | ||||||
| 
 | 
 | ||||||
| /* selection timeouts (in milliseconds) */ | /* selection timeouts (in milliseconds) */ | ||||||
| static unsigned int doubleclicktimeout = 300; | unsigned int doubleclicktimeout = 300; | ||||||
| static unsigned int tripleclicktimeout = 600; | unsigned int tripleclicktimeout = 600; | ||||||
| 
 | 
 | ||||||
| /* alt screens */ | /* alt screens */ | ||||||
| static int allowaltscreen = 1; | int allowaltscreen = 1; | ||||||
| 
 | 
 | ||||||
| /* frames per second st should at maximum draw to the screen */ | /* frames per second st should at maximum draw to the screen */ | ||||||
| static unsigned int xfps = 120; | unsigned int xfps = 120; | ||||||
| static unsigned int actionfps = 30; | unsigned int actionfps = 30; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * blinking timeout (set to 0 to disable blinking) for the terminal blinking |  * blinking timeout (set to 0 to disable blinking) for the terminal blinking | ||||||
|  * attribute. |  * attribute. | ||||||
|  */ |  */ | ||||||
| static unsigned int blinktimeout = 800; | unsigned int blinktimeout = 800; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * thickness of underline and bar cursors |  * thickness of underline and bar cursors | ||||||
|  */ |  */ | ||||||
| static unsigned int cursorthickness = 2; | unsigned int cursorthickness = 2; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * bell volume. It must be a value between -100 and 100. Use 0 for disabling |  * bell volume. It must be a value between -100 and 100. Use 0 for disabling | ||||||
| @ -63,7 +63,7 @@ static unsigned int cursorthickness = 2; | |||||||
| static int bellvolume = 0; | static int bellvolume = 0; | ||||||
| 
 | 
 | ||||||
| /* default TERM value */ | /* default TERM value */ | ||||||
| static char termname[] = "st-256color"; | char termname[] = "st-256color"; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * spaces per tab |  * spaces per tab | ||||||
| @ -83,7 +83,7 @@ static char termname[] = "st-256color"; | |||||||
| static unsigned int tabspaces = 8; | static unsigned int tabspaces = 8; | ||||||
| 
 | 
 | ||||||
| /* Terminal colors (16 first used in escape sequence) */ | /* Terminal colors (16 first used in escape sequence) */ | ||||||
| static const char *colorname[] = { | const char *colorname[] = { | ||||||
| 	/* 8 normal colors */ | 	/* 8 normal colors */ | ||||||
| 	"black", | 	"black", | ||||||
| 	"red3", | 	"red3", | ||||||
| @ -116,10 +116,10 @@ static const char *colorname[] = { | |||||||
|  * Default colors (colorname index) |  * Default colors (colorname index) | ||||||
|  * foreground, background, cursor, reverse cursor |  * foreground, background, cursor, reverse cursor | ||||||
|  */ |  */ | ||||||
| static unsigned int defaultfg = 7; | unsigned int defaultfg = 7; | ||||||
| static unsigned int defaultbg = 0; | unsigned int defaultbg = 0; | ||||||
| static unsigned int defaultcs = 256; | unsigned int defaultcs = 256; | ||||||
| static unsigned int defaultrcs = 257; | unsigned int defaultrcs = 257; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Default shape of cursor |  * Default shape of cursor | ||||||
| @ -128,33 +128,33 @@ static unsigned int defaultrcs = 257; | |||||||
|  * 6: Bar ("|") |  * 6: Bar ("|") | ||||||
|  * 7: Snowman ("☃") |  * 7: Snowman ("☃") | ||||||
|  */ |  */ | ||||||
| static unsigned int cursorshape = 2; | unsigned int cursorshape = 2; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Default columns and rows numbers |  * Default columns and rows numbers | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| static unsigned int cols = 80; | unsigned int cols = 80; | ||||||
| static unsigned int rows = 24; | unsigned int rows = 24; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Default colour and shape of the mouse cursor |  * Default colour and shape of the mouse cursor | ||||||
|  */ |  */ | ||||||
| static unsigned int mouseshape = XC_xterm; | unsigned int mouseshape = XC_xterm; | ||||||
| static unsigned int mousefg = 7; | unsigned int mousefg = 7; | ||||||
| static unsigned int mousebg = 0; | unsigned int mousebg = 0; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Color used to display font attributes when fontconfig selected a font which |  * Color used to display font attributes when fontconfig selected a font which | ||||||
|  * doesn't match the ones requested. |  * doesn't match the ones requested. | ||||||
|  */ |  */ | ||||||
| static unsigned int defaultattr = 11; | unsigned int defaultattr = 11; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Internal mouse shortcuts. |  * Internal mouse shortcuts. | ||||||
|  * Beware that overloading Button1 will disable the selection. |  * Beware that overloading Button1 will disable the selection. | ||||||
|  */ |  */ | ||||||
| static MouseShortcut mshortcuts[] = { | MouseShortcut mshortcuts[] = { | ||||||
| 	/* button               mask            string */ | 	/* button               mask            string */ | ||||||
| 	{ Button4,              XK_ANY_MOD,     "\031" }, | 	{ Button4,              XK_ANY_MOD,     "\031" }, | ||||||
| 	{ Button5,              XK_ANY_MOD,     "\005" }, | 	{ Button5,              XK_ANY_MOD,     "\005" }, | ||||||
| @ -163,15 +163,15 @@ static MouseShortcut mshortcuts[] = { | |||||||
| /* Internal keyboard shortcuts. */ | /* Internal keyboard shortcuts. */ | ||||||
| #define MODKEY Mod1Mask | #define MODKEY Mod1Mask | ||||||
| 
 | 
 | ||||||
| static Shortcut shortcuts[] = { | Shortcut shortcuts[] = { | ||||||
| 	/* mask                 keysym          function        argument */ | 	/* mask                 keysym          function        argument */ | ||||||
| 	{ XK_ANY_MOD,           XK_Break,       sendbreak,      {.i =  0} }, | 	{ XK_ANY_MOD,           XK_Break,       sendbreak,      {.i =  0} }, | ||||||
| 	{ ControlMask,          XK_Print,       toggleprinter,  {.i =  0} }, | 	{ ControlMask,          XK_Print,       toggleprinter,  {.i =  0} }, | ||||||
| 	{ ShiftMask,            XK_Print,       printscreen,    {.i =  0} }, | 	{ ShiftMask,            XK_Print,       printscreen,    {.i =  0} }, | ||||||
| 	{ XK_ANY_MOD,           XK_Print,       printsel,       {.i =  0} }, | 	{ XK_ANY_MOD,           XK_Print,       printsel,       {.i =  0} }, | ||||||
| 	{ MODKEY|ShiftMask,     XK_Prior,       xzoom,          {.f = +1} }, | 	{ MODKEY|ShiftMask,     XK_Prior,       zoom,           {.f = +1} }, | ||||||
| 	{ MODKEY|ShiftMask,     XK_Next,        xzoom,          {.f = -1} }, | 	{ MODKEY|ShiftMask,     XK_Next,        zoom,           {.f = -1} }, | ||||||
| 	{ MODKEY|ShiftMask,     XK_Home,        xzoomreset,     {.f =  0} }, | 	{ MODKEY|ShiftMask,     XK_Home,        zoomreset,      {.f =  0} }, | ||||||
| 	{ ShiftMask,            XK_Insert,      selpaste,       {.i =  0} }, | 	{ ShiftMask,            XK_Insert,      selpaste,       {.i =  0} }, | ||||||
| 	{ MODKEY|ShiftMask,     XK_Insert,      clippaste,      {.i =  0} }, | 	{ MODKEY|ShiftMask,     XK_Insert,      clippaste,      {.i =  0} }, | ||||||
| 	{ MODKEY|ShiftMask,     XK_C,           clipcopy,       {.i =  0} }, | 	{ MODKEY|ShiftMask,     XK_C,           clipcopy,       {.i =  0} }, | ||||||
| @ -222,7 +222,7 @@ static uint ignoremod = Mod2Mask|XK_SWITCH_MOD; | |||||||
|  * Note that if you want to use ShiftMask with selmasks, set this to an other |  * Note that if you want to use ShiftMask with selmasks, set this to an other | ||||||
|  * modifier, set to 0 to not use it. |  * modifier, set to 0 to not use it. | ||||||
|  */ |  */ | ||||||
| static uint forceselmod = ShiftMask; | uint forceselmod = ShiftMask; | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * This is the huge key array which defines all compatibility to the Linux |  * This is the huge key array which defines all compatibility to the Linux | ||||||
| @ -451,7 +451,7 @@ static Key key[] = { | |||||||
|  * ButtonRelease and MotionNotify. |  * ButtonRelease and MotionNotify. | ||||||
|  * If no match is found, regular selection is used. |  * If no match is found, regular selection is used. | ||||||
|  */ |  */ | ||||||
| static uint selmasks[] = { | uint selmasks[] = { | ||||||
| 	[SEL_RECTANGULAR] = Mod1Mask, | 	[SEL_RECTANGULAR] = Mod1Mask, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| @ -459,7 +459,7 @@ static uint selmasks[] = { | |||||||
|  * Printable characters in ASCII, used to estimate the advance width |  * Printable characters in ASCII, used to estimate the advance width | ||||||
|  * of single wide characters. |  * of single wide characters. | ||||||
|  */ |  */ | ||||||
| static char ascii_printable[] = | char ascii_printable[] = | ||||||
| 	" !\"#$%&'()*+,-./0123456789:;<=>?" | 	" !\"#$%&'()*+,-./0123456789:;<=>?" | ||||||
| 	"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_" | 	"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_" | ||||||
| 	"`abcdefghijklmnopqrstuvwxyz{|}~"; | 	"`abcdefghijklmnopqrstuvwxyz{|}~"; | ||||||
|  | |||||||
							
								
								
									
										272
									
								
								st.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										272
									
								
								st.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,272 @@ | |||||||
|  | /* See LICENSE for license details. */ | ||||||
|  | 
 | ||||||
|  | /* Arbitrary sizes */ | ||||||
|  | #define UTF_SIZ       4 | ||||||
|  | 
 | ||||||
|  | /* macros */ | ||||||
|  | #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 BETWEEN(x, a, b)	((a) <= (x) && (x) <= (b)) | ||||||
|  | #define DIVCEIL(n, d)		(((n) + ((d) - 1)) / (d)) | ||||||
|  | #define LIMIT(x, a, b)		(x) = (x) < (a) ? (a) : (x) > (b) ? (b) : (x) | ||||||
|  | #define ATTRCMP(a, b)		((a).mode != (b).mode || (a).fg != (b).fg || \ | ||||||
|  | 				(a).bg != (b).bg) | ||||||
|  | #define IS_SET(flag)		((term.mode & (flag)) != 0) | ||||||
|  | #define TIMEDIFF(t1, t2)	((t1.tv_sec-t2.tv_sec)*1000 + \ | ||||||
|  | 				(t1.tv_nsec-t2.tv_nsec)/1E6) | ||||||
|  | #define MODBIT(x, set, bit)	((set) ? ((x) |= (bit)) : ((x) &= ~(bit))) | ||||||
|  | 
 | ||||||
|  | #define TRUECOLOR(r,g,b)	(1 << 24 | (r) << 16 | (g) << 8 | (b)) | ||||||
|  | #define IS_TRUECOL(x)		(1 << 24 & (x)) | ||||||
|  | 
 | ||||||
|  | enum glyph_attribute { | ||||||
|  | 	ATTR_NULL       = 0, | ||||||
|  | 	ATTR_BOLD       = 1 << 0, | ||||||
|  | 	ATTR_FAINT      = 1 << 1, | ||||||
|  | 	ATTR_ITALIC     = 1 << 2, | ||||||
|  | 	ATTR_UNDERLINE  = 1 << 3, | ||||||
|  | 	ATTR_BLINK      = 1 << 4, | ||||||
|  | 	ATTR_REVERSE    = 1 << 5, | ||||||
|  | 	ATTR_INVISIBLE  = 1 << 6, | ||||||
|  | 	ATTR_STRUCK     = 1 << 7, | ||||||
|  | 	ATTR_WRAP       = 1 << 8, | ||||||
|  | 	ATTR_WIDE       = 1 << 9, | ||||||
|  | 	ATTR_WDUMMY     = 1 << 10, | ||||||
|  | 	ATTR_BOLD_FAINT = ATTR_BOLD | ATTR_FAINT, | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | enum term_mode { | ||||||
|  | 	MODE_WRAP        = 1 << 0, | ||||||
|  | 	MODE_INSERT      = 1 << 1, | ||||||
|  | 	MODE_APPKEYPAD   = 1 << 2, | ||||||
|  | 	MODE_ALTSCREEN   = 1 << 3, | ||||||
|  | 	MODE_CRLF        = 1 << 4, | ||||||
|  | 	MODE_MOUSEBTN    = 1 << 5, | ||||||
|  | 	MODE_MOUSEMOTION = 1 << 6, | ||||||
|  | 	MODE_REVERSE     = 1 << 7, | ||||||
|  | 	MODE_KBDLOCK     = 1 << 8, | ||||||
|  | 	MODE_HIDE        = 1 << 9, | ||||||
|  | 	MODE_ECHO        = 1 << 10, | ||||||
|  | 	MODE_APPCURSOR   = 1 << 11, | ||||||
|  | 	MODE_MOUSESGR    = 1 << 12, | ||||||
|  | 	MODE_8BIT        = 1 << 13, | ||||||
|  | 	MODE_BLINK       = 1 << 14, | ||||||
|  | 	MODE_FBLINK      = 1 << 15, | ||||||
|  | 	MODE_FOCUS       = 1 << 16, | ||||||
|  | 	MODE_MOUSEX10    = 1 << 17, | ||||||
|  | 	MODE_MOUSEMANY   = 1 << 18, | ||||||
|  | 	MODE_BRCKTPASTE  = 1 << 19, | ||||||
|  | 	MODE_PRINT       = 1 << 20, | ||||||
|  | 	MODE_UTF8        = 1 << 21, | ||||||
|  | 	MODE_SIXEL       = 1 << 22, | ||||||
|  | 	MODE_MOUSE       = MODE_MOUSEBTN|MODE_MOUSEMOTION|MODE_MOUSEX10\ | ||||||
|  | 	                  |MODE_MOUSEMANY, | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | enum selection_mode { | ||||||
|  | 	SEL_IDLE = 0, | ||||||
|  | 	SEL_EMPTY = 1, | ||||||
|  | 	SEL_READY = 2 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | enum selection_type { | ||||||
|  | 	SEL_REGULAR = 1, | ||||||
|  | 	SEL_RECTANGULAR = 2 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | enum selection_snap { | ||||||
|  | 	SNAP_WORD = 1, | ||||||
|  | 	SNAP_LINE = 2 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | enum window_state { | ||||||
|  | 	WIN_VISIBLE = 1, | ||||||
|  | 	WIN_FOCUSED = 2 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | typedef unsigned char uchar; | ||||||
|  | typedef unsigned int uint; | ||||||
|  | typedef unsigned long ulong; | ||||||
|  | typedef unsigned short ushort; | ||||||
|  | 
 | ||||||
|  | typedef uint_least32_t Rune; | ||||||
|  | 
 | ||||||
|  | typedef struct { | ||||||
|  | 	Rune u;           /* character code */ | ||||||
|  | 	ushort mode;      /* attribute flags */ | ||||||
|  | 	uint32_t fg;      /* foreground  */ | ||||||
|  | 	uint32_t bg;      /* background  */ | ||||||
|  | } Glyph; | ||||||
|  | 
 | ||||||
|  | typedef Glyph *Line; | ||||||
|  | 
 | ||||||
|  | typedef struct { | ||||||
|  | 	Glyph attr; /* current char attributes */ | ||||||
|  | 	int x; | ||||||
|  | 	int y; | ||||||
|  | 	char state; | ||||||
|  | } TCursor; | ||||||
|  | 
 | ||||||
|  | /* Internal representation of the screen */ | ||||||
|  | typedef struct { | ||||||
|  | 	int row;      /* nb row */ | ||||||
|  | 	int col;      /* nb col */ | ||||||
|  | 	Line *line;   /* screen */ | ||||||
|  | 	Line *alt;    /* alternate screen */ | ||||||
|  | 	int *dirty;  /* dirtyness of lines */ | ||||||
|  | 	GlyphFontSpec *specbuf; /* font spec buffer used for rendering */ | ||||||
|  | 	TCursor c;    /* cursor */ | ||||||
|  | 	int top;      /* top    scroll limit */ | ||||||
|  | 	int bot;      /* bottom scroll limit */ | ||||||
|  | 	int mode;     /* terminal mode flags */ | ||||||
|  | 	int esc;      /* escape state flags */ | ||||||
|  | 	char trantbl[4]; /* charset table translation */ | ||||||
|  | 	int charset;  /* current charset */ | ||||||
|  | 	int icharset; /* selected charset for sequence */ | ||||||
|  | 	int numlock; /* lock numbers in keyboard */ | ||||||
|  | 	int *tabs; | ||||||
|  | } Term; | ||||||
|  | 
 | ||||||
|  | /* Purely graphic info */ | ||||||
|  | typedef struct { | ||||||
|  | 	int tw, th; /* tty width and height */ | ||||||
|  | 	int w, h; /* window width and height */ | ||||||
|  | 	int ch; /* char height */ | ||||||
|  | 	int cw; /* char width  */ | ||||||
|  | 	char state; /* focus, redraw, visible */ | ||||||
|  | 	int cursor; /* cursor style */ | ||||||
|  | } TermWindow; | ||||||
|  | 
 | ||||||
|  | typedef struct { | ||||||
|  | 	uint b; | ||||||
|  | 	uint mask; | ||||||
|  | 	char *s; | ||||||
|  | } MouseShortcut; | ||||||
|  | 
 | ||||||
|  | typedef struct { | ||||||
|  | 	int mode; | ||||||
|  | 	int type; | ||||||
|  | 	int snap; | ||||||
|  | 	/*
 | ||||||
|  | 	 * Selection variables: | ||||||
|  | 	 * nb – normalized coordinates of the beginning of the selection | ||||||
|  | 	 * ne – normalized coordinates of the end of the selection | ||||||
|  | 	 * ob – original coordinates of the beginning of the selection | ||||||
|  | 	 * oe – original coordinates of the end of the selection | ||||||
|  | 	 */ | ||||||
|  | 	struct { | ||||||
|  | 		int x, y; | ||||||
|  | 	} nb, ne, ob, oe; | ||||||
|  | 
 | ||||||
|  | 	char *primary, *clipboard; | ||||||
|  | 	int alt; | ||||||
|  | 	struct timespec tclick1; | ||||||
|  | 	struct timespec tclick2; | ||||||
|  | 
 | ||||||
|  | 	//Atom xtarget;
 | ||||||
|  | } Selection; | ||||||
|  | 
 | ||||||
|  | typedef union { | ||||||
|  | 	int i; | ||||||
|  | 	uint ui; | ||||||
|  | 	float f; | ||||||
|  | 	const void *v; | ||||||
|  | } Arg; | ||||||
|  | 
 | ||||||
|  | typedef struct { | ||||||
|  | 	uint mod; | ||||||
|  | 	KeySym keysym; | ||||||
|  | 	void (*func)(const Arg *); | ||||||
|  | 	const Arg arg; | ||||||
|  | } Shortcut; | ||||||
|  | 
 | ||||||
|  | void die(const char *, ...); | ||||||
|  | void redraw(void); | ||||||
|  | 
 | ||||||
|  | int tattrset(int); | ||||||
|  | void tnew(int, int); | ||||||
|  | void tsetdirt(int, int); | ||||||
|  | void tsetdirtattr(int); | ||||||
|  | int match(uint, uint); | ||||||
|  | void ttynew(void); | ||||||
|  | size_t ttyread(void); | ||||||
|  | void ttyresize(void); | ||||||
|  | void ttysend(char *, size_t); | ||||||
|  | void ttywrite(const char *, size_t); | ||||||
|  | 
 | ||||||
|  | void resettitle(void); | ||||||
|  | 
 | ||||||
|  | char *kmap(KeySym, uint); | ||||||
|  | void cresize(int, int); | ||||||
|  | void selclear(void); | ||||||
|  | 
 | ||||||
|  | void selinit(void); | ||||||
|  | void selnormalize(void); | ||||||
|  | int selected(int, int); | ||||||
|  | char *getsel(void); | ||||||
|  | int x2col(int); | ||||||
|  | int y2row(int); | ||||||
|  | 
 | ||||||
|  | size_t utf8decode(char *, Rune *, size_t); | ||||||
|  | size_t utf8encode(Rune, char *); | ||||||
|  | 
 | ||||||
|  | void *xmalloc(size_t); | ||||||
|  | char *xstrdup(char *); | ||||||
|  | 
 | ||||||
|  | void usage(void); | ||||||
|  | 
 | ||||||
|  | /* Globals */ | ||||||
|  | extern TermWindow win; | ||||||
|  | extern Term term; | ||||||
|  | extern Selection sel; | ||||||
|  | extern int cmdfd; | ||||||
|  | extern pid_t pid; | ||||||
|  | extern char **opt_cmd; | ||||||
|  | extern char *opt_class; | ||||||
|  | extern char *opt_embed; | ||||||
|  | extern char *opt_font; | ||||||
|  | extern char *opt_io; | ||||||
|  | extern char *opt_line; | ||||||
|  | extern char *opt_name; | ||||||
|  | extern char *opt_title; | ||||||
|  | extern int oldbutton; | ||||||
|  | 
 | ||||||
|  | extern char *usedfont; | ||||||
|  | extern double usedfontsize; | ||||||
|  | extern double defaultfontsize; | ||||||
|  | 
 | ||||||
|  | /* config.h globals */ | ||||||
|  | extern char font[]; | ||||||
|  | extern int borderpx; | ||||||
|  | extern float cwscale; | ||||||
|  | extern float chscale; | ||||||
|  | extern unsigned int doubleclicktimeout; | ||||||
|  | extern unsigned int tripleclicktimeout; | ||||||
|  | extern int allowaltscreen; | ||||||
|  | extern unsigned int xfps; | ||||||
|  | extern unsigned int actionfps; | ||||||
|  | extern unsigned int cursorthickness; | ||||||
|  | extern unsigned int blinktimeout; | ||||||
|  | extern char termname[]; | ||||||
|  | extern const char *colorname[]; | ||||||
|  | extern size_t colornamelen; | ||||||
|  | extern unsigned int defaultfg; | ||||||
|  | extern unsigned int defaultbg; | ||||||
|  | extern unsigned int defaultcs; | ||||||
|  | extern unsigned int defaultrcs; | ||||||
|  | extern unsigned int cursorshape; | ||||||
|  | extern unsigned int cols; | ||||||
|  | extern unsigned int rows; | ||||||
|  | extern unsigned int mouseshape; | ||||||
|  | extern unsigned int mousefg; | ||||||
|  | extern unsigned int mousebg; | ||||||
|  | extern unsigned int defaultattr; | ||||||
|  | extern MouseShortcut mshortcuts[]; | ||||||
|  | extern size_t mshortcutslen; | ||||||
|  | extern Shortcut shortcuts[]; | ||||||
|  | extern size_t shortcutslen; | ||||||
|  | extern uint forceselmod; | ||||||
|  | extern uint selmasks[]; | ||||||
|  | extern size_t selmaskslen; | ||||||
|  | extern char ascii_printable[]; | ||||||
							
								
								
									
										29
									
								
								win.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								win.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | |||||||
|  | /* See LICENSE for license details. */ | ||||||
|  | 
 | ||||||
|  | /* X modifiers */ | ||||||
|  | #define XK_ANY_MOD    UINT_MAX | ||||||
|  | #define XK_NO_MOD     0 | ||||||
|  | #define XK_SWITCH_MOD (1<<13) | ||||||
|  | 
 | ||||||
|  | typedef XftGlyphFontSpec GlyphFontSpec; | ||||||
|  | 
 | ||||||
|  | void draw(void); | ||||||
|  | void drawregion(int, int, int, int); | ||||||
|  | void run(void); | ||||||
|  | 
 | ||||||
|  | void xbell(int); | ||||||
|  | void xclipcopy(void); | ||||||
|  | void xclippaste(void); | ||||||
|  | void xhints(void); | ||||||
|  | void xinit(void); | ||||||
|  | void xloadcols(void); | ||||||
|  | int xsetcolorname(int, const char *); | ||||||
|  | void xloadfonts(char *, double); | ||||||
|  | void xsetenv(void); | ||||||
|  | void xsettitle(char *); | ||||||
|  | void xsetpointermotion(int); | ||||||
|  | void xseturgency(int); | ||||||
|  | void xunloadfonts(void); | ||||||
|  | void xresize(int, int); | ||||||
|  | void xselpaste(void); | ||||||
|  | unsigned long xwinid(void); | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user