History log of /haiku/src/bin/keymap/Keymap.cpp
Revision Date Author Comments
# 684eb9df 14-Jan-2015 Adrien Destugues <pulkomandy@gmail.com>

keymap: Fix unused variable warning.

These constants are not used when building on the host, move them inside
the appropriate ifdef.


# 204dee70 09-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Use libbe_build also on Haiku

This means the build tools will no longer be built against the host
platform's libbe, which avoids compatibility problems -- e.g. an
older Haiku host libbe may not have certain features the build tools
require -- and also makes the build behave more similiar on Haiku and
other platforms. The host libroot dependency still remains and is not
easy to get rid of.

Also remove some bits of BeOS/Dano/Zeta build support.


# 295cdbee 29-Apr-2013 Jérôme Duval <jerome.duval@gmail.com>

keymap: use uchar instead of char to avoid narrowing conversion warnings.


# 4591ebc9 18-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Fixes for building Haiku x86_64 from itself.


# 3cee15aa 28-Mar-2012 John Scipione <jscipione@gmail.com>

Keymap changes from recent activity. No AltGr yet.

Below is a mostly complete summary of the changes in this commit.

* Set the DeadKeys for the US-International Keymap to use the Option map.
* Rename American keymap to US
* Update the US, US-International, and United-Kingdom keymaps to take
out unneeded spaces in the option layer. Also updated the dead keys
and some other keys on the US-International keyboard to use UTF-8
characters rather than there ASCII equivalents when different.
* Make the Option key fall-through when there is no mapping in the Option
table. Option is for special characters, if none, print the regular one.
This is mostly meant for the US keymap which has an empty option map. But
also so that you don't have to repeat the normal, shift, and caps maps in
the option map needlessly. Although the keymaps are still not empty in
some cases that it could be like numpad keys and space.
* Update the /bin/keymap app to use fputs() instead of printf() when there
is no actual formatting taking place. I've gotten into trouble for doing
this before and it is faster to not process the string unnecessarily.
* Also several 80-char limit style fixes and updated comments.
* In Keymap class Reorder the modifier keys to match the keymap files.
Put B_CONTROL_KEY check above B_OPTION_KEY. Neither change has any effect,
they are purely aesthetic.
* Update DumpKeymap() method to use the abbreviated modifier letters so it
will fit in your 80-char wide terminal.
* Tiny style fix in InputServer
* 80-char limit style fix in BWindow and add a comment that the shortcut
gets eaten in the case of Cmd+Q
* Implement IndexForModifier() in KeyboardLayout, although I am not using it.
* Take Caps Lock out of the Modifier keys window because I couldn't get
it to work the way I wanted it to.
* Move key roles to the left column, and the key label on the left. Add column
header labels. Thanks Rimas!
* Add validation and improve marking menu options. Add a 'Disabled' option
to control, option, and command menus to disable the key. Make the key
role text grey if the key roles is disabled. Validation ensures that you
cannot repeat the same key twice in the Modifier keys window since that
won't work. You can't define 2 sets of option keys even if you really want
to. You can disable your control, option, and command keys if you
want, but that is not recommended.
* Rename kUpdateModifiers to kUpdateModifierKeys message to differetiate
it from kUpdateModifier.
* Add shift key to Modifier keys window, use the stop icon instead of the
warning icon to indicate conflicts.
* Allow the Layout system to control the size of the Modifier keys window
again, set the width's of the key role lables to the widest, set the width
of the menu fields to take up the rest of the space minus room for the
conflict views. I didn't like it that the Modifier keys window would change
size based on what options you had selected in the menu fields. Now it
doesn't, but, the layout system still makes it all fit.


# 99318192 29-Oct-2011 Joachim Seemer <humdingerb@googlemail.com>

Applied patch by rq. Changes the example keyboard from 101 to 102-keys, inserting key 0x69 between letf shift and Z. Fixes #6539. Thanks.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42960 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2323e7fa 14-Aug-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

CID 1697. The FILE handle was leaked.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38099 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 97d73e2a 14-May-2010 Joachim Seemer <humdingerb@googlemail.com>

