*
* 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:
* 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
*
* 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",
*/
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
* 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" },
#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} },
* 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},
* ButtonRelease and MotionNotify.
* If no match is found, regular selection is used.
*/
-uint selmasks[] = {
+static uint selmasks[] = {
[SEL_RECTANGULAR] = Mod1Mask,
};
* Printable characters in ASCII, used to estimate the advance width
* of single wide characters.
*/
-char ascii_printable[] =
+static char ascii_printable[] =
" !\"#$%&'()*+,-./0123456789:;<=>?"
"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
"`abcdefghijklmnopqrstuvwxyz{|}~";
-
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 **);
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)
{
return str;
}
-void
-selpaste(const Arg *dummy)
-{
- xselpaste();
-}
-
-void
-clipcopy(const Arg *dummy)
-{
- xclipcopy();
-}
-
-void
-clippaste(const Arg *dummy)
-{
- xclippaste();
-}
-
void
selclear(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 */
dec = base64dec(strescseq.args[2]);
if (dec) {
xsetsel(dec, CurrentTime);
- clipcopy(NULL);
+ xclipcopy();
} else {
fprintf(stderr, "erresc: invalid base64\n");
}
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 */
}
break;
case 'Z': /* DECID -- Identify Terminal */
- ttywrite(vtiden, sizeof(vtiden) - 1);
+ ttywrite(vtiden, strlen(vtiden));
break;
case 'c': /* RIS -- Reset to inital state */
treset();
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);
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[];