git home / emma home
logo

typie

Minimal typing practice tool.
git clone https://git.y1.nz/archives/typie.tar.gz
README | Files | Log | Refs | LICENSE

commit 42cb383c7faf7a1bdf7b78339349f31356893d3d
parent 67e5183f74a74c4ad41465e9d29f3fefb8507283
Author: Emma Weaver <emma@waeaves.com>
Date:   Wed, 15 Apr 2026 13:09:02 -0400

fixed inconsistent tab style, fixed accuracy typo

Diffstat:
Mmain.c2+-
Mprompt.c30+++++++++++++++---------------
Mrandom.c8++++----
Mtyper.c24++++++++++++------------
4 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/main.c b/main.c @@ -102,7 +102,7 @@ main(int argc, char *argv[]) double min = dif / (60.0 * 1000); int words_per_min = (chars_correct / 5.0) / min; int keys_per_min = (chars_total) / min; - int accuracy = ((double) chars_correct / chars_total) / 100; + int accuracy = ((double) chars_correct / chars_total) * 100; printf("retries" "\t\t" "%d" "\n", lines_failed); printf("backspaces" "\t" "%d" "\n", chars_backspace); diff --git a/prompt.c b/prompt.c @@ -5,9 +5,9 @@ uint64_t seed; FILE * init_file(const char * filename) { int size; - FILE * f = fopen(filename, "r"); + FILE * f = fopen(filename, "r"); - if (f == NULL) { + if (f == NULL) { printf("File %s could not be opened." "\n", filename, stderr); exit(1); } @@ -20,9 +20,9 @@ get_file_size(FILE * f) { size_t ret; - fseek(f, 0, SEEK_END); - ret = ftell(f); - rewind(f); + fseek(f, 0, SEEK_END); + ret = ftell(f); + rewind(f); return ret; } @@ -65,28 +65,28 @@ create_prompt( char delimiter ) { - Words ret = {0}; - FILE * f; - size_t size; - int word_count = 0; + Words ret = {0}; + FILE * f; + size_t size; + int word_count = 0; ret.str = ret_buffer; f = init_file(dictionary_filename); size = get_file_size(f); - if (seed == 0) + if (seed == 0) seed = (uint64_t) &seed; - seed ^= (uint64_t) &target_word_count * 11111111111; seed ^= seed >> 32; - seed ^= (uint64_t) &f * 55555555555; seed ^= seed >> 32; + seed ^= (uint64_t) &target_word_count * 11111111111; seed ^= seed >> 32; + seed ^= (uint64_t) &f * 55555555555; seed ^= seed >> 32; - while (word_count < target_word_count) { + while (word_count < target_word_count) { int r = get_random(&seed, size); ret.len += load_word_at(f, ret.str + ret.len, r); word_count++; ret.str[ret.len] = delimiter; ret.len++; - } + } if (ret.str[ret.len-1] != delimiter || ret.len == 0) { printf("Error creating prompt, exiting." "\n", stderr); @@ -97,6 +97,6 @@ create_prompt( ret.str[ret.len-1] = '\0'; ret.len--; - return ret; + return ret; } diff --git a/random.c b/random.c @@ -2,10 +2,10 @@ uint64_t step_random(uint64_t * state) { - uint64_t old = * state; - *state *= 1111111111111111111; - *state += 0x1337; - return old ^ (old >> (old >> 59)); + uint64_t old = * state; + *state *= 1111111111111111111; + *state += 0x1337; + return old ^ (old >> (old >> 59)); } uint64_t diff --git a/typer.c b/typer.c @@ -2,23 +2,23 @@ void setup_termios(struct termios term_og) { - struct termios term_raw; - term_raw = term_og; term_raw.c_iflag &= ~( - IGNBRK | BRKINT | PARMRK | ISTRIP | - INLCR | IGNCR | ICRNL | IXON - ); - term_raw.c_oflag &= ~OPOST; - term_raw.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN); - term_raw.c_cflag &= ~(CSIZE | PARENB); - term_raw.c_cflag |= CS8; - tcsetattr(0, 0, &term_raw); + struct termios term_raw; + term_raw = term_og; term_raw.c_iflag &= ~( + IGNBRK | BRKINT | PARMRK | ISTRIP | + INLCR | IGNCR | ICRNL | IXON + ); + term_raw.c_oflag &= ~OPOST; + term_raw.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN); + term_raw.c_cflag &= ~(CSIZE | PARENB); + term_raw.c_cflag |= CS8; + tcsetattr(0, 0, &term_raw); } void restore_termios(struct termios term_og) { - tcsetattr(0, 0, &term_og); - printf(COLOR_RESET "\n"); + tcsetattr(0, 0, &term_og); + printf(COLOR_RESET "\n"); } void

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.