#9744: Greek (Extended).Keymap – Greek Polytonic keyboard ----------------------------------+----------------------------- Reporter: greekboy | Owner: axeld Type: enhancement | Status: new Priority: high | Milestone: R1 Component: Preferences/Keymap | Version: R1/alpha4.1 Resolution: | Keywords: Greek Polytonic Blocked By: | Blocking: Has a Patch: 1 | Platform: All ----------------------------------+----------------------------- Comment (by X512): Replying to [comment:13 greekboy]: > My source code is 100% compatible with Greek Polytonic System in Windows. Nobody says that it is not. Haiku does not try to be Windows-comparible in any way. Your solution is specific for Greek language and nothing more. Language-specific info should be stored in keymap file and not hardcoded in key_map structure. Possible solution can be: {{{ struct key_map_ex { uint32 version; uint32 caps_key; uint32 scroll_key; uint32 num_key; uint32 left_shift_key; uint32 right_shift_key; uint32 left_command_key; uint32 right_command_key; uint32 left_control_key; uint32 right_control_key; uint32 left_option_key; uint32 right_option_key; uint32 menu_key; uint32 lock_settings; int32 control_map[128]; int32 option_caps_shift_map[128]; int32 option_caps_map[128]; int32 option_shift_map[128]; int32 option_map[128]; int32 caps_shift_map[128]; int32 caps_map[128]; int32 shift_map[128]; int32 normal_map[128]; uint32 dead_key_count; struct { int32 chars; uint32 tables; } dead_keys[1]; }; void get_key_map_ex(uint32 version, key_map_ex** _map, char** _keyBuffer); }}} This extension is universal and don't break binary compatability. Also it add ability of future extentions. Another solution can be adding dead_key_count and dead_keys to the end of current key_map structure and don't use "ex" versions. dead_key_count will be set to 0 if predefined dead keys is enougth. -- Ticket URL: <http://dev.haiku-os.org/ticket/9744#comment:14> Haiku <http://dev.haiku-os.org> Haiku - the operating system.