bind y echo test
on a QWERTZ keyboard layout then you instead activate the bind with the Z key.
This is detrimental for #7393, which uses Ctrl+Z/Y for the undo/redo actions respectively, which are swapped when using a QWERTZ keyboard layout.
Maybe we could detect the keyboard layout and translate the keys transparently.for(int i = MAX_LINES; i > 0; i--)
where MAX_LINES is array sizeCC=clang CXX=clang++ CXXFLAGS='-fsanitize=address,undefined -fsanitize-recover=address,undefined -fno-omit-frame-pointer' CFLAGS='-fsanitize=address,undefined -fsanitize-recover=address,undefined -fno-omit-frame-pointer' cmake .. -DCMAKE_BUILD_TYPE=Debug
-fsanitize-recover=address
is probably a bad idea, you don't want to continue executing after OOB accessesvariables.h
are moved to config_variables.h
instead of being included with the preprocessor. The file variables.h
is removed, so all config variables can be found in a single file instead of being spread over two files without any clear structure. The original declaration order of config variables is preserved. The unnecessary header guard GAME_VARIABLES_H
from variables.h
is removed, as the comment // This file can be included several times.
already serves the sam...CRegister
is such a complicated class for what it doesunique_locks
with CLockScope
std::mutex
had thread-safety annotations, then we wouldn't need the wrappersstd::mutex
had thread-safety annotations, then we wouldn't need the wrappers use std::sync::Mutex;
let mutex = Mutex::new(0);
let mut guard = mutex.lock().unwrap();
*guard += 20;
// out of scope unlocks, or u can manually drop()
CNameBans
in the existing name_ban.cpp/h
files. The previously global function IsNameBanned
is now the member function CNameBans::IsBanned
. T...