From 9531abcb1a6f55157ec31c81cec762807fd14cb4 Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Sat, 3 Jun 2023 18:44:39 +0200 Subject: Shell: Add a "." builtin that aliases to "source" in POSIX This patch adds an alias to the source builtin when an user types ".". We cannot just add an enumeration entry using __ENUMERATE_SHELL_BUILTIN because "." is not a valid name in a function. This patch adds handling similarly to the name rewriting of ":". This alias is limited to POSIX mode only. --- Userland/Shell/Builtin.cpp | 4 +++- Userland/Shell/Shell.h | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Userland/Shell/Builtin.cpp b/Userland/Shell/Builtin.cpp index 3d9a54cd3c..2238de8b3c 100644 --- a/Userland/Shell/Builtin.cpp +++ b/Userland/Shell/Builtin.cpp @@ -1328,6 +1328,8 @@ ErrorOr Shell::run_builtin(const AST::Command& command, Vector Shell::builtin_run_with_env(Main::Arguments arguments) bool Shell::has_builtin(StringView name) const { - if (name == ":"sv) + if (name == ":"sv || (m_in_posix_mode && name == "."sv)) return true; #define __ENUMERATE_SHELL_BUILTIN(builtin, mode) \ diff --git a/Userland/Shell/Shell.h b/Userland/Shell/Shell.h index a34a84f968..b425333183 100644 --- a/Userland/Shell/Shell.h +++ b/Userland/Shell/Shell.h @@ -462,7 +462,11 @@ private: #undef __ENUMERATE_SHELL_BUILTIN + "."sv, // Needs to be aliased to "source" in POSIX mode. + // clang-format off + // Clang-format does not properly indent this, it gives it 4 spaces too few. ":"sv, // POSIX-y name for "noop". + // clang-format on }; bool m_should_ignore_jobs_on_next_exit { false }; -- cgit v1.2.3