All: Fix a lot of compiler warnings from header files

While reworking build system, header files started to report warnings.
This commit is contained in:
2024-06-18 20:32:43 +03:00
parent 526d4369ce
commit 318ce5dec8
59 changed files with 339 additions and 326 deletions

View File

@@ -36,7 +36,7 @@ BAN::Optional<BAN::String> parse_dollar(BAN::StringView command, size_t& i)
ASSERT(command[i] == '$');
if (++i >= command.size())
return "$"sv;
return "$"_sv;
if (command[i] == '?')
{
@@ -54,7 +54,7 @@ BAN::Optional<BAN::String> parse_dollar(BAN::StringView command, size_t& i)
if (const char* value = getenv(name.data()))
return BAN::StringView(value);
return ""sv;
return ""_sv;
}
else if (command[i] == '{')
{
@@ -75,7 +75,7 @@ BAN::Optional<BAN::String> parse_dollar(BAN::StringView command, size_t& i)
if (const char* value = getenv(name.data()))
return BAN::StringView(value);
return ""sv;
return ""_sv;
}
else if (command[i] == '[')
{
@@ -156,7 +156,7 @@ BAN::Optional<BAN::String> parse_dollar(BAN::StringView command, size_t& i)
return output;
}
BAN::String temp = "$"sv;
BAN::String temp = "$"_sv;
MUST(temp.push_back(command[i]));
return temp;
}
@@ -288,16 +288,16 @@ BAN::Optional<int> execute_builtin(BAN::Vector<BAN::String>& args, int fd_in, in
}
BAN::ScopeGuard _([fout, should_close] { if (should_close) fclose(fout); });
if (args.front() == "clear"sv)
if (args.front() == "clear"_sv)
{
fprintf(fout, "\e[H\e[2J");
fflush(fout);
}
else if (args.front() == "exit"sv)
else if (args.front() == "exit"_sv)
{
clean_exit();
}
else if (args.front() == "export"sv)
else if (args.front() == "export"_sv)
{
bool first = false;
for (const auto& arg : args)
@@ -316,7 +316,7 @@ BAN::Optional<int> execute_builtin(BAN::Vector<BAN::String>& args, int fd_in, in
ERROR_RETURN("setenv", 1);
}
}
else if (args.front() == "source"sv)
else if (args.front() == "source"_sv)
{
if (args.size() != 2)
{
@@ -325,13 +325,13 @@ BAN::Optional<int> execute_builtin(BAN::Vector<BAN::String>& args, int fd_in, in
}
return source_script(args[1]);
}
else if (args.front() == "env"sv)
else if (args.front() == "env"_sv)
{
char** current = environ;
while (*current)
fprintf(fout, "%s\n", *current++);
}
else if (args.front() == "start-gui"sv)
else if (args.front() == "start-gui"_sv)
{
pid_t pid = fork();
if (pid == 0)
@@ -340,12 +340,12 @@ BAN::Optional<int> execute_builtin(BAN::Vector<BAN::String>& args, int fd_in, in
execl("/bin/Terminal", "Terminal", NULL);
waitpid(pid, nullptr, 0);
}
else if (args.front() == "page-fault-test"sv)
else if (args.front() == "page-fault-test"_sv)
{
volatile int* ptr = nullptr;
*ptr = 0;
}
else if (args.front() == "kill-test"sv)
else if (args.front() == "kill-test"_sv)
{
pid_t pid = fork();
if (pid == 0)
@@ -366,7 +366,7 @@ BAN::Optional<int> execute_builtin(BAN::Vector<BAN::String>& args, int fd_in, in
return 1;
}
}
else if (args.front() == "signal-test"sv)
else if (args.front() == "signal-test"_sv)
{
pid_t pid = fork();
if (pid == 0)
@@ -400,7 +400,7 @@ BAN::Optional<int> execute_builtin(BAN::Vector<BAN::String>& args, int fd_in, in
return 1;
}
}
else if (args.front() == "printf-test"sv)
else if (args.front() == "printf-test"_sv)
{
fprintf(fout, " 0.0: %f\n", 0.0f);
fprintf(fout, " 123.0: %f\n", 123.0f);
@@ -409,7 +409,7 @@ BAN::Optional<int> execute_builtin(BAN::Vector<BAN::String>& args, int fd_in, in
fprintf(fout, "+INF: %f\n", INFINITY);
fprintf(fout, "-INF: %f\n", -INFINITY);
}
else if (args.front() == "cd"sv)
else if (args.front() == "cd"_sv)
{
if (args.size() > 2)
{
@@ -432,7 +432,7 @@ BAN::Optional<int> execute_builtin(BAN::Vector<BAN::String>& args, int fd_in, in
if (chdir(path.data()) == -1)
ERROR_RETURN("chdir", 1);
}
else if (args.front() == "time"sv)
else if (args.front() == "time"_sv)
{
args.remove(0);
@@ -783,7 +783,7 @@ int source_shellrc()
if (char* home = getenv("HOME"))
{
BAN::String path(home);
MUST(path.append("/.shellrc"sv));
MUST(path.append("/.shellrc"_sv));
if (exists(path))
return source_script(path);
}
@@ -816,7 +816,7 @@ BAN::String get_prompt()
{
const char* raw_prompt = getenv("PS1");
if (raw_prompt == nullptr)
return "$ "sv;
return "$ "_sv;
BAN::String prompt;
for (int i = 0; raw_prompt[i]; i++)
@@ -962,7 +962,7 @@ int main(int argc, char** argv)
tcsetattr(0, TCSANOW, &new_termios);
BAN::Vector<BAN::String> buffers, history;
MUST(buffers.emplace_back(""sv));
MUST(buffers.emplace_back(""_sv));
size_t index = 0;
size_t col = 0;
@@ -1073,7 +1073,7 @@ int main(int argc, char** argv)
last_return = parse_and_execute_command(buffers[index]);
MUST(history.push_back(buffers[index]));
buffers = history;
MUST(buffers.emplace_back(""sv));
MUST(buffers.emplace_back(""_sv));
}
print_prompt();
index = buffers.size() - 1;

View File

@@ -87,11 +87,11 @@ void Terminal::run()
signal(SIGCHLD, [](int) { s_shell_exited = true; });
start_shell();
m_window = MUST(LibGUI::Window::create(600, 400, "Terminal"sv));
m_window = MUST(LibGUI::Window::create(600, 400, "Terminal"_sv));
m_window->fill(m_bg_color);
m_window->invalidate();
m_font = MUST(LibFont::Font::load("/usr/share/fonts/lat0-16.psfu"sv));
m_font = MUST(LibFont::Font::load("/usr/share/fonts/lat0-16.psfu"_sv));
m_window->set_key_event_callback([&](LibGUI::EventPacket::KeyEvent event) { on_key_event(event); });

View File

@@ -22,7 +22,7 @@ public:
WindowServer(Framebuffer& framebuffer)
: m_framebuffer(framebuffer)
, m_cursor({ framebuffer.width / 2, framebuffer.height / 2 })
, m_font(MUST(LibFont::Font::load("/usr/share/fonts/lat0-16.psfu"sv)))
, m_font(MUST(LibFont::Font::load("/usr/share/fonts/lat0-16.psfu"_sv)))
{
invalidate(m_framebuffer.area());
}

View File

@@ -80,7 +80,7 @@ Config parse_config()
auto variable = parts[0];
auto value = parts[1];
if (variable == "bg"sv)
if (variable == "bg"_sv)
{
auto image = LibImage::Image::load_from_file(value);
if (image.is_error())
@@ -156,7 +156,7 @@ int main()
atexit([]() { tty_ctrl(STDIN_FILENO, TTY_CMD_SET, TTY_FLAG_ENABLE_INPUT); });
MUST(LibInput::KeyboardLayout::initialize());
MUST(LibInput::KeyboardLayout::get().load_from_file("/usr/share/keymaps/us.keymap"sv));
MUST(LibInput::KeyboardLayout::get().load_from_file("/usr/share/keymaps/us.keymap"_sv));
int keyboard_fd = open("/dev/input0", O_RDONLY);
if (keyboard_fd == -1)

View File

@@ -168,9 +168,9 @@ bool is_accepted(const Item& item, const BAN::String& name, const Workflows& wor
{
if (!satifies_rule(item, rule))
continue;
if (rule.target == "A"sv)
if (rule.target == "A"_sv)
return true;
if (rule.target == "R"sv)
if (rule.target == "R"_sv)
return false;
return is_accepted(item, rule.target, workflows);
}
@@ -185,7 +185,7 @@ i64 puzzle1(FILE* fp)
BAN::Vector<Item> accepted;
for (const auto& item : items)
if (is_accepted(item, "in"sv, workflows))
if (is_accepted(item, "in"_sv, workflows))
MUST(accepted.push_back(item));
i64 result = 0;
@@ -243,7 +243,7 @@ i64 puzzle2(FILE* fp)
values_sorted[2][ai],
values_sorted[3][si]
}};
if (!is_accepted(item, "in"sv, workflows))
if (!is_accepted(item, "in"_sv, workflows))
continue;
i64 x_count = values_sorted[0][xi + 1] - values_sorted[0][xi];

View File

@@ -137,7 +137,7 @@ i64 puzzle1(FILE* fp)
for (size_t i = 0; i < 1000; i++)
{
MUST(signal_queue.push({ "broadcaster"sv, ""sv, false }));
MUST(signal_queue.push({ "broadcaster"_sv, ""_sv, false }));
while (!signal_queue.empty())
{
auto signal = signal_queue.front();

View File

@@ -45,8 +45,8 @@ i64 puzzle1(FILE* fp)
}
}
u32 current = coord_to_u32("AAA"sv);
u32 target = coord_to_u32("ZZZ"sv);
u32 current = coord_to_u32("AAA"_sv);
u32 target = coord_to_u32("ZZZ"_sv);
i64 steps = 0;
for (; current != target; steps++)

View File

@@ -44,7 +44,7 @@ typedef struct {
#define FD_ZERO(setp) \
do { \
for (int i = 0; i < FD_SETSIZE / __FD_MASK_SIZE; i++) \
for (int i = 0; i < (int)FD_SETSIZE / (int)__FD_MASK_SIZE; i++) \
(setp)->__bits[i] = (__fd_mask)0; \
} while (0)

View File

@@ -8,10 +8,10 @@ __BEGIN_DECLS
#define __need_pid_t
#include <sys/types.h>
#define makedev(maj, min) ((dev_t)(maj) << 32 | (dev_t)(min))
#define makedev(maj, min) ((dev_t)(maj) << 16 | (dev_t)(min))
#define major(dev) (((dev) >> 32) & 0xFFFFFFFF)
#define minor(dev) ( (dev) & 0xFFFFFFFF)
#define major(dev) (((dev) >> 16) & 0xFFFF)
#define minor(dev) ( (dev) & 0xFFFF)
__END_DECLS

View File

@@ -74,7 +74,7 @@ __BEGIN_DECLS
#if !defined(__dev_t_defined) && (defined(__need_all_types) || defined(__need_dev_t))
#define __dev_t_defined 1
typedef unsigned long dev_t;
typedef unsigned int dev_t;
#endif
#undef __need_dev_t

View File

@@ -15,7 +15,7 @@ namespace LibFont { class Font; }
namespace LibGUI
{
static constexpr BAN::StringView s_window_server_socket = "/tmp/window-server.socket"sv;
static constexpr BAN::StringView s_window_server_socket = "/tmp/window-server.socket"_sv;
enum WindowPacketType : uint8_t
{

View File

@@ -608,12 +608,12 @@ namespace LibImage
return BAN::Error::from_errno(EINVAL);
}
if (chunk.name == "IHDR"sv)
if (chunk.name == "IHDR"_sv)
{
dwarnln_if(DEBUG_PNG, "PNG stream has IDHR chunk defined multiple times");
return BAN::Error::from_errno(EINVAL);
}
else if (chunk.name == "PLTE"sv)
else if (chunk.name == "PLTE"_sv)
{
if (chunk.data.size() == 0 || chunk.data.size() % 3)
{
@@ -639,15 +639,15 @@ namespace LibImage
palette[i].a = 0xFF;
}
}
else if (chunk.name == "IDAT"sv)
else if (chunk.name == "IDAT"_sv)
{
TRY(zlib_stream.push_back(chunk.data));
}
else if (chunk.name == "IEND"sv)
else if (chunk.name == "IEND"_sv)
{
break;
}
else if (chunk.name == "tEXt"sv)
else if (chunk.name == "tEXt"_sv)
{
auto data_sv = BAN::StringView(chunk.data.as_span<const char>().data(), chunk.data.size());
if (auto idx = data_sv.find('\0'); !idx.has_value())

View File

@@ -63,9 +63,9 @@ namespace LibImage
return false;
if (height > static_cast<uint64_t>(BAN::numeric_limits<int64_t>::max()))
return false;
if (BAN::Math::will_multiplication_overflow(width, height))
if (BAN::Math::will_multiplication_overflow<uint64_t>(width, height))
return false;
if (BAN::Math::will_multiplication_overflow(width * height, sizeof(Color)))
if (BAN::Math::will_multiplication_overflow<uint64_t>(width * height, sizeof(Color)))
return false;
return true;
}

View File

@@ -162,7 +162,7 @@ namespace LibInput
if (parts.empty() || parts.front().front() == '#')
continue;
if (parts.front() == "include"sv)
if (parts.front() == "include"_sv)
{
if (parts.size() != 2)
{
@@ -228,7 +228,7 @@ namespace LibInput
return BAN::Error::from_errno(EINVAL);
}
if (parts.front() == "mod"sv)
if (parts.front() == "mod"_sv)
{
if (parts.size() != 2)
{
@@ -236,9 +236,9 @@ namespace LibInput
dprintln(" format: mod MODIFIER");
return BAN::Error::from_errno(EINVAL);
}
if (parts[1] == "shift"sv)
if (parts[1] == "shift"_sv)
shift_is_mod = true;
else if (parts[1] == "altgr"sv)
else if (parts[1] == "altgr"_sv)
altgr_is_mod = true;
else
{
@@ -282,9 +282,9 @@ namespace LibInput
return BAN::Error::from_errno(EINVAL);
}
if (shift_is_mod && pair.front() == "shift"sv)
if (shift_is_mod && pair.front() == "shift"_sv)
new_layout->m_keycode_to_key_shift[*keycode] = *key;
else if (altgr_is_mod && pair.front() == "altgr"sv)
else if (altgr_is_mod && pair.front() == "altgr"_sv)
new_layout->m_keycode_to_key_altgr[*keycode] = *key;
else
{
@@ -314,159 +314,159 @@ namespace LibInput
static BAN::ErrorOr<void> initialize_name_to_key()
{
ASSERT(s_name_to_key.empty());
TRY(s_name_to_key.insert("A_Ring"sv, Key::A_Ring));
TRY(s_name_to_key.insert("A_Umlaut"sv, Key::A_Umlaut));
TRY(s_name_to_key.insert("A"sv, Key::A));
TRY(s_name_to_key.insert("Acute"sv, Key::Acute));
TRY(s_name_to_key.insert("AltGr"sv, Key::AltGr));
TRY(s_name_to_key.insert("Ampersand"sv, Key::Ampersand));
TRY(s_name_to_key.insert("ArrowDown"sv, Key::ArrowDown));
TRY(s_name_to_key.insert("ArrowLeft"sv, Key::ArrowLeft));
TRY(s_name_to_key.insert("ArrowRight"sv, Key::ArrowRight));
TRY(s_name_to_key.insert("ArrowUp"sv, Key::ArrowUp));
TRY(s_name_to_key.insert("Asterix"sv, Key::Asterix));
TRY(s_name_to_key.insert("AtSign"sv, Key::AtSign));
TRY(s_name_to_key.insert("B"sv, Key::B));
TRY(s_name_to_key.insert("BackSlash"sv, Key::BackSlash));
TRY(s_name_to_key.insert("Backspace"sv, Key::Backspace));
TRY(s_name_to_key.insert("BackTick"sv, Key::BackTick));
TRY(s_name_to_key.insert("BrokenBar"sv, Key::BrokenBar));
TRY(s_name_to_key.insert("C"sv, Key::C));
TRY(s_name_to_key.insert("Calculator"sv, Key::Calculator));
TRY(s_name_to_key.insert("CapsLock"sv, Key::CapsLock));
TRY(s_name_to_key.insert("Caret"sv, Key::Caret));
TRY(s_name_to_key.insert("Cedilla"sv, Key::Cedilla));
TRY(s_name_to_key.insert("CloseCurlyBracket"sv, Key::CloseCurlyBracket));
TRY(s_name_to_key.insert("CloseParenthesis"sv, Key::CloseParenthesis));
TRY(s_name_to_key.insert("CloseSquareBracket"sv, Key::CloseSquareBracket));
TRY(s_name_to_key.insert("Colon"sv, Key::Colon));
TRY(s_name_to_key.insert("Comma"sv, Key::Comma));
TRY(s_name_to_key.insert("Currency"sv, Key::Currency));
TRY(s_name_to_key.insert("D"sv, Key::D));
TRY(s_name_to_key.insert("Delete"sv, Key::Delete));
TRY(s_name_to_key.insert("Dollar"sv, Key::Dollar));
TRY(s_name_to_key.insert("DoubleQuote"sv, Key::DoubleQuote));
TRY(s_name_to_key.insert("E"sv, Key::E));
TRY(s_name_to_key.insert("End"sv, Key::End));
TRY(s_name_to_key.insert("Enter"sv, Key::Enter));
TRY(s_name_to_key.insert("Equals"sv, Key::Equals));
TRY(s_name_to_key.insert("Escape"sv, Key::Escape));
TRY(s_name_to_key.insert("Euro"sv, Key::Euro));
TRY(s_name_to_key.insert("Exclamation"sv, Key::ExclamationMark));
TRY(s_name_to_key.insert("ExclamationMark"sv, Key::ExclamationMark));
TRY(s_name_to_key.insert("F"sv, Key::F));
TRY(s_name_to_key.insert("F1"sv, Key::F1));
TRY(s_name_to_key.insert("F10"sv, Key::F10));
TRY(s_name_to_key.insert("F11"sv, Key::F11));
TRY(s_name_to_key.insert("F12"sv, Key::F12));
TRY(s_name_to_key.insert("F2"sv, Key::F2));
TRY(s_name_to_key.insert("F3"sv, Key::F3));
TRY(s_name_to_key.insert("F4"sv, Key::F4));
TRY(s_name_to_key.insert("F5"sv, Key::F5));
TRY(s_name_to_key.insert("F6"sv, Key::F6));
TRY(s_name_to_key.insert("F7"sv, Key::F7));
TRY(s_name_to_key.insert("F8"sv, Key::F8));
TRY(s_name_to_key.insert("F9"sv, Key::F9));
TRY(s_name_to_key.insert("G"sv, Key::G));
TRY(s_name_to_key.insert("GreaterThan"sv, Key::GreaterThan));
TRY(s_name_to_key.insert("H"sv, Key::H));
TRY(s_name_to_key.insert("Half"sv, Key::Half));
TRY(s_name_to_key.insert("Hashtag"sv, Key::Hashtag));
TRY(s_name_to_key.insert("Home"sv, Key::Home));
TRY(s_name_to_key.insert("Hyphen"sv, Key::Hyphen));
TRY(s_name_to_key.insert("I"sv, Key::I));
TRY(s_name_to_key.insert("Insert"sv, Key::Insert));
TRY(s_name_to_key.insert("J"sv, Key::J));
TRY(s_name_to_key.insert("K"sv, Key::K));
TRY(s_name_to_key.insert("Key0"sv, Key::_0));
TRY(s_name_to_key.insert("Key1"sv, Key::_1));
TRY(s_name_to_key.insert("Key2"sv, Key::_2));
TRY(s_name_to_key.insert("Key3"sv, Key::_3));
TRY(s_name_to_key.insert("Key4"sv, Key::_4));
TRY(s_name_to_key.insert("Key5"sv, Key::_5));
TRY(s_name_to_key.insert("Key6"sv, Key::_6));
TRY(s_name_to_key.insert("Key7"sv, Key::_7));
TRY(s_name_to_key.insert("Key8"sv, Key::_8));
TRY(s_name_to_key.insert("Key9"sv, Key::_9));
TRY(s_name_to_key.insert("L"sv, Key::L));
TRY(s_name_to_key.insert("LAlt"sv, Key::LeftAlt));
TRY(s_name_to_key.insert("LControl"sv, Key::LeftCtrl));
TRY(s_name_to_key.insert("LeftAlt"sv, Key::LeftAlt));
TRY(s_name_to_key.insert("LeftControl"sv, Key::LeftCtrl));
TRY(s_name_to_key.insert("LeftShift"sv, Key::LeftShift));
TRY(s_name_to_key.insert("LessThan"sv, Key::LessThan));
TRY(s_name_to_key.insert("LShift"sv, Key::LeftShift));
TRY(s_name_to_key.insert("M"sv, Key::M));
TRY(s_name_to_key.insert("MediaNext"sv, Key::MediaNext));
TRY(s_name_to_key.insert("MediaPlayPause"sv, Key::MediaPlayPause));
TRY(s_name_to_key.insert("MediaPrevious"sv, Key::MediaPrevious));
TRY(s_name_to_key.insert("MediaStop"sv, Key::MediaStop));
TRY(s_name_to_key.insert("N"sv, Key::N));
TRY(s_name_to_key.insert("Negation"sv, Key::Negation));
TRY(s_name_to_key.insert("None"sv, Key::None));
TRY(s_name_to_key.insert("NumLock"sv, Key::NumLock));
TRY(s_name_to_key.insert("Numpad0"sv, Key::Numpad0));
TRY(s_name_to_key.insert("Numpad1"sv, Key::Numpad1));
TRY(s_name_to_key.insert("Numpad2"sv, Key::Numpad2));
TRY(s_name_to_key.insert("Numpad3"sv, Key::Numpad3));
TRY(s_name_to_key.insert("Numpad4"sv, Key::Numpad4));
TRY(s_name_to_key.insert("Numpad5"sv, Key::Numpad5));
TRY(s_name_to_key.insert("Numpad6"sv, Key::Numpad6));
TRY(s_name_to_key.insert("Numpad7"sv, Key::Numpad7));
TRY(s_name_to_key.insert("Numpad8"sv, Key::Numpad8));
TRY(s_name_to_key.insert("Numpad9"sv, Key::Numpad9));
TRY(s_name_to_key.insert("NumpadDecimal"sv, Key::NumpadDecimal));
TRY(s_name_to_key.insert("NumpadDivide"sv, Key::NumpadDivide));
TRY(s_name_to_key.insert("NumpadEnter"sv, Key::NumpadEnter));
TRY(s_name_to_key.insert("NumpadMinus"sv, Key::NumpadMinus));
TRY(s_name_to_key.insert("NumpadMultiply"sv, Key::NumpadMultiply));
TRY(s_name_to_key.insert("NumpadPlus"sv, Key::NumpadPlus));
TRY(s_name_to_key.insert("O_Umlaut"sv, Key::O_Umlaut));
TRY(s_name_to_key.insert("O"sv, Key::O));
TRY(s_name_to_key.insert("OpenCurlyBracket"sv, Key::OpenCurlyBracket));
TRY(s_name_to_key.insert("OpenParenthesis"sv, Key::OpenParenthesis));
TRY(s_name_to_key.insert("OpenSquareBracket"sv, Key::OpenSquareBracket));
TRY(s_name_to_key.insert("P"sv, Key::P));
TRY(s_name_to_key.insert("PageDown"sv, Key::PageDown));
TRY(s_name_to_key.insert("PageUp"sv, Key::PageUp));
TRY(s_name_to_key.insert("Percent"sv, Key::Percent));
TRY(s_name_to_key.insert("Period"sv, Key::Period));
TRY(s_name_to_key.insert("Pipe"sv, Key::Pipe));
TRY(s_name_to_key.insert("Plus"sv, Key::Plus));
TRY(s_name_to_key.insert("Pound"sv, Key::Pound));
TRY(s_name_to_key.insert("PrintScreen"sv, Key::PrintScreen));
TRY(s_name_to_key.insert("Q"sv, Key::Q));
TRY(s_name_to_key.insert("Question"sv, Key::QuestionMark));
TRY(s_name_to_key.insert("QuestionMark"sv, Key::QuestionMark));
TRY(s_name_to_key.insert("R"sv, Key::R));
TRY(s_name_to_key.insert("RAlt"sv, Key::RightAlt));
TRY(s_name_to_key.insert("RControl"sv, Key::RightCtrl));
TRY(s_name_to_key.insert("RightAlt"sv, Key::RightAlt));
TRY(s_name_to_key.insert("RightControl"sv, Key::RightCtrl));
TRY(s_name_to_key.insert("RightShift"sv, Key::RightShift));
TRY(s_name_to_key.insert("RShift"sv, Key::RightShift));
TRY(s_name_to_key.insert("S"sv, Key::S));
TRY(s_name_to_key.insert("ScrollLock"sv, Key::ScrollLock));
TRY(s_name_to_key.insert("Section"sv, Key::Section));
TRY(s_name_to_key.insert("Semicolon"sv, Key::Semicolon));
TRY(s_name_to_key.insert("SingleQuote"sv, Key::SingleQuote));
TRY(s_name_to_key.insert("Slash"sv, Key::Slash));
TRY(s_name_to_key.insert("Space"sv, Key::Space));
TRY(s_name_to_key.insert("Super"sv, Key::Super));
TRY(s_name_to_key.insert("T"sv, Key::T));
TRY(s_name_to_key.insert("Tab"sv, Key::Tab));
TRY(s_name_to_key.insert("Tilde"sv, Key::Tilde));
TRY(s_name_to_key.insert("TwoDots"sv, Key::TwoDots));
TRY(s_name_to_key.insert("U"sv, Key::U));
TRY(s_name_to_key.insert("Underscore"sv, Key::Underscore));
TRY(s_name_to_key.insert("V"sv, Key::V));
TRY(s_name_to_key.insert("VolumeDown"sv, Key::VolumeDown));
TRY(s_name_to_key.insert("VolumeMute"sv, Key::VolumeMute));
TRY(s_name_to_key.insert("VolumeUp"sv, Key::VolumeUp));
TRY(s_name_to_key.insert("W"sv, Key::W));
TRY(s_name_to_key.insert("X"sv, Key::X));
TRY(s_name_to_key.insert("Y"sv, Key::Y));
TRY(s_name_to_key.insert("Z"sv, Key::Z));
TRY(s_name_to_key.insert("A_Ring"_sv, Key::A_Ring));
TRY(s_name_to_key.insert("A_Umlaut"_sv, Key::A_Umlaut));
TRY(s_name_to_key.insert("A"_sv, Key::A));
TRY(s_name_to_key.insert("Acute"_sv, Key::Acute));
TRY(s_name_to_key.insert("AltGr"_sv, Key::AltGr));
TRY(s_name_to_key.insert("Ampersand"_sv, Key::Ampersand));
TRY(s_name_to_key.insert("ArrowDown"_sv, Key::ArrowDown));
TRY(s_name_to_key.insert("ArrowLeft"_sv, Key::ArrowLeft));
TRY(s_name_to_key.insert("ArrowRight"_sv, Key::ArrowRight));
TRY(s_name_to_key.insert("ArrowUp"_sv, Key::ArrowUp));
TRY(s_name_to_key.insert("Asterix"_sv, Key::Asterix));
TRY(s_name_to_key.insert("AtSign"_sv, Key::AtSign));
TRY(s_name_to_key.insert("B"_sv, Key::B));
TRY(s_name_to_key.insert("BackSlash"_sv, Key::BackSlash));
TRY(s_name_to_key.insert("Backspace"_sv, Key::Backspace));
TRY(s_name_to_key.insert("BackTick"_sv, Key::BackTick));
TRY(s_name_to_key.insert("BrokenBar"_sv, Key::BrokenBar));
TRY(s_name_to_key.insert("C"_sv, Key::C));
TRY(s_name_to_key.insert("Calculator"_sv, Key::Calculator));
TRY(s_name_to_key.insert("CapsLock"_sv, Key::CapsLock));
TRY(s_name_to_key.insert("Caret"_sv, Key::Caret));
TRY(s_name_to_key.insert("Cedilla"_sv, Key::Cedilla));
TRY(s_name_to_key.insert("CloseCurlyBracket"_sv, Key::CloseCurlyBracket));
TRY(s_name_to_key.insert("CloseParenthesis"_sv, Key::CloseParenthesis));
TRY(s_name_to_key.insert("CloseSquareBracket"_sv, Key::CloseSquareBracket));
TRY(s_name_to_key.insert("Colon"_sv, Key::Colon));
TRY(s_name_to_key.insert("Comma"_sv, Key::Comma));
TRY(s_name_to_key.insert("Currency"_sv, Key::Currency));
TRY(s_name_to_key.insert("D"_sv, Key::D));
TRY(s_name_to_key.insert("Delete"_sv, Key::Delete));
TRY(s_name_to_key.insert("Dollar"_sv, Key::Dollar));
TRY(s_name_to_key.insert("DoubleQuote"_sv, Key::DoubleQuote));
TRY(s_name_to_key.insert("E"_sv, Key::E));
TRY(s_name_to_key.insert("End"_sv, Key::End));
TRY(s_name_to_key.insert("Enter"_sv, Key::Enter));
TRY(s_name_to_key.insert("Equals"_sv, Key::Equals));
TRY(s_name_to_key.insert("Escape"_sv, Key::Escape));
TRY(s_name_to_key.insert("Euro"_sv, Key::Euro));
TRY(s_name_to_key.insert("Exclamation"_sv, Key::ExclamationMark));
TRY(s_name_to_key.insert("ExclamationMark"_sv, Key::ExclamationMark));
TRY(s_name_to_key.insert("F"_sv, Key::F));
TRY(s_name_to_key.insert("F1"_sv, Key::F1));
TRY(s_name_to_key.insert("F10"_sv, Key::F10));
TRY(s_name_to_key.insert("F11"_sv, Key::F11));
TRY(s_name_to_key.insert("F12"_sv, Key::F12));
TRY(s_name_to_key.insert("F2"_sv, Key::F2));
TRY(s_name_to_key.insert("F3"_sv, Key::F3));
TRY(s_name_to_key.insert("F4"_sv, Key::F4));
TRY(s_name_to_key.insert("F5"_sv, Key::F5));
TRY(s_name_to_key.insert("F6"_sv, Key::F6));
TRY(s_name_to_key.insert("F7"_sv, Key::F7));
TRY(s_name_to_key.insert("F8"_sv, Key::F8));
TRY(s_name_to_key.insert("F9"_sv, Key::F9));
TRY(s_name_to_key.insert("G"_sv, Key::G));
TRY(s_name_to_key.insert("GreaterThan"_sv, Key::GreaterThan));
TRY(s_name_to_key.insert("H"_sv, Key::H));
TRY(s_name_to_key.insert("Half"_sv, Key::Half));
TRY(s_name_to_key.insert("Hashtag"_sv, Key::Hashtag));
TRY(s_name_to_key.insert("Home"_sv, Key::Home));
TRY(s_name_to_key.insert("Hyphen"_sv, Key::Hyphen));
TRY(s_name_to_key.insert("I"_sv, Key::I));
TRY(s_name_to_key.insert("Insert"_sv, Key::Insert));
TRY(s_name_to_key.insert("J"_sv, Key::J));
TRY(s_name_to_key.insert("K"_sv, Key::K));
TRY(s_name_to_key.insert("Key0"_sv, Key::_0));
TRY(s_name_to_key.insert("Key1"_sv, Key::_1));
TRY(s_name_to_key.insert("Key2"_sv, Key::_2));
TRY(s_name_to_key.insert("Key3"_sv, Key::_3));
TRY(s_name_to_key.insert("Key4"_sv, Key::_4));
TRY(s_name_to_key.insert("Key5"_sv, Key::_5));
TRY(s_name_to_key.insert("Key6"_sv, Key::_6));
TRY(s_name_to_key.insert("Key7"_sv, Key::_7));
TRY(s_name_to_key.insert("Key8"_sv, Key::_8));
TRY(s_name_to_key.insert("Key9"_sv, Key::_9));
TRY(s_name_to_key.insert("L"_sv, Key::L));
TRY(s_name_to_key.insert("LAlt"_sv, Key::LeftAlt));
TRY(s_name_to_key.insert("LControl"_sv, Key::LeftCtrl));
TRY(s_name_to_key.insert("LeftAlt"_sv, Key::LeftAlt));
TRY(s_name_to_key.insert("LeftControl"_sv, Key::LeftCtrl));
TRY(s_name_to_key.insert("LeftShift"_sv, Key::LeftShift));
TRY(s_name_to_key.insert("LessThan"_sv, Key::LessThan));
TRY(s_name_to_key.insert("LShift"_sv, Key::LeftShift));
TRY(s_name_to_key.insert("M"_sv, Key::M));
TRY(s_name_to_key.insert("MediaNext"_sv, Key::MediaNext));
TRY(s_name_to_key.insert("MediaPlayPause"_sv, Key::MediaPlayPause));
TRY(s_name_to_key.insert("MediaPrevious"_sv, Key::MediaPrevious));
TRY(s_name_to_key.insert("MediaStop"_sv, Key::MediaStop));
TRY(s_name_to_key.insert("N"_sv, Key::N));
TRY(s_name_to_key.insert("Negation"_sv, Key::Negation));
TRY(s_name_to_key.insert("None"_sv, Key::None));
TRY(s_name_to_key.insert("NumLock"_sv, Key::NumLock));
TRY(s_name_to_key.insert("Numpad0"_sv, Key::Numpad0));
TRY(s_name_to_key.insert("Numpad1"_sv, Key::Numpad1));
TRY(s_name_to_key.insert("Numpad2"_sv, Key::Numpad2));
TRY(s_name_to_key.insert("Numpad3"_sv, Key::Numpad3));
TRY(s_name_to_key.insert("Numpad4"_sv, Key::Numpad4));
TRY(s_name_to_key.insert("Numpad5"_sv, Key::Numpad5));
TRY(s_name_to_key.insert("Numpad6"_sv, Key::Numpad6));
TRY(s_name_to_key.insert("Numpad7"_sv, Key::Numpad7));
TRY(s_name_to_key.insert("Numpad8"_sv, Key::Numpad8));
TRY(s_name_to_key.insert("Numpad9"_sv, Key::Numpad9));
TRY(s_name_to_key.insert("NumpadDecimal"_sv, Key::NumpadDecimal));
TRY(s_name_to_key.insert("NumpadDivide"_sv, Key::NumpadDivide));
TRY(s_name_to_key.insert("NumpadEnter"_sv, Key::NumpadEnter));
TRY(s_name_to_key.insert("NumpadMinus"_sv, Key::NumpadMinus));
TRY(s_name_to_key.insert("NumpadMultiply"_sv, Key::NumpadMultiply));
TRY(s_name_to_key.insert("NumpadPlus"_sv, Key::NumpadPlus));
TRY(s_name_to_key.insert("O_Umlaut"_sv, Key::O_Umlaut));
TRY(s_name_to_key.insert("O"_sv, Key::O));
TRY(s_name_to_key.insert("OpenCurlyBracket"_sv, Key::OpenCurlyBracket));
TRY(s_name_to_key.insert("OpenParenthesis"_sv, Key::OpenParenthesis));
TRY(s_name_to_key.insert("OpenSquareBracket"_sv, Key::OpenSquareBracket));
TRY(s_name_to_key.insert("P"_sv, Key::P));
TRY(s_name_to_key.insert("PageDown"_sv, Key::PageDown));
TRY(s_name_to_key.insert("PageUp"_sv, Key::PageUp));
TRY(s_name_to_key.insert("Percent"_sv, Key::Percent));
TRY(s_name_to_key.insert("Period"_sv, Key::Period));
TRY(s_name_to_key.insert("Pipe"_sv, Key::Pipe));
TRY(s_name_to_key.insert("Plus"_sv, Key::Plus));
TRY(s_name_to_key.insert("Pound"_sv, Key::Pound));
TRY(s_name_to_key.insert("PrintScreen"_sv, Key::PrintScreen));
TRY(s_name_to_key.insert("Q"_sv, Key::Q));
TRY(s_name_to_key.insert("Question"_sv, Key::QuestionMark));
TRY(s_name_to_key.insert("QuestionMark"_sv, Key::QuestionMark));
TRY(s_name_to_key.insert("R"_sv, Key::R));
TRY(s_name_to_key.insert("RAlt"_sv, Key::RightAlt));
TRY(s_name_to_key.insert("RControl"_sv, Key::RightCtrl));
TRY(s_name_to_key.insert("RightAlt"_sv, Key::RightAlt));
TRY(s_name_to_key.insert("RightControl"_sv, Key::RightCtrl));
TRY(s_name_to_key.insert("RightShift"_sv, Key::RightShift));
TRY(s_name_to_key.insert("RShift"_sv, Key::RightShift));
TRY(s_name_to_key.insert("S"_sv, Key::S));
TRY(s_name_to_key.insert("ScrollLock"_sv, Key::ScrollLock));
TRY(s_name_to_key.insert("Section"_sv, Key::Section));
TRY(s_name_to_key.insert("Semicolon"_sv, Key::Semicolon));
TRY(s_name_to_key.insert("SingleQuote"_sv, Key::SingleQuote));
TRY(s_name_to_key.insert("Slash"_sv, Key::Slash));
TRY(s_name_to_key.insert("Space"_sv, Key::Space));
TRY(s_name_to_key.insert("Super"_sv, Key::Super));
TRY(s_name_to_key.insert("T"_sv, Key::T));
TRY(s_name_to_key.insert("Tab"_sv, Key::Tab));
TRY(s_name_to_key.insert("Tilde"_sv, Key::Tilde));
TRY(s_name_to_key.insert("TwoDots"_sv, Key::TwoDots));
TRY(s_name_to_key.insert("U"_sv, Key::U));
TRY(s_name_to_key.insert("Underscore"_sv, Key::Underscore));
TRY(s_name_to_key.insert("V"_sv, Key::V));
TRY(s_name_to_key.insert("VolumeDown"_sv, Key::VolumeDown));
TRY(s_name_to_key.insert("VolumeMute"_sv, Key::VolumeMute));
TRY(s_name_to_key.insert("VolumeUp"_sv, Key::VolumeUp));
TRY(s_name_to_key.insert("W"_sv, Key::W));
TRY(s_name_to_key.insert("X"_sv, Key::X));
TRY(s_name_to_key.insert("Y"_sv, Key::Y));
TRY(s_name_to_key.insert("Z"_sv, Key::Z));
return {};
}
#pragma GCC diagnostic pop

View File

@@ -11,7 +11,7 @@ namespace LibInput
bits 7:5 row (from top)
*/
#define BANAN_CONSTEVAL_STATIC_ASSERT(cond) do { int dummy = 1 / (cond); } while (false)
#define BANAN_CONSTEVAL_STATIC_ASSERT(cond) do { int dummy = 1 / (cond); (void)dummy; } while (false)
consteval uint8_t keycode_function(uint8_t index)
{

View File

@@ -297,7 +297,7 @@ int main(int argc, const char* argv[])
BAN::Vector<BAN::String> files;
if (i == argc)
MUST(files.emplace_back("."sv));
MUST(files.emplace_back("."_sv));
else for (; i < argc; i++)
MUST(files.emplace_back(BAN::StringView(argv[i])));

View File

@@ -212,6 +212,9 @@ int main(int, char**)
struct Client
{
Client(int socket)
: socket(socket)
{ }
const int socket;
bool close { false };
uint16_t query_id { 0 };

View File

@@ -66,7 +66,7 @@ int main(int argc, char** argv)
printf(" File: %s\n", argv[i]);
printf(" Size: %-15ld Blocks: %-10ld IO Block: %-6ld %s\n", st.st_size, st.st_blocks, st.st_blksize, type);
printf("Device: %lu,%-5lu Inode: %-11llu Links: %-5lu Device type: %lu,%lu\n", major(st.st_dev), minor(st.st_dev), st.st_ino, st.st_nlink, major(st.st_rdev), minor(st.st_rdev));
printf("Device: %u,%-5u Inode: %-11llu Links: %-5lu Device type: %u,%u\n", major(st.st_dev), minor(st.st_dev), st.st_ino, st.st_nlink, major(st.st_rdev), minor(st.st_rdev));
printf("Access: (%04o/%s) Uid: %5d Gid: %5d\n", st.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX), access, st.st_uid, st.st_gid);
printf("Access: "); print_timestamp(st.st_atim); printf("\n");
printf("Modify: "); print_timestamp(st.st_mtim); printf("\n");