The generated keymap file had the wrong keymap-syntax in the first shebang line. '-l' expects a binary file as it's generated via '-c'. The correct parameter is '-s'.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36814 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 910f10f2 20-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Added libshared_build.a, currently only contains Keymap.cpp.
* keymap and <build>keymap are now using the BKeymap class as a base as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36368 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf5b4ce2 26-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Replaced hardcoded printf()/scanf() format modifiers by the B_{PRI,SCN}*
macros. This fixes the broken keymaps when building on a 64 bit host.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34283 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3836be3e 24-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Reworked GetKey() after Marcus' suggestions. Thanks for the extra motivation
to work on this :-)
* Also made it return "false" if there was no mapping, which will prevent empty
dead keys to be written now (ie. the output now looks exactly like our
sources).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31222 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c454df7e 23-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

This stuff is actually used on the build host platform as well...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31209 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e27f2019 23-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Added ability to save a "styles" attribute for StyledEdit. This implements
ticket #4032.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31196 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 30dcc55d 23-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* More or less rewrote main.cpp to use getopt_long() instead of the self-made
argument evaluation. Also separated the evaluation from performing the
options, solving a TODO, and added long versions for the options.
* Changed Keymap methods to work on a path instead of entry_refs - this
simplifies the code a bit over the place.
* Added new option to load a source keymap directly (-s, --load-source).
* Renamed some methods to make clearer what they do.
* Added a way to directly write a source keymap to a file (by specifying the
-o option together with -d).
* Coding style cleanup, ordered Keymap methods in the order they are declared.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31195 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bc3955fe 23-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Preparations for removing __BEOS__ from the compiler defines.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28305 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dff0e735 23-Jul-2008 Maurice Kalinowski <mauricek@nowhere.fake>

julun+mauricek:
* Cygwin does not have regex support, so we use the one we already have in our glibc.
* Keymap.h has a automatic forward declaration of re_registers, which causes a compile break on Cygwin, but not on other platforms. So add a include for regex.h in the header and remove it in the source file.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26587 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1174007c 12-Apr-2008 Rene Gollent <anevilyak@gmail.com>

Modified bin/keymap's -h option to write a variable to the generated header
indicating the name of the keymap. Correspondingly, modified input_server
to use the aforementioned variable in order to write the name attribute
to ~/config/Key_map. This allows Keymap prefs to correctly recognize the name
of the default keymap on a fresh build.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24951 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b9d454b6 30-Jun-2006 Jérôme Duval <korli@users.berlios.de>

don't forget to init the key_map


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17978 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8467d6b 01-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

* Further improved error handling in class Keymap.
* Improved header output, it now looks a lot nicer.
* Fixed style issues of that header, too: replaced "s" prefix with the
correct "k" prefix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17690 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37e0ed4a 01-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

* Improved error output.
* Fixed some minor style issues.
* fChars was allocated with new[] but deleted with free() in the Keymap destructor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17686 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2dd13cc8 10-Feb-2006 Jérôme Duval <korli@users.berlios.de>

fix some memory leaks


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16323 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9ecef546 31-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

The "keymap" command can now be compiled on Zeta as well - for some stupid reason
it introduces a find_directory_r() instead of making the original call thread-safe.
Maybe we should only support this operation on Haiku, anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14597 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc3 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17049c45 18-Mar-2005 Axel Dörfler <axeld@pinc-software.de>

Moved bin/ directory out of apps/.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11909 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 684eb9df1e90f9f5dfa4a679631d3a6100b92e8a 14-Jan-2015 Adrien Destugues <pulkomandy@gmail.com>

keymap: Fix unused variable warning.

These constants are not used when building on the host, move them inside
the appropriate ifdef.


# 204dee708a999d5a71d0cb9497650ee7cef85d0a 09-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Use libbe_build also on Haiku

This means the build tools will no longer be built against the host
platform's libbe, which avoids compatibility problems -- e.g. an
older Haiku host libbe may not have certain features the build tools
require -- and also makes the build behave more similiar on Haiku and
other platforms. The host libroot dependency still remains and is not
easy to get rid of.

