# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit 2b6521f5d23da404a597d675d12d4c0cf89657de
    parent 927d8fb45971ddf0eac115ad04161aba6bbd8bc7
    Author: Christoph Lohmann <20h@r-36.net>
    Date:   Thu, 15 Nov 2012 20:19:35 +0100

    Optimizing the key lookup to the X11 function key. It is still possible to

    remap other keys.
    Diffstat:
    Mconfig.def.h | 6++++++
    Mst.c | 14++++++++++++++

    2 files changed, 20 insertions(+), 0 deletions(-)
    diff --git a/config.def.h b/config.def.h
    @@ -88,6 +88,12 @@ static Shortcut shortcuts[] = {
      * position for a key.
      */

    +/*
    + * If you want something else but the function keys of X11 (0xFF00 - 0xFFFF)
    + * mapped below, add them to this array.
    + */
    +static KeySym mappedkeys[] = { -1 };
    +
     /* key, mask, output, keypad, cursor, crlf */
     static Key key[] = {
     	/* keysym             mask         string         keypad cursor crlf */
    diff --git a/st.c b/st.c
    @@ -2711,6 +2711,20 @@ char*
     kmap(KeySym k, uint state) {
     	uint mask;
     	Key *kp;
    +	int i;
    +
    +	/* Check for mapped keys out of X11 function keys. */
    +	for(i = 0; i < LEN(mappedkeys); i++) {
    +		if(mappedkeys[i] == k) {
    +			fprintf(stderr, "mapped function key.\n");
    +			break;
    +		}
    +	}
    +	if(i == LEN(mappedkeys)) {
    +		if((k & 0xFFFF) < 0xFF00)
    +			return NULL;
    +	}
    +	fprintf(stderr, "Function key.\n");

     	for(kp = key; kp < key + LEN(key); kp++) {
     		mask = kp->mask;