logging fix

This commit is contained in:
Madthijs
2021-05-04 18:11:03 +02:00
parent 2277d1340c
commit b96acad0ca
4 changed files with 13 additions and 20 deletions

View File

@@ -50,6 +50,12 @@
ReferencedContainer = "container:AerofoilMac.xcodeproj"> ReferencedContainer = "container:AerofoilMac.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
<CommandLineArguments>
<CommandLineArgument
argument = "-diagnostics"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
</LaunchAction> </LaunchAction>
<ProfileAction <ProfileAction
buildConfiguration = "Release" buildConfiguration = "Release"

View File

@@ -235,8 +235,6 @@ void GpFileSystem_X::Init()
int created = mkdir(prefsPath.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); int created = mkdir(prefsPath.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
} }
SDL_free(prefsDir); SDL_free(prefsDir);
printf("Base path %s \n", m_basePath.c_str());
} }
bool GpFileSystem_X::FileExists(PortabilityLayer::VirtualDirectory_t virtualDirectory, const char *path) bool GpFileSystem_X::FileExists(PortabilityLayer::VirtualDirectory_t virtualDirectory, const char *path)

View File

@@ -64,6 +64,10 @@ void GpLogDriver_X::VPrintf(Category category, const char *fmt, va_list args)
} }
else else
{ {
//a copy is needed if using va_list multiple times (otherwise unexpected output)
va_list args_copy;
va_copy(args_copy, args);
int formattedSize = vsnprintf(nullptr, 0, fmt, args); int formattedSize = vsnprintf(nullptr, 0, fmt, args);
if (formattedSize <= 0) if (formattedSize <= 0)
return; return;
@@ -72,7 +76,8 @@ void GpLogDriver_X::VPrintf(Category category, const char *fmt, va_list args)
if (!charBuff) if (!charBuff)
return; return;
vsnprintf(charBuff, formattedSize + 1, fmt, args); vsnprintf(charBuff, formattedSize + 1, fmt, args_copy);
va_end(args_copy);
if (m_stream) if (m_stream)
m_stream->Write(charBuff, formattedSize); m_stream->Write(charBuff, formattedSize);

View File

@@ -15,24 +15,9 @@ struct IGpLogDriver
virtual void VPrintf(Category category, const char *fmt, va_list args) = 0; virtual void VPrintf(Category category, const char *fmt, va_list args) = 0;
virtual void Shutdown() = 0; virtual void Shutdown() = 0;
#ifdef __MACOS__
template <typename C, typename F, typename... T>
void Printf(C category, F *fmt, T... t);
#else
void Printf(Category category, const char *fmt, ...); void Printf(Category category, const char *fmt, ...);
#endif
}; };
//this is temp, but args lose their types for some reason, garbling output
#ifdef __MACOS__
template <typename C, typename F, typename... T>
inline void IGpLogDriver::Printf(C category, F *fmt, T... t)
{
printf(fmt, t...);
printf("\n");
}
#else
inline void IGpLogDriver::Printf(Category category, const char *fmt, ...) inline void IGpLogDriver::Printf(Category category, const char *fmt, ...)
{ {
va_list args; va_list args;
@@ -40,4 +25,3 @@ inline void IGpLogDriver::Printf(Category category, const char *fmt, ...)
this->VPrintf(category, fmt, args); this->VPrintf(category, fmt, args);
va_end(args); va_end(args);
} }
#endif