From df4b4dbd9ccd010fae2f27494084a83cc20bdca7 Mon Sep 17 00:00:00 2001
From: altalk23 <student@altalk23.local>
Date: Sat, 8 Oct 2022 13:59:51 +0300
Subject: [PATCH] fix log not logging anything

---
 loader/launcher/mac/Bootstrapper.cpp   | 2 +-
 loader/src/internal/InternalLoader.cpp | 3 ++-
 loader/src/load/Loader.cpp             | 4 ++--
 loader/src/load/Log.cpp                | 2 +-
 4 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/loader/launcher/mac/Bootstrapper.cpp b/loader/launcher/mac/Bootstrapper.cpp
index d5043414..48057e06 100644
--- a/loader/launcher/mac/Bootstrapper.cpp
+++ b/loader/launcher/mac/Bootstrapper.cpp
@@ -40,7 +40,7 @@ __attribute__((constructor)) void _entry() {
 	if (ghc::filesystem::exists(updatesDir / "Geode.dylib", error) && !error) {
         ghc::filesystem::rename(
             updatesDir / "Geode.dylib", 
-            workingDir / "Geode.dylib", error
+            libDir / "Geode.dylib", error
         );
         if (error) {
             displayError(std::string("Couldn't update Geode: ") + error.message());
diff --git a/loader/src/internal/InternalLoader.cpp b/loader/src/internal/InternalLoader.cpp
index f8692cd7..cb23a943 100644
--- a/loader/src/internal/InternalLoader.cpp
+++ b/loader/src/internal/InternalLoader.cpp
@@ -57,7 +57,8 @@ void InternalLoader::executeGDThreadQueue() {
 
 void InternalLoader::logConsoleMessage(std::string const& msg) {
     if (m_platformConsoleOpen) {
-        std::cout << msg;
+        // TODO: make flushing optional
+        std::cout << msg << '\n' << std::flush;
     }
 }
 
diff --git a/loader/src/load/Loader.cpp b/loader/src/load/Loader.cpp
index 65282e11..462bbe46 100644
--- a/loader/src/load/Loader.cpp
+++ b/loader/src/load/Loader.cpp
@@ -371,12 +371,12 @@ Loader::~Loader() {
 }
 
 void Loader::pushLog(log::Log&& log) {
-    m_logs.push_back(std::move(log));
-
     std::string logStr = log.toString(true);
 
     InternalLoader::get()->logConsoleMessage(logStr);
     m_logStream << logStr << std::endl;
+
+    m_logs.push_back(std::move(log));
 }
 
 void Loader::popLog(log::Log* log) {
diff --git a/loader/src/load/Log.cpp b/loader/src/load/Log.cpp
index 28aee6e9..32c76247 100644
--- a/loader/src/load/Log.cpp
+++ b/loader/src/load/Log.cpp
@@ -83,7 +83,7 @@ std::string Log::toString(bool logTime) const {
         res += fmt::format("{:%H:%M:%S}", this->m_time);
     }
 
-    res += fmt::format("[{}]:", this->m_sender ? this->m_sender->getName() : "?");
+    res += fmt::format(" [{}]: ", this->m_sender ? this->m_sender->getName() : "?");
 
     for (ComponentTrait* i : this->m_components) {
         res += i->_toString();