Skip to content

Commit

Permalink
Refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
fl3pp committed Oct 21, 2022
1 parent f501b15 commit 94c355f
Show file tree
Hide file tree
Showing 11 changed files with 116 additions and 37 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1 @@
/test/test.exe
*.exe
2 changes: 1 addition & 1 deletion features/umlaut.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ bool toggle_umlaut_shift(void) {
}

bool print_umlaut_unicode(enum unicode_names code) {
register_unicode(unicode_map[code]);
qmk_register_unicode(get_unicode_point(code));
return false;
}
bool print_ae(void) { return print_umlaut_unicode(UMLAUT_SHIFT_STATE ? U_AE : U_ae); }
Expand Down
2 changes: 1 addition & 1 deletion features/umlaut.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#ifndef UMLAUT_H
#define UMLAUT_H

#include QMK_KEYBOARD_H
#include "shim/qmk.h"

#ifdef CONSOLE_ENABLE
void dbg_umlaut(void);
Expand Down
5 changes: 5 additions & 0 deletions features/unicode.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include QMK_KEYBOARD_H
#include "features/unicode.h"

const uint32_t PROGMEM unicode_map[] = {
Expand All @@ -10,3 +11,7 @@ const uint32_t PROGMEM unicode_map[] = {
[U_THUMBUP] = 0x1F44D, // 👍
[U_THUMBDWN] = 0x1F44E, // 👎
};

uint32_t get_unicode_point(enum unicode_names name) {
return unicode_map[name];
}
7 changes: 2 additions & 5 deletions features/unicode.h
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
// 'UNICODEMAP_ENABLE = yes' in 'rules.mk' required

// Keycodes as 'X(code)' or 'X(code, shift)'
// print using register_unicode(unicode_map[code])

#ifndef UNICODE_H
#define UNICODE_H

#include QMK_KEYBOARD_H
#include "shim/qmk.h"

enum unicode_names {
U_AE,
Expand All @@ -19,6 +16,6 @@ enum unicode_names {
U_THUMBDWN,
};

extern const uint32_t PROGMEM unicode_map[];
uint32_t get_unicode_point(enum unicode_names name);

#endif
2 changes: 1 addition & 1 deletion rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ ORYX_ENABLE = yes
SPACE_CADET_ENABLE = no
UNICODEMAP_ENABLE = yes

SRC = matrix.c features/umlaut.c features/unicode.c
SRC = matrix.c features/umlaut.c features/unicode.c shim/qmk.c
6 changes: 6 additions & 0 deletions shim/qmk.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include QMK_KEYBOARD_H
#include "shim/qmk.h"

void qmk_register_unicode(uint32_t code_point) {
register_unicode(code_point);
}
9 changes: 9 additions & 0 deletions shim/qmk.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#ifndef QMK_SHIM_H
#define QMK_SHIM_H

#include <stdint.h>
#include <stdbool.h>

void qmk_register_unicode(uint32_t code_point);

#endif
18 changes: 9 additions & 9 deletions test/Makefile
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
CC=gcc
CFLAGS=-I. -Wall -I../ -Ilib/

SRC=$(wildcard *.c)
BIN=test
SRCS = $(wildcard *.c)
BINS = $(patsubst %.c,%,$(SRCS))

all: build execute
all: execute

build:
$(CC) $(SRC) -o $(BIN) $(CFLAGS)
%: %.c
$(CC) $(CFLAGS) -o $@ $<

execute:
./$(BIN)
execute: $(BINS)
./$(BINS)

clean:
rm -f $(BIN)
clean:
rm -f $(BINS)
19 changes: 0 additions & 19 deletions test/test.c

This file was deleted.

81 changes: 81 additions & 0 deletions test/umlaut.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#include <acutest.h>
#include "features/umlaut.c"

uint32_t last_registered_point;
uint32_t get_unicode_point(enum unicode_names name) { return name; }
void qmk_register_unicode(uint32_t code_point) { last_registered_point = code_point; }

void test_ae(void)
{
reset_umlaut();
print_ae();
TEST_CHECK(last_registered_point == U_ae);
}

void test_oe(void)
{
reset_umlaut();
print_oe();
TEST_CHECK(last_registered_point == U_oe);
}

void test_ue(void)
{
reset_umlaut();
print_ue();
TEST_CHECK(last_registered_point == U_ue);
}

void test_shift_ae(void)
{
reset_umlaut();
toggle_umlaut_shift();
print_ae();
TEST_CHECK(last_registered_point == U_AE);
}

void test_shift_oe(void)
{
reset_umlaut();
toggle_umlaut_shift();
print_oe();
TEST_CHECK(last_registered_point == U_OE);
}

void test_shift_ue(void)
{
reset_umlaut();
toggle_umlaut_shift();
print_ue();
TEST_CHECK(last_registered_point == U_UE);
}

void test_shift_shift_ae(void)
{
reset_umlaut();
toggle_umlaut_shift();
toggle_umlaut_shift();
print_ae();
TEST_CHECK(last_registered_point == U_ae);
}

void test_shift_reset_ae(void)
{
reset_umlaut();
toggle_umlaut_shift();
reset_umlaut();
print_ae();
TEST_CHECK(last_registered_point == U_ae);
}

TEST_LIST = {
{ "test_ae", test_ae },
{ "test_ue", test_ue },
{ "test_oe", test_oe },
{ "test_shift_ae", test_shift_ae },
{ "test_shift_ue", test_shift_ue },
{ "test_shift_oe", test_shift_oe },
{ "test_shift_shift_ae", test_shift_shift_ae },
{ "test_shift_reset_ae", test_shift_reset_ae },
{ NULL, NULL }
};

0 comments on commit 94c355f

Please sign in to comment.