From 0c981604d85f83be3b5e2e6c6320127e160988e4 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 29 Apr 2020 03:37:24 +0530 Subject: [PATCH] input_filter: patch for survivibility --- packages/genodelabs/input_filter.patch | 24 ++++++++++++++++++++++++ packages/genodelabs/targets.nix | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 packages/genodelabs/input_filter.patch diff --git a/packages/genodelabs/input_filter.patch b/packages/genodelabs/input_filter.patch new file mode 100644 index 0000000..ac8b3e6 --- /dev/null +++ b/packages/genodelabs/input_filter.patch @@ -0,0 +1,24 @@ +commit ae03115e473fd7a16e172ccaa91d1ddc2cdc7d29 +Author: Emery Hemingway +Date: Wed Apr 29 03:34:15 2020 +0530 + + input_filter: survive unrecognized keys + +diff --git a/repos/os/src/server/input_filter/chargen_source.h b/repos/os/src/server/input_filter/chargen_source.h +index 06fc657c25..3525fd6f34 100644 +--- a/repos/os/src/server/input_filter/chargen_source.h ++++ b/repos/os/src/server/input_filter/chargen_source.h +@@ -684,9 +684,10 @@ class Input_filter::Chargen_source : public Source, Source::Sink + node.for_each_sub_node("key", [&] (Xml_node key_node) { + + Key_name const name = key_node.attribute_value("name", Key_name()); +- Input::Keycode const key = key_code_by_name(name); +- +- new (_alloc) Modifier(_modifiers, id, key); ++ try { ++ Input::Keycode const key = key_code_by_name(name); ++ new (_alloc) Modifier(_modifiers, id, key); ++ } catch (Unknown_key) { warning("unrecognized key name ", name); } + }); + + node.for_each_sub_node("rom", [&] (Xml_node rom_node) { diff --git a/packages/genodelabs/targets.nix b/packages/genodelabs/targets.nix index 89a0377..168be19 100644 --- a/packages/genodelabs/targets.nix +++ b/packages/genodelabs/targets.nix @@ -5,6 +5,8 @@ with ports; { init.patches = [ ./sandbox.patch ]; + input_filter.patches = [ ./input_filter.patch ]; + intel_fb_drv = { BOARD = "pc"; portInputs = [ dde_linux ];