diff options
| author | Devin J. Pohly <djpohly@gmail.com> | 2017-10-17 15:21:04 -0500 | 
|---|---|---|
| committer | Devin J. Pohly <djpohly@gmail.com> | 2018-02-25 21:53:24 -0600 | 
| commit | 65976c1a29f2945c3cfb6af74cd6440cf193021d (patch) | |
| tree | 670d2b3063767c1363322d6db5e73447e682081a | |
| parent | 32d3b1d00f66eda4f5446f3b32cabed2c9a77a40 (diff) | |
| download | st-transparency-65976c1a29f2945c3cfb6af74cd6440cf193021d.tar.gz st-transparency-65976c1a29f2945c3cfb6af74cd6440cf193021d.tar.xz st-transparency-65976c1a29f2945c3cfb6af74cd6440cf193021d.zip  | |
Move config.h include from st.c to x.c
config.h includes references to KeySyms and other X stuff.  Until we
come up with a cleaner way to separate configuration, it is simpler
(leads to more code removal) to have this here.
Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
| -rw-r--r-- | config.def.h | 73 | ||||
| -rw-r--r-- | st.c | 47 | ||||
| -rw-r--r-- | st.h | 50 | ||||
| -rw-r--r-- | win.h | 3 | ||||
| -rw-r--r-- | x.c | 37 | 
5 files changed, 91 insertions, 119 deletions
diff --git a/config.def.h b/config.def.h index 18cb31c..1c181ab 100644 --- a/config.def.h +++ b/config.def.h @@ -5,8 +5,8 @@   *   * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html   */ -char font[] = "Liberation Mono:pixelsize=12:antialias=true:autohint=true"; -int borderpx = 2; +static char *font = "Liberation Mono:pixelsize=12:antialias=true:autohint=true"; +static int borderpx = 2;  /*   * What program is execed by st depends of these precedence rules: @@ -16,54 +16,54 @@ int borderpx = 2;   * 4: value of shell in /etc/passwd   * 5: value of shell in config.h   */ -static char shell[] = "/bin/sh"; -static char *utmp = NULL; -static char stty_args[] = "stty raw pass8 nl -echo -iexten -cstopb 38400"; +char *shell = "/bin/sh"; +char *utmp = NULL; +char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";  /* identification sequence returned in DA and DECID */ -static char vtiden[] = "\033[?6c"; +char *vtiden = "\033[?6c";  /* Kerning / character bounding-box multipliers */ -float cwscale = 1.0; -float chscale = 1.0; +static float cwscale = 1.0; +static float chscale = 1.0;  /*   * word delimiter string   *   * More advanced example: " `'\"()[]{}"   */ -static char worddelimiters[] = " "; +char *worddelimiters = " ";  /* selection timeouts (in milliseconds) */ -unsigned int doubleclicktimeout = 300; -unsigned int tripleclicktimeout = 600; +static unsigned int doubleclicktimeout = 300; +static unsigned int tripleclicktimeout = 600;  /* alt screens */  int allowaltscreen = 1;  /* frames per second st should at maximum draw to the screen */ -unsigned int xfps = 120; -unsigned int actionfps = 30; +static unsigned int xfps = 120; +static unsigned int actionfps = 30;  /*   * blinking timeout (set to 0 to disable blinking) for the terminal blinking   * attribute.   */ -unsigned int blinktimeout = 800; +static unsigned int blinktimeout = 800;  /*   * thickness of underline and bar cursors   */ -unsigned int cursorthickness = 2; +static unsigned int cursorthickness = 2;  /*   * bell volume. It must be a value between -100 and 100. Use 0 for disabling   * it   */ -int bellvolume = 0; +static int bellvolume = 0;  /* default TERM value */ -char termname[] = "st-256color"; +char *termname = "st-256color";  /*   * spaces per tab @@ -80,10 +80,10 @@ char termname[] = "st-256color";   *   *	stty tabs   */ -static unsigned int tabspaces = 8; +unsigned int tabspaces = 8;  /* Terminal colors (16 first used in escape sequence) */ -const char *colorname[] = { +static const char *colorname[] = {  	/* 8 normal colors */  	"black",  	"red3", @@ -118,8 +118,8 @@ const char *colorname[] = {   */  unsigned int defaultfg = 7;  unsigned int defaultbg = 0; -unsigned int defaultcs = 256; -unsigned int defaultrcs = 257; +static unsigned int defaultcs = 256; +static unsigned int defaultrcs = 257;  /*   * Default shape of cursor @@ -128,33 +128,33 @@ unsigned int defaultrcs = 257;   * 6: Bar ("|")   * 7: Snowman ("☃")   */ -unsigned int cursorshape = 2; +static unsigned int cursorshape = 2;  /*   * Default columns and rows numbers   */ -unsigned int cols = 80; -unsigned int rows = 24; +static unsigned int cols = 80; +static unsigned int rows = 24;  /*   * Default colour and shape of the mouse cursor   */ -unsigned int mouseshape = XC_xterm; -unsigned int mousefg = 7; -unsigned int mousebg = 0; +static unsigned int mouseshape = XC_xterm; +static unsigned int mousefg = 7; +static unsigned int mousebg = 0;  /*   * Color used to display font attributes when fontconfig selected a font which   * doesn't match the ones requested.   */ -unsigned int defaultattr = 11; +static unsigned int defaultattr = 11;  /*   * Internal mouse shortcuts.   * Beware that overloading Button1 will disable the selection.   */ -MouseShortcut mshortcuts[] = { +static MouseShortcut mshortcuts[] = {  	/* button               mask            string */  	{ Button4,              XK_ANY_MOD,     "\031" },  	{ Button5,              XK_ANY_MOD,     "\005" }, @@ -164,7 +164,7 @@ MouseShortcut mshortcuts[] = {  #define MODKEY Mod1Mask  #define TERMMOD (ControlMask|ShiftMask) -Shortcut shortcuts[] = { +static Shortcut shortcuts[] = {  	/* mask                 keysym          function        argument */  	{ XK_ANY_MOD,           XK_Break,       sendbreak,      {.i =  0} },  	{ ControlMask,          XK_Print,       toggleprinter,  {.i =  0} }, @@ -209,26 +209,26 @@ Shortcut shortcuts[] = {   * If you want keys other than the X11 function keys (0xFD00 - 0xFFFF)   * to be mapped below, add them to this array.   */ -KeySym mappedkeys[] = { -1 }; +static KeySym mappedkeys[] = { -1 };  /*   * State bits to ignore when matching key or button events.  By default,   * numlock (Mod2Mask) and keyboard layout (XK_SWITCH_MOD) are ignored.   */ -uint ignoremod = Mod2Mask|XK_SWITCH_MOD; +static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;  /*   * Override mouse-select while mask is active (when MODE_MOUSE is set).   * Note that if you want to use ShiftMask with selmasks, set this to an other   * modifier, set to 0 to not use it.   */ -uint forceselmod = ShiftMask; +static uint forceselmod = ShiftMask;  /*   * This is the huge key array which defines all compatibility to the Linux   * world. Please decide about changes wisely.   */ -Key key[] = { +static Key key[] = {  	/* keysym           mask            string      appkey appcursor crlf */  	{ XK_KP_Home,       ShiftMask,      "\033[2J",       0,   -1,    0},  	{ XK_KP_Home,       ShiftMask,      "\033[1;2H",     0,   +1,    0}, @@ -451,7 +451,7 @@ Key key[] = {   * ButtonRelease and MotionNotify.   * If no match is found, regular selection is used.   */ -uint selmasks[] = { +static uint selmasks[] = {  	[SEL_RECTANGULAR] = Mod1Mask,  }; @@ -459,8 +459,7 @@ uint selmasks[] = {   * Printable characters in ASCII, used to estimate the advance width   * of single wide characters.   */ -char ascii_printable[] = +static char ascii_printable[] =  	" !\"#$%&'()*+,-./0123456789:;<=>?"  	"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"  	"`abcdefghijklmnopqrstuvwxyz{|}~"; - @@ -109,19 +109,6 @@ typedef struct {  	int narg;              /* nb of args */  } STREscape; -/* function definitions used in config.h */ -static void clipcopy(const Arg *); -static void clippaste(const Arg *); -static void numlock(const Arg *); -static void selpaste(const Arg *); -static void printsel(const Arg *); -static void printscreen(const Arg *) ; -static void iso14755(const Arg *); -static void toggleprinter(const Arg *); -static void sendbreak(const Arg *); - -/* config.h for applying patches and the configuration. */ -#include "config.h"  static void execsh(char **);  static void stty(char **); @@ -199,14 +186,6 @@ static uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8};  static Rune utfmin[UTF_SIZ + 1] = {       0,    0,  0x80,  0x800,  0x10000};  static Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; -/* config.h array lengths */ -size_t colornamelen = LEN(colorname); -size_t mshortcutslen = LEN(mshortcuts); -size_t shortcutslen = LEN(shortcuts); -size_t selmaskslen = LEN(selmasks); -size_t keyslen = LEN(key); -size_t mappedkeyslen = LEN(mappedkeys); -  ssize_t  xwrite(int fd, const char *s, size_t len)  { @@ -586,24 +565,6 @@ getsel(void)  }  void -selpaste(const Arg *dummy) -{ -	xselpaste(); -} - -void -clipcopy(const Arg *dummy) -{ -	xclipcopy(); -} - -void -clippaste(const Arg *dummy) -{ -	xclippaste(); -} - -void  selclear(void)  {  	if (sel.ob.x == -1) @@ -1572,7 +1533,7 @@ csihandle(void)  		break;  	case 'c': /* DA -- Device Attributes */  		if (csiescseq.arg[0] == 0) -			ttywrite(vtiden, sizeof(vtiden) - 1); +			ttywrite(vtiden, strlen(vtiden));  		break;  	case 'C': /* CUF -- Cursor <n> Forward */  	case 'a': /* HPR -- Cursor <n> Forward */ @@ -1791,7 +1752,7 @@ strhandle(void)  				dec = base64dec(strescseq.args[2]);  				if (dec) {  					xsetsel(dec, CurrentTime); -					clipcopy(NULL); +					xclipcopy();  				} else {  					fprintf(stderr, "erresc: invalid base64\n");  				} @@ -2134,7 +2095,7 @@ tcontrolcode(uchar ascii)  	case 0x99:   /* TODO: SGCI */  		break;  	case 0x9a:   /* DECID -- Identify Terminal */ -		ttywrite(vtiden, sizeof(vtiden) - 1); +		ttywrite(vtiden, strlen(vtiden));  		break;  	case 0x9b:   /* TODO: CSI */  	case 0x9c:   /* TODO: ST */ @@ -2206,7 +2167,7 @@ eschandle(uchar ascii)  		}  		break;  	case 'Z': /* DECID -- Identify Terminal */ -		ttywrite(vtiden, sizeof(vtiden) - 1); +		ttywrite(vtiden, strlen(vtiden));  		break;  	case 'c': /* RIS -- Reset to inital state */  		treset(); @@ -190,6 +190,13 @@ typedef struct {  void die(const char *, ...);  void redraw(void); +void iso14755(const Arg *); +void numlock(const Arg *); +void printscreen(const Arg *); +void printsel(const Arg *); +void sendbreak(const Arg *); +void toggleprinter(const Arg *); +  int tattrset(int);  void tnew(int, int);  void tresize(int, int); @@ -225,42 +232,13 @@ extern pid_t pid;  extern int oldbutton;  /* config.h globals */ -extern char font[]; -extern int borderpx; -extern float cwscale; -extern float chscale; -extern unsigned int doubleclicktimeout; -extern unsigned int tripleclicktimeout; +extern char *shell; +extern char *utmp; +extern char *stty_args; +extern char *vtiden; +extern char *worddelimiters;  extern int allowaltscreen; -extern unsigned int xfps; -extern unsigned int actionfps; -extern unsigned int cursorthickness; -extern int bellvolume; -extern unsigned int blinktimeout; -extern char termname[]; -extern const char *colorname[]; -extern size_t colornamelen; +extern char *termname; +extern unsigned int tabspaces;  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 KeySym mappedkeys[]; -extern size_t mappedkeyslen; -extern uint ignoremod; -extern uint forceselmod; -extern Key key[]; -extern size_t keyslen; -extern uint selmasks[]; -extern size_t selmaskslen; -extern char ascii_printable[]; @@ -18,6 +18,3 @@ void xsettitle(char *);  void xsetpointermotion(int);  void xselpaste(void);  void xsetsel(char *, Time); -void zoom(const Arg *); -void zoomabs(const Arg *); -void zoomreset(const Arg *); @@ -20,6 +20,25 @@ static char *argv0;  #include "st.h"  #include "win.h" +/* function definitions used in config.h */ +static void clipcopy(const Arg *); +static void clippaste(const Arg *); +static void selpaste(const Arg *); +static void zoom(const Arg *); +static void zoomabs(const Arg *); +static void zoomreset(const Arg *); + +/* config.h for applying patches and the configuration. */ +#include "config.h" + +/* config.h array lengths */ +size_t colornamelen = LEN(colorname); +size_t mshortcutslen = LEN(mshortcuts); +size_t shortcutslen = LEN(shortcuts); +size_t selmaskslen = LEN(selmasks); +size_t keyslen = LEN(key); +size_t mappedkeyslen = LEN(mappedkeys); +  /* XEMBED messages */  #define XEMBED_FOCUS_IN  4  #define XEMBED_FOCUS_OUT 5 @@ -189,6 +208,24 @@ static char *opt_name  = NULL;  static char *opt_title = NULL;  void +clipcopy(const Arg *dummy) +{ +	xclipcopy(); +} + +void +clippaste(const Arg *dummy) +{ +	xclippaste(); +} + +void +selpaste(const Arg *dummy) +{ +	xselpaste(); +} + +void  zoom(const Arg *arg)  {  	Arg larg;  | 
