From 1fb06331bd0fa2745e83dc44eb5dce45791ef0d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Thu, 29 Jul 2004 20:23:39 +0000 Subject: [PATCH] initial version of keymap bin app -d option only git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8514 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/bin/keymap/Jamfile | 6 + src/apps/bin/keymap/Keymap.cpp | 546 ++++++++++++++++++++++++++++++++ src/apps/bin/keymap/Keymap.h | 43 +++ src/apps/bin/keymap/key_map.cpp | 56 ++++ 4 files changed, 651 insertions(+) create mode 100644 src/apps/bin/keymap/Jamfile create mode 100644 src/apps/bin/keymap/Keymap.cpp create mode 100644 src/apps/bin/keymap/Keymap.h create mode 100644 src/apps/bin/keymap/key_map.cpp diff --git a/src/apps/bin/keymap/Jamfile b/src/apps/bin/keymap/Jamfile new file mode 100644 index 0000000000..954af65e45 --- /dev/null +++ b/src/apps/bin/keymap/Jamfile @@ -0,0 +1,6 @@ +SubDir OBOS_TOP src apps bin keymap ; + +BinCommand keymap : + key_map.cpp + Keymap.cpp + : be ; diff --git a/src/apps/bin/keymap/Keymap.cpp b/src/apps/bin/keymap/Keymap.cpp new file mode 100644 index 0000000000..9bbb49477d --- /dev/null +++ b/src/apps/bin/keymap/Keymap.cpp @@ -0,0 +1,546 @@ +// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ +// +// Copyright (c) 2004, Haiku +// +// This software is part of the Haiku distribution and is covered +// by the Haiku license. +// +// +// File: Keymap.cpp +// Author: Jérôme Duval +// Description: keymap bin +// Created : July 29, 2004 +// +// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ + +#include "Keymap.h" +#include +#include +#include +#include + +void +Keymap::GetKey( char *chars, int32 offset, char* string) +{ + int size = chars[offset++]; + char str[32]; + memset(str, 0, 32); + memset(string, 0, 32); + + switch( size ) { + case 0: + // Not mapped + sprintf(str, "''"); + break; + + case 1: + // 1-byte UTF-8/ASCII character + if ((uint8)chars[offset] < 0x20 + || (uint8)chars[offset] > 0x7e) + sprintf(str, "0x%02x", (uint8)chars[offset]); + else + sprintf(str, "'%s%c'", + (chars[offset] == '\\' || chars[offset] == '\'') ? "\\" : "", chars[offset]); + break; + + default: + // n-byte UTF-8/ASCII character + sprintf(str, "0x"); + for (int i=0; i 1) + operation = argv[i][1]; + else + break; + if (operation == 'd') { + Keymap keymap; + keymap.LoadCurrent(); + keymap.Dump(); + return 0; + } + } else { + if (operation == 'o') { + //return do_compile(argv[i]); + return 0; + } else + break; + } + } + usage("/bin/keymap"); + return 1; +}