Also remove some bits of BeOS/Dano/Zeta build support.


# 295cdbee6b9613e2a5b6fa3a089ce7591a623f68 29-Apr-2013 Jérôme Duval <jerome.duval@gmail.com>

keymap: use uchar instead of char to avoid narrowing conversion warnings.


# 4591ebc99ad545bab672417533b706d7104a9fac 18-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Fixes for building Haiku x86_64 from itself.


# 3cee15aac2ef8c6ae8975d9add34c36aa4224c29 28-Mar-2012 John Scipione <jscipione@gmail.com>

Keymap changes from recent activity. No AltGr yet.

Below is a mostly complete summary of the changes in this commit.

* Set the DeadKeys for the US-International Keymap to use the Option map.
* Rename American keymap to US
* Update the US, US-International, and United-Kingdom keymaps to take
out unneeded spaces in the option layer. Also updated the dead keys
and some other keys on the US-International keyboard to use UTF-8
characters rather than there ASCII equivalents when different.
* Make the Option key fall-through when there is no mapping in the Option
table. Option is for special characters, if none, print the regular one.
This is mostly meant for the US keymap which has an empty option map. But
also so that you don't have to repeat the normal, shift, and caps maps in
the option map needlessly. Although the keymaps are still not empty in
some cases that it could be like numpad keys and space.
* Update the /bin/keymap app to use fputs() instead of printf() when there
is no actual formatting taking place. I've gotten into trouble for doing
this before and it is faster to not process the string unnecessarily.
* Also several 80-char limit style fixes and updated comments.
* In Keymap class Reorder the modifier keys to match the keymap files.
Put B_CONTROL_KEY check above B_OPTION_KEY. Neither change has any effect,
they are purely aesthetic.
* Update DumpKeymap() method to use the abbreviated modifier letters so it
will fit in your 80-char wide terminal.
* Tiny style fix in InputServer
* 80-char limit style fix in BWindow and add a comment that the shortcut
gets eaten in the case of Cmd+Q
* Implement IndexForModifier() in KeyboardLayout, although I am not using it.
* Take Caps Lock out of the Modifier keys window because I couldn't get
it to work the way I wanted it to.
* Move key roles to the left column, and the key label on the left. Add column
header labels. Thanks Rimas!
* Add validation and improve marking menu options. Add a 'Disabled' option
to control, option, and command menus to disable the key. Make the key
role text grey if the key roles is disabled. Validation ensures that you
cannot repeat the same key twice in the Modifier keys window since that
won't work. You can't define 2 sets of option keys even if you really want
to. You can disable your control, option, and command keys if you
want, but that is not recommended.
* Rename kUpdateModifiers to kUpdateModifierKeys message to differetiate
it from kUpdateModifier.
* Add shift key to Modifier keys window, use the stop icon instead of the
warning icon to indicate conflicts.
* Allow the Layout system to control the size of the Modifier keys window
again, set the width's of the key role lables to the widest, set the width
of the menu fields to take up the rest of the space minus room for the
conflict views. I didn't like it that the Modifier keys window would change
size based on what options you had selected in the menu fields. Now it
doesn't, but, the layout system still makes it all fit.


# 993181928d502753d413e4f7c772c0419a4bc6d6 29-Oct-2011 Joachim Seemer <humdingerb@googlemail.com>

Applied patch by rq. Changes the example keyboard from 101 to 102-keys, inserting key 0x69 between letf shift and Z. Fixes #6539. Thanks.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42960 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2323e7fa92246d6c5a70f37d140a959f04885015 14-Aug-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

CID 1697. The FILE handle was leaked.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38099 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 97d73e2ab252f2b08c932eac36728fc7806fe31a 14-May-2010 Joachim Seemer <humdingerb@googlemail.com>

