From 7c1aeafab7b1ae1fe4f57a6e4f17ae4d3b9427de Mon Sep 17 00:00:00 2001 From: "jazz (gitea)" Date: Thu, 19 Mar 2026 22:48:33 -0500 Subject: [PATCH] fix bug where starting without an existing log breaks everything --- log.cc | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/log.cc b/log.cc index 74071e1..5e02198 100644 --- a/log.cc +++ b/log.cc @@ -1,9 +1,10 @@ -#include +#include +#include #include -#include "public.h" #include "log.h" +#include "public.h" // gets the number of lines in a file. returns -1 if there was an error. int @@ -29,21 +30,24 @@ int writeToFile(string path, string line, bool incLineNum) { ofstream file; + struct stat s; /* - * Hopefully this fixes the program messing up where the server/client - * doesn't start if the file wasn't created by a previous session. + * It APPEARS this fixes our problem where the program has to be run twice to work correctly. */ - file.open(path, ios_base::out|ios_base::app); + if (stat(path.c_str(), &s) != 0) { + file.open(path, ios_base::out); + file << "SYSTEM: No log file found. Created a new one." << endl; + file.close(); + linePos += 5; /* This seems to be what actually fixes everything. Not sure. */ + } + + file.open(path, ios_base::app); if (file.is_open()) { file << line << endl; file.close(); - // this probably would help but theres too much broken stuff - // right now to be sure if (incLineNum) - //{ - // linePos++; - // } + //linePos++ // We might also want this here at some point? return 0; } else { // do something if it didn't work