<commit_before>#include <ncurses.h>
#include "key.h"

Key scankey() {
    Key key = {0};
    int ch;

    timeout(0);
    if (ERR != (ch = getch())) {
        key.bytes.byte_1 = ch;
        if (ERR != (ch = getch())) {
            key.bytes.byte_2 = ch;
            if (ERR != (ch = getch())) {
                key.bytes.byte_3 = ch;
                if (ERR != (ch = getch())) {
                    key.bytes.byte_4 = ch;
                }
            }
        }
    }
    timeout(-1);
    return key;
}

Key readkey() {
    Key key = {0};
    int ch;

    key.bytes.byte_1 = getch();
    timeout(0);
    if (ERR != (ch = getch())) {
        key.bytes.byte_2 = ch;
        if (ERR != (ch = getch())) {
            key.bytes.byte_3 = ch;
            if (ERR != (ch = getch())) {
                key.bytes.byte_4 = ch;
                if (ERR != (ch = getch())) {
                    key.bytes.byte_5 = ch;
                    if (ERR != (ch = getch())) {
                        key.bytes.byte_6 = ch;
                    }
                }
            }
        }
    }
    timeout(-1);
    return key;
}

bool printkey(Key key) {
    printw("%llp:(", key.keycode);

    if (key.bytes.byte_2 == 0) {
        printw("%s", keyname(key.bytes.byte_1));
    } else if (key.bytes.byte_3 == 0) {
        printw("%s%s", keyname(key.bytes.byte_1), keyname(key.bytes.byte_2));
    } else if (key.bytes.byte_4 == 0) {
        printw("%s%s%s", keyname(key.bytes.byte_1), keyname(key.bytes.byte_2),
            keyname(key.bytes.byte_3));
    } else if (key.bytes.byte_5 == 0) {
        printw("%s%s%s%s", keyname(key.bytes.byte_1), keyname(key.bytes.byte_2),
            keyname(key.bytes.byte_3), keyname(key.bytes.byte_4));
    } else if (key.bytes.byte_6 == 0) {
        printw("%s%s%s%s%s", keyname(key.bytes.byte_1),
            keyname(key.bytes.byte_2), keyname(key.bytes.byte_3),
            keyname(key.bytes.byte_4), keyname(key.bytes.byte_5));
    } else {
        printw("%s%s%s%s%s%s", keyname(key.bytes.byte_1),
            keyname(key.bytes.byte_2), keyname(key.bytes.byte_3),
            keyname(key.bytes.byte_4), keyname(key.bytes.byte_5),
            keyname(key.bytes.byte_6));
    }
    
    printw("):%s\n", keyname(key.keycode));

    return true;
}
<commit_msg>align keycode output<commit_after>#include <ncurses.h>
#include "key.h"

Key scankey() {
    Key key = {0};
    int ch;

    timeout(0);
    if (ERR != (ch = getch())) {
        key.bytes.byte_1 = ch;
        if (ERR != (ch = getch())) {
            key.bytes.byte_2 = ch;
            if (ERR != (ch = getch())) {
                key.bytes.byte_3 = ch;
                if (ERR != (ch = getch())) {
                    key.bytes.byte_4 = ch;
                }
            }
        }
    }
    timeout(-1);
    return key;
}

Key readkey() {
    Key key = {0};
    int ch;

    key.bytes.byte_1 = getch();
    timeout(0);
    if (ERR != (ch = getch())) {
        key.bytes.byte_2 = ch;
        if (ERR != (ch = getch())) {
            key.bytes.byte_3 = ch;
            if (ERR != (ch = getch())) {
                key.bytes.byte_4 = ch;
                if (ERR != (ch = getch())) {
                    key.bytes.byte_5 = ch;
                    if (ERR != (ch = getch())) {
                        key.bytes.byte_6 = ch;
                    }
                }
            }
        }
    }
    timeout(-1);
    return key;
}

bool printkey(Key key) {
    printw("%016llp:(", key.keycode);

    if (key.bytes.byte_2 == 0) {
        printw("%s", keyname(key.bytes.byte_1));
    } else if (key.bytes.byte_3 == 0) {
        printw("%s%s", keyname(key.bytes.byte_1), keyname(key.bytes.byte_2));
    } else if (key.bytes.byte_4 == 0) {
        printw("%s%s%s", keyname(key.bytes.byte_1), keyname(key.bytes.byte_2),
            keyname(key.bytes.byte_3));
    } else if (key.bytes.byte_5 == 0) {
        printw("%s%s%s%s", keyname(key.bytes.byte_1), keyname(key.bytes.byte_2),
            keyname(key.bytes.byte_3), keyname(key.bytes.byte_4));
    } else if (key.bytes.byte_6 == 0) {
        printw("%s%s%s%s%s", keyname(key.bytes.byte_1),
            keyname(key.bytes.byte_2), keyname(key.bytes.byte_3),
            keyname(key.bytes.byte_4), keyname(key.bytes.byte_5));
    } else {
        printw("%s%s%s%s%s%s", keyname(key.bytes.byte_1),
            keyname(key.bytes.byte_2), keyname(key.bytes.byte_3),
            keyname(key.bytes.byte_4), keyname(key.bytes.byte_5),
            keyname(key.bytes.byte_6));
    }
    
    printw("):%s\n", keyname(key.keycode));

    return true;
}

{'fraction_non_alphanumeric': 0.18070175438596492, 'fraction_numerical': 0.021271929824561404, 'mean_word_length': 1.6719390743995313, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6973648', 'n_tokens_mistral': 1705, 'n_tokens_neox': 1706, 'n_words': 278}