aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile6
-rw-r--r--patches/libpicofe/0003-avoid-button-conflict.patch17
2 files changed, 21 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 44c2c68..f2488aa 100644
--- a/Makefile
+++ b/Makefile
@@ -147,10 +147,12 @@ print-%:
all: $(BIN) cores
libpicofe/.patched:
- cd libpicofe && git apply -p1 < ../patches/libpicofe/0001-key-combos.patch && git apply -p1 < ../patches/libpicofe/0002-small-screen.patch && touch .patched
+ cd libpicofe && ($(foreach patch, $(sort $(wildcard patches/libpicofe/*.patch)), git apply -p1 < ../$(patch) &&) touch .patched)
+
+reverse = $(if $(wordlist 2,2,$(1)),$(call reverse,$(wordlist 2,$(words $(1)),$(1))) $(firstword $(1)),$(1))
clean-libpicofe:
- test ! -f libpicofe/.patched || (cd libpicofe && git apply -p1 -R < ../patches/libpicofe/0002-small-screen.patch && git apply -p1 -R < ../patches/libpicofe/0001-key-combos.patch && rm .patched)
+ test ! -f libpicofe/.patched || (cd libpicofe && ($(foreach patch, $(call reverse,$(sort $(wildcard patches/libpicofe/*.patch))), git apply -R -p1 < ../$(patch) &&) rm .patched))
plat_trimui.o: plat_sdl.c
plat_funkey.o: plat_sdl.c
diff --git a/patches/libpicofe/0003-avoid-button-conflict.patch b/patches/libpicofe/0003-avoid-button-conflict.patch
new file mode 100644
index 0000000..c7ff40e
--- /dev/null
+++ b/patches/libpicofe/0003-avoid-button-conflict.patch
@@ -0,0 +1,17 @@
+diff --git a/in_sdl.c b/in_sdl.c
+index a84c781..22d3b01 100644
+--- a/in_sdl.c
++++ b/in_sdl.c
+@@ -476,10 +476,8 @@ static int in_sdl_menu_translate(void *drv_data, int keycode, char *charcode)
+ else
+ {
+ for (i = 0; i < map_len; i++) {
+- if (map[i].key == keycode) {
+- ret = map[i].pbtn;
+- break;
+- }
++ if (map[i].key == keycode)
++ return map[i].pbtn;
+ }
+
+ if (charcode != NULL && (unsigned int)keycode < SDLK_LAST &&