The generated keymap file had the wrong keymap-syntax in the first shebang line. '-l' expects a binary file as it's generated via '-c'. The correct parameter is '-s'.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36814 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 910f10f2fcf05e0973ffc60734515b369c103ca6 20-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Added libshared_build.a, currently only contains Keymap.cpp.
* keymap and <build>keymap are now using the BKeymap class as a base as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36368 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf5b4ce27a7f32a1612983a43e58f8e3e8cfc8c0 26-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Replaced hardcoded printf()/scanf() format modifiers by the B_{PRI,SCN}*
macros. This fixes the broken keymaps when building on a 64 bit host.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34283 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3836be3e80b6526ead976b20ef23d3f0bcb56a1a 24-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Reworked GetKey() after Marcus' suggestions. Thanks for the extra motivation
to work on this :-)
* Also made it return "false" if there was no mapping, which will prevent empty
dead keys to be written now (ie. the output now looks exactly like our
sources).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31222 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c454df7e296714ae6e47e876dc70769a18fe7ca8 23-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

This stuff is actually used on the build host platform as well...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31209 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e27f20198782c62e6cd78d41a3f35d708b343920 23-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Added ability to save a "styles" attribute for StyledEdit. This implements
ticket #4032.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31196 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 30dcc55d0a860cde18da7c32ba5f7f66f50a8764 23-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* More or less rewrote main.cpp to use getopt_long() instead of the self-made
argument evaluation. Also separated the evaluation from performing the
options, solving a TODO, and added long versions for the options.
* Changed Keymap methods to work on a path instead of entry_refs - this
simplifies the code a bit over the place.
* Added new option to load a source keymap directly (-s, --load-source).
* Renamed some methods to make clearer what they do.
* Added a way to directly write a source keymap to a file (by specifying the
-o option together with -d).
* Coding style cleanup, ordered Keymap methods in the order they are declared.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31195 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bc3955fea5b07e2e94a27fc05e4bb58fe6f0319b 23-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Preparations for removing __BEOS__ from the compiler defines.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28305 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dff0e735eb7c81e1a7cb4429bd0a3fb09264cc1c 23-Jul-2008 Maurice Kalinowski <mauricek@nowhere.fake>

julun+mauricek:
* Cygwin does not have regex support, so we use the one we already have in our glibc.
* Keymap.h has a automatic forward declaration of re_registers, which causes a compile break on Cygwin, but not on other platforms. So add a include for regex.h in the header and remove it in the source file.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26587 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1174007caf16a1da0e3369b6955f427b8e0d41b5 12-Apr-2008 Rene Gollent <anevilyak@gmail.com>

Modified bin/keymap's -h option to write a variable to the generated header
indicating the name of the keymap. Correspondingly, modified input_server
to use the aforementioned variable in order to write the name attribute
to ~/config/Key_map. This allows Keymap prefs to correctly recognize the name
of the default keymap on a fresh build.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24951 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b9d454b6ffdc2d21f5ff4e1f57155cc03e131c3f 30-Jun-2006 Jérôme Duval <korli@users.berlios.de>

don't forget to init the key_map


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17978 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8467d6ba1214f36708f6339fde811de6045e45e 01-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

* Further improved error handling in class Keymap.
* Improved header output, it now looks a lot nicer.
* Fixed style issues of that header, too: replaced "s" prefix with the
correct "k" prefix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17690 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37e0ed4ace909ec0236ca34949d52a73a7e7be42 01-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

* Improved error output.
* Fixed some minor style issues.
* fChars was allocated with new[] but deleted with free() in the Keymap destructor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17686 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2dd13cc8fe70a413b72b2f81d8aae3d19e8db933 10-Feb-2006 Jérôme Duval <korli@users.berlios.de>

fix some memory leaks


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16323 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9ecef546dbd39756372218069b2522780285a56d 31-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

The "keymap" command can now be compiled on Zeta as well - for some stupid reason
it introduces a find_directory_r() instead of making the original call thread-safe.
Maybe we should only support this operation on Haiku, anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14597 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc301721b1f472e8297a898d4eaa2f2ee3a 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 17049c451a91f427aec94b944b75876b611103e7 18-Mar-2005 Axel Dörfler <axeld@pinc-software.de>

Moved bin/ directory out of apps/.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11909 a95241bf-73f2-0310-859d-f6bbb57e9c96