#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"
+
/* XEMBED messages */
#define XEMBED_FOCUS_IN 4
#define XEMBED_FOCUS_OUT 5
static double usedfontsize = 0;
static double defaultfontsize = 0;
+static char *opt_class = NULL;
+static char **opt_cmd = NULL;
+static char *opt_embed = NULL;
+static char *opt_font = NULL;
+static char *opt_io = NULL;
+static char *opt_line = NULL;
+static char *opt_name = NULL;
+static char *opt_title = NULL;
+
+void
+clipcopy(const Arg *dummy)
+{
+ Atom clipboard;
+
+ if (sel.clipboard != NULL)
+ free(sel.clipboard);
+
+ if (sel.primary != NULL) {
+ sel.clipboard = xstrdup(sel.primary);
+ clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
+ XSetSelectionOwner(xw.dpy, clipboard, xw.win, CurrentTime);
+ }
+}
+
+void
+clippaste(const Arg *dummy)
+{
+ Atom clipboard;
+
+ clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
+ XConvertSelection(xw.dpy, clipboard, xsel.xtarget, clipboard,
+ xw.win, CurrentTime);
+}
+
+void
+selpaste(const Arg *dummy)
+{
+ XConvertSelection(xw.dpy, XA_PRIMARY, xsel.xtarget, XA_PRIMARY,
+ xw.win, CurrentTime);
+}
+
void
zoom(const Arg *arg)
{
selnormalize();
sel.type = SEL_REGULAR;
- for (type = 1; type < selmaskslen; ++type) {
+ for (type = 1; type < LEN(selmasks); ++type) {
if (match(selmasks[type], state)) {
sel.type = type;
break;
return;
}
- for (ms = mshortcuts; ms < mshortcuts + mshortcutslen; ms++) {
+ for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) {
if (e->xbutton.button == ms->b
&& match(ms->mask, e->xbutton.state)) {
ttysend(ms->s, strlen(ms->s));
XDeleteProperty(xw.dpy, xw.win, (int)property);
}
-void
-xselpaste(void)
-{
- XConvertSelection(xw.dpy, XA_PRIMARY, xsel.xtarget, XA_PRIMARY,
- xw.win, CurrentTime);
-}
-
void
xclipcopy(void)
{
- Atom clipboard;
-
- if (sel.clipboard != NULL)
- free(sel.clipboard);
-
- if (sel.primary != NULL) {
- sel.clipboard = xstrdup(sel.primary);
- clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
- XSetSelectionOwner(xw.dpy, clipboard, xw.win, CurrentTime);
- }
-}
-
-void
-xclippaste(void)
-{
- Atom clipboard;
-
- clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
- XConvertSelection(xw.dpy, clipboard, xsel.xtarget, clipboard,
- xw.win, CurrentTime);
+ clipcopy(NULL);
}
void
}
if (e->xbutton.button == Button2) {
- xselpaste();
+ selpaste(NULL);
} else if (e->xbutton.button == Button1) {
if (sel.mode == SEL_READY) {
getbuttoninfo(e);
static int loaded;
Color *cp;
- dc.collen = MAX(colornamelen, 256);
+ dc.collen = MAX(LEN(colorname), 256);
dc.col = xmalloc(dc.collen * sizeof(Color));
if (loaded) {
xsettitle(char *p)
{
XTextProperty prop;
+ DEFAULT(p, "st");
Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
&prop);
int i;
/* Check for mapped keys out of X11 function keys. */
- for (i = 0; i < mappedkeyslen; i++) {
+ for (i = 0; i < LEN(mappedkeys); i++) {
if (mappedkeys[i] == k)
break;
}
- if (i == mappedkeyslen) {
+ if (i == LEN(mappedkeys)) {
if ((k & 0xFFFF) < 0xFD00)
return NULL;
}
- for (kp = key; kp < key + keyslen; kp++) {
+ for (kp = key; kp < key + LEN(key); kp++) {
if (kp->k != k)
continue;
len = XmbLookupString(xw.xic, e, buf, sizeof buf, &ksym, &status);
/* 1. shortcuts */
- for (bp = shortcuts; bp < shortcuts + shortcutslen; bp++) {
+ for (bp = shortcuts; bp < shortcuts + LEN(shortcuts); bp++) {
if (ksym == bp->keysym && match(bp->mod, e->state)) {
bp->func(&(bp->arg));
return;
} while (ev.type != MapNotify);
cresize(w, h);
- ttynew();
+ ttynew(opt_line, opt_io, opt_cmd);
ttyresize(win.tw, win.th);
clock_gettime(CLOCK_MONOTONIC, &last);