mirror of https://github.com/OpenTTD/OpenTTD.git
Codechange: use std::string instead of strecat to build hotkey strings
This commit is contained in:
parent
72c7536325
commit
86e5dfce3d
|
@ -167,53 +167,41 @@ static void ParseHotkeys(Hotkey *hotkey, const char *value)
|
||||||
* by a '+'.
|
* by a '+'.
|
||||||
* @param keycode The keycode to convert to a string.
|
* @param keycode The keycode to convert to a string.
|
||||||
* @return A string representation of this keycode.
|
* @return A string representation of this keycode.
|
||||||
* @note The return value is a static buffer, stredup the result before calling
|
|
||||||
* this function again.
|
|
||||||
*/
|
*/
|
||||||
static const char *KeycodeToString(uint16 keycode)
|
static std::string KeycodeToString(uint16 keycode)
|
||||||
{
|
{
|
||||||
static char buf[32];
|
std::string str;
|
||||||
buf[0] = '\0';
|
|
||||||
bool first = true;
|
|
||||||
if (keycode & WKC_GLOBAL_HOTKEY) {
|
if (keycode & WKC_GLOBAL_HOTKEY) {
|
||||||
strecat(buf, "GLOBAL", lastof(buf));
|
str += "GLOBAL";
|
||||||
first = false;
|
|
||||||
}
|
}
|
||||||
if (keycode & WKC_SHIFT) {
|
if (keycode & WKC_SHIFT) {
|
||||||
if (!first) strecat(buf, "+", lastof(buf));
|
if (!str.empty()) str += "+";
|
||||||
strecat(buf, "SHIFT", lastof(buf));
|
str += "SHIFT";
|
||||||
first = false;
|
|
||||||
}
|
}
|
||||||
if (keycode & WKC_CTRL) {
|
if (keycode & WKC_CTRL) {
|
||||||
if (!first) strecat(buf, "+", lastof(buf));
|
if (!str.empty()) str += "+";
|
||||||
strecat(buf, "CTRL", lastof(buf));
|
str += "CTRL";
|
||||||
first = false;
|
|
||||||
}
|
}
|
||||||
if (keycode & WKC_ALT) {
|
if (keycode & WKC_ALT) {
|
||||||
if (!first) strecat(buf, "+", lastof(buf));
|
if (!str.empty()) str += "+";
|
||||||
strecat(buf, "ALT", lastof(buf));
|
str += "ALT";
|
||||||
first = false;
|
|
||||||
}
|
}
|
||||||
if (keycode & WKC_META) {
|
if (keycode & WKC_META) {
|
||||||
if (!first) strecat(buf, "+", lastof(buf));
|
if (!str.empty()) str += "+";
|
||||||
strecat(buf, "META", lastof(buf));
|
str += "META";
|
||||||
first = false;
|
|
||||||
}
|
}
|
||||||
if (!first) strecat(buf, "+", lastof(buf));
|
if (!str.empty()) str += "+";
|
||||||
keycode = keycode & ~WKC_SPECIAL_KEYS;
|
keycode = keycode & ~WKC_SPECIAL_KEYS;
|
||||||
|
|
||||||
for (uint i = 0; i < lengthof(_keycode_to_name); i++) {
|
for (uint i = 0; i < lengthof(_keycode_to_name); i++) {
|
||||||
if (_keycode_to_name[i].keycode == keycode) {
|
if (_keycode_to_name[i].keycode == keycode) {
|
||||||
strecat(buf, _keycode_to_name[i].name, lastof(buf));
|
str += _keycode_to_name[i].name;
|
||||||
return buf;
|
return str;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
assert(keycode < 128);
|
assert(keycode < 128);
|
||||||
char key[2];
|
str.push_back(keycode);
|
||||||
key[0] = keycode;
|
return str;
|
||||||
key[1] = '\0';
|
|
||||||
strecat(buf, key, lastof(buf));
|
|
||||||
return buf;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -221,19 +209,15 @@ static const char *KeycodeToString(uint16 keycode)
|
||||||
* keycodes are attached to the hotkey they are split by a comma.
|
* keycodes are attached to the hotkey they are split by a comma.
|
||||||
* @param hotkey The keycodes of this hotkey need to be converted to a string.
|
* @param hotkey The keycodes of this hotkey need to be converted to a string.
|
||||||
* @return A string representation of all keycodes.
|
* @return A string representation of all keycodes.
|
||||||
* @note The return value is a static buffer, stredup the result before calling
|
|
||||||
* this function again.
|
|
||||||
*/
|
*/
|
||||||
const char *SaveKeycodes(const Hotkey *hotkey)
|
std::string SaveKeycodes(const Hotkey *hotkey)
|
||||||
{
|
{
|
||||||
static char buf[128];
|
std::string str;
|
||||||
buf[0] = '\0';
|
|
||||||
for (uint i = 0; i < hotkey->keycodes.size(); i++) {
|
for (uint i = 0; i < hotkey->keycodes.size(); i++) {
|
||||||
const char *str = KeycodeToString(hotkey->keycodes[i]);
|
if (i > 0) str += ",";
|
||||||
if (i > 0) strecat(buf, ",", lastof(buf));
|
str += KeycodeToString(hotkey->keycodes[i]);
|
||||||
strecat(buf, str, lastof(buf));
|
|
||||||
}
|
}
|
||||||
return buf;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue