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>
master
Devin J. Pohly 2017-10-17 15:21:04 -05:00
parent 32d3b1d00f
commit 65976c1a29
5 changed files with 91 additions and 119 deletions

View File

@ -5,8 +5,8 @@
* *
* font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
*/ */
char font[] = "Liberation Mono:pixelsize=12:antialias=true:autohint=true"; static char *font = "Liberation Mono:pixelsize=12:antialias=true:autohint=true";
int borderpx = 2; static 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:
@ -16,54 +16,54 @@ int borderpx = 2;
* 4: value of shell in /etc/passwd * 4: value of shell in /etc/passwd
* 5: value of shell in config.h * 5: value of shell in config.h
*/ */
static char shell[] = "/bin/sh"; char *shell = "/bin/sh";
static char *utmp = NULL; char *utmp = NULL;
static char stty_args[] = "stty raw pass8 nl -echo -iexten -cstopb 38400"; char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
/* identification sequence returned in DA and DECID */ /* identification sequence returned in DA and DECID */
static char vtiden[] = "\033[?6c"; char *vtiden = "\033[?6c";
/* Kerning / character bounding-box multipliers */ /* Kerning / character bounding-box multipliers */
float cwscale = 1.0; static float cwscale = 1.0;
float chscale = 1.0; static float chscale = 1.0;
/* /*
* word delimiter string * word delimiter string
* *
* More advanced example: " `'\"()[]{}" * More advanced example: " `'\"()[]{}"
*/ */
static char worddelimiters[] = " "; char *worddelimiters = " ";
/* selection timeouts (in milliseconds) */ /* selection timeouts (in milliseconds) */
unsigned int doubleclicktimeout = 300; static unsigned int doubleclicktimeout = 300;
unsigned int tripleclicktimeout = 600; static unsigned int tripleclicktimeout = 600;
/* alt screens */ /* alt screens */
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 */
unsigned int xfps = 120; static unsigned int xfps = 120;
unsigned int actionfps = 30; static 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.
*/ */
unsigned int blinktimeout = 800; static unsigned int blinktimeout = 800;
/* /*
* thickness of underline and bar cursors * 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 * bell volume. It must be a value between -100 and 100. Use 0 for disabling
* it * it
*/ */
int bellvolume = 0; static int bellvolume = 0;
/* default TERM value */ /* default TERM value */
char termname[] = "st-256color"; char *termname = "st-256color";
/* /*
* spaces per tab * spaces per tab
@ -80,10 +80,10 @@ char termname[] = "st-256color";
* *
* stty tabs * stty tabs
*/ */
static unsigned int tabspaces = 8; unsigned int tabspaces = 8;
/* Terminal colors (16 first used in escape sequence) */ /* Terminal colors (16 first used in escape sequence) */
const char *colorname[] = { static const char *colorname[] = {
/* 8 normal colors */ /* 8 normal colors */
"black", "black",
"red3", "red3",
@ -118,8 +118,8 @@ const char *colorname[] = {
*/ */
unsigned int defaultfg = 7; unsigned int defaultfg = 7;
unsigned int defaultbg = 0; unsigned int defaultbg = 0;
unsigned int defaultcs = 256; static unsigned int defaultcs = 256;
unsigned int defaultrcs = 257; static unsigned int defaultrcs = 257;
/* /*
* Default shape of cursor * Default shape of cursor
@ -128,33 +128,33 @@ unsigned int defaultrcs = 257;
* 6: Bar ("|") * 6: Bar ("|")
* 7: Snowman ("") * 7: Snowman ("")
*/ */
unsigned int cursorshape = 2; static unsigned int cursorshape = 2;
/* /*
* Default columns and rows numbers * Default columns and rows numbers
*/ */
unsigned int cols = 80; static unsigned int cols = 80;
unsigned int rows = 24; static unsigned int rows = 24;
/* /*
* Default colour and shape of the mouse cursor * Default colour and shape of the mouse cursor
*/ */
unsigned int mouseshape = XC_xterm; static unsigned int mouseshape = XC_xterm;
unsigned int mousefg = 7; static unsigned int mousefg = 7;
unsigned int mousebg = 0; static 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.
*/ */
unsigned int defaultattr = 11; static 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.
*/ */
MouseShortcut mshortcuts[] = { static 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" },
@ -164,7 +164,7 @@ MouseShortcut mshortcuts[] = {
#define MODKEY Mod1Mask #define MODKEY Mod1Mask
#define TERMMOD (ControlMask|ShiftMask) #define TERMMOD (ControlMask|ShiftMask)
Shortcut shortcuts[] = { static 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} },
@ -209,26 +209,26 @@ Shortcut shortcuts[] = {
* If you want keys other than the X11 function keys (0xFD00 - 0xFFFF) * If you want keys other than the X11 function keys (0xFD00 - 0xFFFF)
* to be mapped below, add them to this array. * 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, * State bits to ignore when matching key or button events. By default,
* numlock (Mod2Mask) and keyboard layout (XK_SWITCH_MOD) are ignored. * 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). * 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 * 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.
*/ */
uint forceselmod = ShiftMask; static 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
* world. Please decide about changes wisely. * world. Please decide about changes wisely.
*/ */
Key key[] = { static Key key[] = {
/* keysym mask string appkey appcursor crlf */ /* keysym mask string appkey appcursor crlf */
{ XK_KP_Home, ShiftMask, "\033[2J", 0, -1, 0}, { XK_KP_Home, ShiftMask, "\033[2J", 0, -1, 0},
{ XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1, 0}, { XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1, 0},
@ -451,7 +451,7 @@ 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.
*/ */
uint selmasks[] = { static uint selmasks[] = {
[SEL_RECTANGULAR] = Mod1Mask, [SEL_RECTANGULAR] = Mod1Mask,
}; };
@ -459,8 +459,7 @@ 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.
*/ */
char ascii_printable[] = static char ascii_printable[] =
" !\"#$%&'()*+,-./0123456789:;<=>?" " !\"#$%&'()*+,-./0123456789:;<=>?"
"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_" "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
"`abcdefghijklmnopqrstuvwxyz{|}~"; "`abcdefghijklmnopqrstuvwxyz{|}~";

47
st.c
View File

@ -109,19 +109,6 @@ typedef struct {
int narg; /* nb of args */ int narg; /* nb of args */
} STREscape; } 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 execsh(char **);
static void stty(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 utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000};
static Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; 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 ssize_t
xwrite(int fd, const char *s, size_t len) xwrite(int fd, const char *s, size_t len)
{ {
@ -585,24 +564,6 @@ getsel(void)
return str; return str;
} }
void
selpaste(const Arg *dummy)
{
xselpaste();
}
void
clipcopy(const Arg *dummy)
{
xclipcopy();
}
void
clippaste(const Arg *dummy)
{
xclippaste();
}
void void
selclear(void) selclear(void)
{ {
@ -1572,7 +1533,7 @@ csihandle(void)
break; break;
case 'c': /* DA -- Device Attributes */ case 'c': /* DA -- Device Attributes */
if (csiescseq.arg[0] == 0) if (csiescseq.arg[0] == 0)
ttywrite(vtiden, sizeof(vtiden) - 1); ttywrite(vtiden, strlen(vtiden));
break; break;
case 'C': /* CUF -- Cursor <n> Forward */ case 'C': /* CUF -- Cursor <n> Forward */
case 'a': /* HPR -- Cursor <n> Forward */ case 'a': /* HPR -- Cursor <n> Forward */
@ -1791,7 +1752,7 @@ strhandle(void)
dec = base64dec(strescseq.args[2]); dec = base64dec(strescseq.args[2]);
if (dec) { if (dec) {
xsetsel(dec, CurrentTime); xsetsel(dec, CurrentTime);
clipcopy(NULL); xclipcopy();
} else { } else {
fprintf(stderr, "erresc: invalid base64\n"); fprintf(stderr, "erresc: invalid base64\n");
} }
@ -2134,7 +2095,7 @@ tcontrolcode(uchar ascii)
case 0x99: /* TODO: SGCI */ case 0x99: /* TODO: SGCI */
break; break;
case 0x9a: /* DECID -- Identify Terminal */ case 0x9a: /* DECID -- Identify Terminal */
ttywrite(vtiden, sizeof(vtiden) - 1); ttywrite(vtiden, strlen(vtiden));
break; break;
case 0x9b: /* TODO: CSI */ case 0x9b: /* TODO: CSI */
case 0x9c: /* TODO: ST */ case 0x9c: /* TODO: ST */
@ -2206,7 +2167,7 @@ eschandle(uchar ascii)
} }
break; break;
case 'Z': /* DECID -- Identify Terminal */ case 'Z': /* DECID -- Identify Terminal */
ttywrite(vtiden, sizeof(vtiden) - 1); ttywrite(vtiden, strlen(vtiden));
break; break;
case 'c': /* RIS -- Reset to inital state */ case 'c': /* RIS -- Reset to inital state */
treset(); treset();

50
st.h
View File

@ -190,6 +190,13 @@ typedef struct {
void die(const char *, ...); void die(const char *, ...);
void redraw(void); 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); int tattrset(int);
void tnew(int, int); void tnew(int, int);
void tresize(int, int); void tresize(int, int);
@ -225,42 +232,13 @@ extern pid_t pid;
extern int oldbutton; extern int oldbutton;
/* config.h globals */ /* config.h globals */
extern char font[]; extern char *shell;
extern int borderpx; extern char *utmp;
extern float cwscale; extern char *stty_args;
extern float chscale; extern char *vtiden;
extern unsigned int doubleclicktimeout; extern char *worddelimiters;
extern unsigned int tripleclicktimeout;
extern int allowaltscreen; extern int allowaltscreen;
extern unsigned int xfps; extern char *termname;
extern unsigned int actionfps; extern unsigned int tabspaces;
extern unsigned int cursorthickness;
extern int bellvolume;
extern unsigned int blinktimeout;
extern char termname[];
extern const char *colorname[];
extern size_t colornamelen;
extern unsigned int defaultfg; extern unsigned int defaultfg;
extern unsigned int defaultbg; 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[];

3
win.h
View File

@ -18,6 +18,3 @@ void xsettitle(char *);
void xsetpointermotion(int); void xsetpointermotion(int);
void xselpaste(void); void xselpaste(void);
void xsetsel(char *, Time); void xsetsel(char *, Time);
void zoom(const Arg *);
void zoomabs(const Arg *);
void zoomreset(const Arg *);

37
x.c
View File

@ -20,6 +20,25 @@ static char *argv0;
#include "st.h" #include "st.h"
#include "win.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 */ /* XEMBED messages */
#define XEMBED_FOCUS_IN 4 #define XEMBED_FOCUS_IN 4
#define XEMBED_FOCUS_OUT 5 #define XEMBED_FOCUS_OUT 5
@ -188,6 +207,24 @@ static char *opt_line = NULL;
static char *opt_name = NULL; static char *opt_name = NULL;
static char *opt_title = 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 void
zoom(const Arg *arg) zoom(const Arg *arg)
{ {