Introduction
Introduction Statistics Contact Development Disclaimer Help
tworking on old repo, merging recent changesets. - st - [fork] customized build…
git clone git://src.adamsgaard.dk/st
Log
Files
Refs
README
LICENSE
---
commit b032814e25ddb166b4621262be4b8a1a0a609e37
parent 8e66b5cc16831583a1086f3ba9cd0eaa55f02230
Author: AurĂ©lien Aptel <[email protected]>
Date: Fri, 16 Sep 2011 18:24:13 +0200
working on old repo, merging recent changesets.
Diffstat:
M config.def.h | 52 +++++++++++++++++------------…
M st.c | 9 +++++++--
M st.info | 2 +-
3 files changed, 37 insertions(+), 26 deletions(-)
---
diff --git a/config.def.h b/config.def.h
t@@ -25,34 +25,40 @@ static const char *colorname[] = {
"white"
};
-/* Default colors (colorname index) */
-/* foreground, background, cursor */
+/* Default colors (colorname index)
+ foreground, background, cursor */
#define DefaultFG 7
#define DefaultBG 0
#define DefaultCS 1
-/* Special keys (change & recompile st.info accordingly) */
-/* key, mask, output */
+/* Special keys (change & recompile st.info accordingly)
+ Keep in mind that kpress() in st.c hardcodes some keys.
+
+ Mask value:
+ * Use XK_ANY_MOD to match the key no matter modifiers state
+ * Use XK_NO_MOD to match the key alone (no modifiers)
+
+ key, mask, output */
static Key key[] = {
- { XK_BackSpace, 0, "\177" },
- { XK_Insert, 0, "\033[2~" },
- { XK_Delete, 0, "\033[3~" },
- { XK_Home, 0, "\033[1~" },
- { XK_End, 0, "\033[4~" },
- { XK_Prior, 0, "\033[5~" },
- { XK_Next, 0, "\033[6~" },
- { XK_F1, 0, "\033OP" },
- { XK_F2, 0, "\033OQ" },
- { XK_F3, 0, "\033OR" },
- { XK_F4, 0, "\033OS" },
- { XK_F5, 0, "\033[15~" },
- { XK_F6, 0, "\033[17~" },
- { XK_F7, 0, "\033[18~" },
- { XK_F8, 0, "\033[19~" },
- { XK_F9, 0, "\033[20~" },
- { XK_F10, 0, "\033[21~" },
- { XK_F11, 0, "\033[23~" },
- { XK_F12, 0, "\033[24~" },
+ { XK_BackSpace, XK_NO_MOD, "\177" },
+ { XK_Insert, XK_NO_MOD, "\033[2~" },
+ { XK_Delete, XK_NO_MOD, "\033[3~" },
+ { XK_Home, XK_NO_MOD, "\033[1~" },
+ { XK_End, XK_NO_MOD, "\033[4~" },
+ { XK_Prior, XK_NO_MOD, "\033[5~" },
+ { XK_Next, XK_NO_MOD, "\033[6~" },
+ { XK_F1, XK_NO_MOD, "\033OP" },
+ { XK_F2, XK_NO_MOD, "\033OQ" },
+ { XK_F3, XK_NO_MOD, "\033OR" },
+ { XK_F4, XK_NO_MOD, "\033OS" },
+ { XK_F5, XK_NO_MOD, "\033[15~" },
+ { XK_F6, XK_NO_MOD, "\033[17~" },
+ { XK_F7, XK_NO_MOD, "\033[18~" },
+ { XK_F8, XK_NO_MOD, "\033[19~" },
+ { XK_F9, XK_NO_MOD, "\033[20~" },
+ { XK_F10, XK_NO_MOD, "\033[21~" },
+ { XK_F11, XK_NO_MOD, "\033[23~" },
+ { XK_F12, XK_NO_MOD, "\033[24~" },
};
/* Line drawing characters (sometime specific to each font...) */
diff --git a/st.c b/st.c
t@@ -47,6 +47,8 @@
#define ESC_ARG_SIZ 16
#define DRAW_BUF_SIZ 1024
#define UTF_SIZ 4
+#define XK_NO_MOD UINT_MAX
+#define XK_ANY_MOD 0
#define SERRNO strerror(errno)
#define MIN(a, b) ((a) < (b) ? (a) : (b))
t@@ -1840,9 +1842,12 @@ focus(XEvent *ev) {
char*
kmap(KeySym k, unsigned int state) {
int i;
- for(i = 0; i < LEN(key); i++)
- if(key[i].k == k && (key[i].mask == 0 || key[i].mask & state))
+ state &= ~Mod2Mask;
+ for(i = 0; i < LEN(key); i++) {
+ unsigned int mask = key[i].mask;
+ if(key[i].k == k && ((state & mask) == mask || (mask == XK_NO_…
return (char*)key[i].s;
+ }
return NULL;
}
diff --git a/st.info b/st.info
t@@ -79,7 +79,7 @@ st| simpleterm,
mir,
msgr,
ncv#3,
- op=\E[37;40m,
+ op=\E[39;49m,
pairs#64,
rc=\E8,
rev=\E[7m,
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.