From 4b99d6a3f14f59f3de17869ffe84a9574d0f1b5c Mon Sep 17 00:00:00 2001 From: David Rose Date: Sat, 26 Sep 2009 02:20:26 +0000 Subject: [PATCH] fix logfile issue --- direct/src/plugin_npapi/nppanda3d_common.h | 2 ++ direct/src/plugin_npapi/ppInstance.cxx | 2 +- direct/src/plugin_npapi/startup.cxx | 13 ++++++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/direct/src/plugin_npapi/nppanda3d_common.h b/direct/src/plugin_npapi/nppanda3d_common.h index 063c9bcd6a..58d4390bd7 100644 --- a/direct/src/plugin_npapi/nppanda3d_common.h +++ b/direct/src/plugin_npapi/nppanda3d_common.h @@ -37,6 +37,8 @@ using namespace std; extern ostream *nout_stream; #define nout (*nout_stream) +extern string global_root_dir; + #ifdef _WIN32 // Gecko requires all these symbols to be defined for Windows. diff --git a/direct/src/plugin_npapi/ppInstance.cxx b/direct/src/plugin_npapi/ppInstance.cxx index 5b422ace0e..c82efd1837 100644 --- a/direct/src/plugin_npapi/ppInstance.cxx +++ b/direct/src/plugin_npapi/ppInstance.cxx @@ -61,7 +61,7 @@ PPInstance(NPMIMEType pluginType, NPP instance, uint16 mode, _tokens.push_back(token); } - _root_dir = find_root_dir(nout); + _root_dir = global_root_dir; _got_instance_url = false; _got_window = false; diff --git a/direct/src/plugin_npapi/startup.cxx b/direct/src/plugin_npapi/startup.cxx index 07d5829729..941ac22efd 100644 --- a/direct/src/plugin_npapi/startup.cxx +++ b/direct/src/plugin_npapi/startup.cxx @@ -24,6 +24,8 @@ static ofstream logfile; ostream *nout_stream = &logfile; +string global_root_dir; + NPNetscapeFuncs *browser; static bool logfile_is_open = false; @@ -46,7 +48,7 @@ open_logfile() { #endif if (log_directory.empty()) { #ifdef _WIN32 - static const size_t buffer_size = 4096; + static const size_t buffer_size = MAX_PATH; char buffer[buffer_size]; if (GetTempPath(buffer_size, buffer) != 0) { log_directory = buffer; @@ -56,6 +58,14 @@ open_logfile() { #endif // _WIN32 } + // Ensure that the log directory ends with a slash. + if (!log_directory.empty() && log_directory[log_directory.size() - 1] != '/') { +#ifdef _WIN32 + if (log_directory[log_directory.size() - 1] != '\\') +#endif + log_directory += "/"; + } + // Construct the full logfile pathname. string log_pathname = log_directory; log_pathname += log_basename; @@ -138,6 +148,7 @@ NP_Initialize(NPNetscapeFuncs *browserFuncs, open_logfile(); nout << "initializing\n"; + global_root_dir = find_root_dir(nout); nout << "browserFuncs = " << browserFuncs << "\n";