Reduce visibility wherever possible
When possible, declare functions/variables static and move struct definitions out of headers. In order to allow utf8decode to become internal, use codepoint for DECSCUSR extension directly. Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
This commit is contained in:
		
							
								
								
									
										31
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								st.c
									
									
									
									
									
								
							| @@ -36,6 +36,7 @@ | ||||
|  | ||||
| /* Arbitrary sizes */ | ||||
| #define UTF_INVALID   0xFFFD | ||||
| #define UTF_SIZ       4 | ||||
| #define ESC_BUF_SIZ   (128*UTF_SIZ) | ||||
| #define ESC_ARG_SIZ   16 | ||||
| #define STR_BUF_SIZ   ESC_BUF_SIZ | ||||
| @@ -95,6 +96,31 @@ enum escape_state { | ||||
| 	ESC_DCS        =128, | ||||
| }; | ||||
|  | ||||
| typedef struct { | ||||
| 	Glyph attr; /* current char attributes */ | ||||
| 	int x; | ||||
| 	int y; | ||||
| 	char state; | ||||
| } TCursor; | ||||
|  | ||||
| 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; | ||||
|  | ||||
| 	int alt; | ||||
| } Selection; | ||||
|  | ||||
| /* Internal representation of the screen */ | ||||
| typedef struct { | ||||
| 	int row;      /* nb row */ | ||||
| @@ -187,15 +213,18 @@ static void tstrsequence(uchar); | ||||
|  | ||||
| static void drawregion(int, int, int, int); | ||||
|  | ||||
| static void selnormalize(void); | ||||
| static void selscroll(int, int); | ||||
| static void selsnap(int *, int *, int); | ||||
|  | ||||
| static size_t utf8decode(const char *, Rune *, size_t); | ||||
| static Rune utf8decodebyte(char, size_t *); | ||||
| static char utf8encodebyte(Rune, size_t); | ||||
| static char *utf8strchr(char *s, Rune u); | ||||
| static char *utf8strchr(char *, Rune); | ||||
| static size_t utf8validate(Rune *, size_t); | ||||
|  | ||||
| static char *base64dec(const char *); | ||||
| static char base64dec_getc(const char **); | ||||
|  | ||||
| static ssize_t xwrite(int, const char *, size_t); | ||||
|  | ||||
|   | ||||
							
								
								
									
										40
									
								
								st.h
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								st.h
									
									
									
									
									
								
							| @@ -1,8 +1,5 @@ | ||||
| /* 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)) | ||||
| @@ -69,41 +66,6 @@ typedef struct { | ||||
|  | ||||
| typedef Glyph *Line; | ||||
|  | ||||
| typedef struct { | ||||
| 	Glyph attr; /* current char attributes */ | ||||
| 	int x; | ||||
| 	int y; | ||||
| 	char state; | ||||
| } TCursor; | ||||
|  | ||||
| /* 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  */ | ||||
| 	int mode; /* window state/mode flags */ | ||||
| 	int cursor; /* cursor style */ | ||||
| } TermWindow; | ||||
|  | ||||
| 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; | ||||
|  | ||||
| 	int alt; | ||||
| } Selection; | ||||
|  | ||||
| typedef union { | ||||
| 	int i; | ||||
| 	uint ui; | ||||
| @@ -137,11 +99,9 @@ void selclear(void); | ||||
| void selinit(void); | ||||
| void selstart(int, int, int); | ||||
| void selextend(int, int, int, int); | ||||
| void selnormalize(void); | ||||
| int selected(int, int); | ||||
| char *getsel(void); | ||||
|  | ||||
| size_t utf8decode(const char *, Rune *, size_t); | ||||
| size_t utf8encode(Rune, char *); | ||||
|  | ||||
| void *xmalloc(size_t); | ||||
|   | ||||
							
								
								
									
										1
									
								
								win.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								win.h
									
									
									
									
									
								
							| @@ -27,7 +27,6 @@ void xbell(void); | ||||
| void xclipcopy(void); | ||||
| void xdrawcursor(int, int, Glyph, int, int, Glyph); | ||||
| void xdrawline(Line, int, int, int); | ||||
| void xhints(void); | ||||
| void xfinishdraw(void); | ||||
| void xloadcols(void); | ||||
| int xsetcolorname(int, const char *); | ||||
|   | ||||
							
								
								
									
										15
									
								
								x.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								x.c
									
									
									
									
									
								
							| @@ -75,6 +75,15 @@ typedef XftColor Color; | ||||
| typedef XftGlyphFontSpec GlyphFontSpec; | ||||
|  | ||||
| /* 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  */ | ||||
| 	int mode; /* window state/mode flags */ | ||||
| 	int cursor; /* cursor style */ | ||||
| } TermWindow; | ||||
|  | ||||
| typedef struct { | ||||
| 	Display *dpy; | ||||
| 	Colormap cmap; | ||||
| @@ -133,6 +142,8 @@ static int xgeommasktogravity(int); | ||||
| static void xinit(int, int); | ||||
| static void cresize(int, int); | ||||
| static void xresize(int, int); | ||||
| static void xhints(void); | ||||
| static int xloadcolor(int, const char *, Color *); | ||||
| static int xloadfont(Font *, FcPattern *); | ||||
| static void xloadfonts(char *, double); | ||||
| static void xunloadfont(Font *); | ||||
| @@ -1430,8 +1441,8 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og) | ||||
| 	/* draw the new one */ | ||||
| 	if (IS_SET(MODE_FOCUSED)) { | ||||
| 		switch (win.cursor) { | ||||
| 		case 7: /* st extension: snowman */ | ||||
| 			utf8decode("☃", &g.u, UTF_SIZ); | ||||
| 		case 7: /* st extension: snowman (U+2603) */ | ||||
| 			g.u = 0x2603; | ||||
| 		case 0: /* Blinking Block */ | ||||
| 		case 1: /* Blinking Block (Default) */ | ||||
| 		case 2: /* Steady Block */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user