[haiku-commits] haiku: hrev51595 - src/kits/shared

  • From: jscipione@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 21 Nov 2017 23:49:21 +0100 (CET)

hrev51595 adds 1 changeset to branch 'master'
old head: 164e4f8de42ca0e8a58f27585dab168fdc96b586
new head: a75fc8a7abbaefe8b89283234e00d454a6153314
overview: 
http://cgit.haiku-os.org/haiku/log/?qt=range&q=a75fc8a7abba+%5E164e4f8de42c

----------------------------------------------------------------------------

a75fc8a7abba: Keymap: simplification
  
  Call already existing Offset() method instead of reproducing it.
  
  Set fCharsSize in BKeymap::SetToCurrent()

                                     [ John Scipione <jscipione@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev51595
Commit:      a75fc8a7abbaefe8b89283234e00d454a6153314
URL:         http://cgit.haiku-os.org/haiku/commit/?id=a75fc8a7abba
Author:      John Scipione <jscipione@xxxxxxxxx>
Date:        Wed Oct 23 23:54:49 2013 UTC

----------------------------------------------------------------------------

1 file changed, 5 insertions(+), 45 deletions(-)
src/kits/shared/Keymap.cpp | 50 +++++-------------------------------------

----------------------------------------------------------------------------

diff --git a/src/kits/shared/Keymap.cpp b/src/kits/shared/Keymap.cpp
index 058195d..65fd7cc 100644
--- a/src/kits/shared/Keymap.cpp
+++ b/src/kits/shared/Keymap.cpp
@@ -122,6 +122,9 @@ BKeymap::SetToCurrent()
 
        memcpy(&fKeys, keys, sizeof(fKeys));
        free(keys);
+
+       fCharsSize = sizeof(fChars);
+
        return B_OK;
 #else  // ! __BEOS__
        fprintf(stderr, "Unsupported operation on this platform!\n");
@@ -452,58 +455,15 @@ BKeymap::GetModifiedCharacters(const char* in, int32 
inModifiers,
        if (in == NULL || *in == '\0' || _outList == NULL)
                return B_BAD_VALUE;
 
-       int32 inOffset;
-       int32 outOffset;
-
        for(uint32 i = 0; i < 128; i++) {
-               if (inModifiers == 0)
-                       inOffset = fKeys.normal_map[i];
-               else if (inModifiers == B_SHIFT_KEY)
-                       inOffset = fKeys.shift_map[i];
-               else if (inModifiers == B_CONTROL_KEY)
-                       inOffset = fKeys.control_map[i];
-               else if (inModifiers == B_OPTION_KEY)
-                       inOffset = fKeys.option_map[i];
-               else if (inModifiers == (B_OPTION_KEY | B_SHIFT_KEY))
-                       inOffset = fKeys.option_shift_map[i];
-               else if (inModifiers == B_CAPS_LOCK)
-                       inOffset = fKeys.caps_map[i];
-               else if (inModifiers == (B_CAPS_LOCK | B_SHIFT_KEY))
-                       inOffset = fKeys.caps_shift_map[i];
-               else if (inModifiers == (B_OPTION_KEY | B_CAPS_LOCK))
-                       inOffset = fKeys.option_caps_map[i];
-               else if (inModifiers == (B_OPTION_KEY | B_CAPS_LOCK | 
B_SHIFT_KEY))
-                       inOffset = fKeys.option_caps_shift_map[i];
-               else
-                       return B_BAD_VALUE;
-
+               int32 inOffset = Offset(i, inModifiers);
                size_t sizeIn = fChars[inOffset++];
                if (sizeIn == 0 || memcmp(in, fChars + inOffset, sizeIn) != 0) {
                        // this character isn't mapped or doesn't match
                        continue;
                }
 
-               if (outModifiers == 0)
-                       outOffset = fKeys.normal_map[i];
-               else if (outModifiers == B_SHIFT_KEY)
-                       outOffset = fKeys.shift_map[i];
-               else if (outModifiers == B_CONTROL_KEY)
-                       outOffset = fKeys.control_map[i];
-               else if (outModifiers == B_OPTION_KEY)
-                       outOffset = fKeys.option_map[i];
-               else if (outModifiers == (B_OPTION_KEY | B_SHIFT_KEY))
-                       outOffset = fKeys.option_shift_map[i];
-               else if (outModifiers == B_CAPS_LOCK)
-                       outOffset = fKeys.caps_map[i];
-               else if (outModifiers == (B_CAPS_LOCK | B_SHIFT_KEY))
-                       outOffset = fKeys.caps_shift_map[i];
-               else if (outModifiers == (B_OPTION_KEY | B_CAPS_LOCK))
-                       outOffset = fKeys.option_caps_map[i];
-               else if (outModifiers == (B_OPTION_KEY | B_CAPS_LOCK | 
B_SHIFT_KEY))
-                       outOffset = fKeys.option_caps_shift_map[i];
-               else
-                       return B_BAD_VALUE;
-
+               int32 outOffset = Offset(i, outModifiers);
                size_t sizeOut = fChars[outOffset++];
                char* out = (char*)malloc(sizeOut + 1);
                if (out == NULL)


Other related posts:

  • » [haiku-commits] haiku: hrev51595 - src/kits/shared - jscipione