From 810b0a5fd2ae7c2e780b688629a4da38617031f2 Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Mon, 24 Mar 2025 03:15:52 +0800 Subject: [PATCH] Avoid conflict with macOS headers over DirInfo --- lobster/src/compiler.cpp | 2 +- lobster/src/file.cpp | 2 +- lobster/src/lobster/platform.h | 7 ++++--- lobster/src/platform.cpp | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git lobster/src/compiler.cpp lobster/src/compiler.cpp index 74d8bbb..dd87baa 100644 --- lobster/src/compiler.cpp +++ lobster/src/compiler.cpp @@ -166,7 +166,7 @@ string BuildPakFile(string &pakfile, string &bytecode, set &files, uint6 pat = filename.substr(pos + 1); base = filename.substr(0, pos); } - vector dir; + vector dir; if (!ScanDir(base, dir)) return "cannot load file/dir for pakfile: " + filename; for (auto &entry : dir) { if (!pat.empty() && entry.name.find(pat) == entry.name.npos) continue; diff --git lobster/src/file.cpp lobster/src/file.cpp index 462cf96..ea86b9e 100644 --- lobster/src/file.cpp +++ lobster/src/file.cpp @@ -169,7 +169,7 @@ nfr("scan_folder", "folder,rel", "SB?", "S]?I]?I]?", " set rel use a relative path, default is absolute." " Returns nil if folder couldn't be scanned.", [](StackPtr &sp, VM &vm, Value &fld, Value &rel) { - vector dir; + vector dir; auto ok = rel.True() ? ScanDir(fld.sval()->strv(), dir) : ScanDirAbs(fld.sval()->strv(), dir); diff --git lobster/src/lobster/platform.h lobster/src/lobster/platform.h index 00bc9e7..ccd6eb1 100644 --- lobster/src/lobster/platform.h +++ lobster/src/lobster/platform.h @@ -54,14 +54,15 @@ extern string SanitizePath(string_view path); extern void AddPakFileEntry(string_view pakfilename, string_view relfilename, int64_t off, int64_t len, int64_t uncompressed); -struct DirInfo { +// Avoid a conflict with macOS headers which define DirInfo differently. +struct DirectoryInfo { string name; int64_t size = 0; filesystem::file_time_type last_write_time; }; -extern bool ScanDir(string_view reldir, vector &dest); -extern bool ScanDirAbs(string_view absdir, vector &dest); +extern bool ScanDir(string_view reldir, vector &dest); +extern bool ScanDirAbs(string_view absdir, vector &dest); extern iint LaunchSubProcess(const char **cmdl, const char *stdins, string &out); diff --git lobster/src/platform.cpp lobster/src/platform.cpp index d1de6ab..11e4cd0 100644 --- lobster/src/platform.cpp +++ lobster/src/platform.cpp @@ -429,7 +429,7 @@ bool FileDelete(string_view relfilename) { return false; } -bool ScanDirAbs(string_view absdir, vector &dest) { +bool ScanDirAbs(string_view absdir, vector &dest) { using namespace filesystem; string folder = SanitizePath(absdir); #if !defined(PLATFORM_ES3) @@ -451,7 +451,7 @@ bool ScanDirAbs(string_view absdir, vector &dest) { return false; } -bool ScanDir(string_view reldir, vector &dest) { +bool ScanDir(string_view reldir, vector &dest) { // First check the pakfile. for (auto [prfn, tup] : pakfile_registry) { if (prfn.find(reldir) == 0) {