tMove config.h include from st.c to x.c - st - [fork] customized build of st, t… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 65976c1a29f2945c3cfb6af74cd6440cf193021d | |
parent 32d3b1d00f66eda4f5446f3b32cabed2c9a77a40 | |
Author: Devin J. Pohly <[email protected]> | |
Date: Tue, 17 Oct 2017 15:21:04 -0500 | |
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 <[email protected]> | |
Diffstat: | |
M config.def.h | 73 +++++++++++++++--------------… | |
M st.c | 47 +++--------------------------… | |
M st.h | 50 +++++++++--------------------… | |
M win.h | 3 --- | |
M x.c | 37 +++++++++++++++++++++++++++++… | |
5 files changed, 91 insertions(+), 119 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
t@@ -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: | |
t@@ -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 | |
t@@ -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", | |
t@@ -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 | |
t@@ -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" }, | |
t@@ -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} }, | |
t@@ -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}, | |
t@@ -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, | |
}; | |
t@@ -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{|}~"; | |
- | |
diff --git a/st.c b/st.c | |
t@@ -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 **); | |
t@@ -199,14 +186,6 @@ static uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0x… | |
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) | |
{ | |
t@@ -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) | |
t@@ -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 */ | |
t@@ -1791,7 +1752,7 @@ strhandle(void) | |
dec = base64dec(strescseq.args[2]); | |
if (dec) { | |
xsetsel(dec, CurrentTime); | |
- clipcopy(NULL); | |
+ xclipcopy(); | |
} else { | |
fprintf(stderr, "erresc: invalid base6… | |
} | |
t@@ -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 */ | |
t@@ -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(); | |
diff --git a/st.h b/st.h | |
t@@ -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); | |
t@@ -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[]; | |
diff --git a/win.h b/win.h | |
t@@ -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 *); | |
diff --git a/x.c b/x.c | |
t@@ -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 | |
t@@ -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; |