Part deux of the fix for #8491. Had to add the ability to externally re-init NSPR's log feature as we were reading the environemnt vars on the Mac after the initial init. Reviewed saari.

This commit is contained in:
sdagley%netscape.com 1999-07-09 04:03:51 +00:00
Родитель 5b0fb2b57b
Коммит 7a6c773df8
4 изменённых файлов: 33 добавлений и 4 удалений

Просмотреть файл

@ -170,6 +170,12 @@ PR_EXTERN(void) PR_LogPrint(const char *fmt, ...);
*/ */
PR_EXTERN(void) PR_LogFlush(void); PR_EXTERN(void) PR_LogFlush(void);
/* Need external access to this on Mac so we can first set up our faux environment vars */
#ifdef XP_MAC
PR_EXTERN(void) PR_Init_Log(void);
#endif
/* /*
** Windoze 16 can't support a large static string space for all of the ** Windoze 16 can't support a large static string space for all of the
** various debugging strings so logging is not enabled for it. ** various debugging strings so logging is not enabled for it.

Просмотреть файл

@ -481,3 +481,12 @@ PR_IMPLEMENT(void) PR_Assert(const char *s, const char *file, PRIntn ln)
#endif #endif
#endif /* PR_LOGGING */ #endif /* PR_LOGGING */
} }
#ifdef XP_MAC
PR_IMPLEMENT(void) PR_Init_Log(void)
{
#ifdef PR_LOGGING
_PR_InitLog();
#endif
}
#endif

Просмотреть файл

@ -45,6 +45,7 @@ static NS_DEFINE_CID(kIOServiceCID, NS_IOSERVICE_CID);
#include "prmem.h" #include "prmem.h"
#include "plstr.h" #include "plstr.h"
#include "prenv.h" #include "prenv.h"
#include "prlog.h"
// Universal // Universal
#include <AppleEvents.h> #include <AppleEvents.h>
@ -512,6 +513,7 @@ OSErr nsAppleEventHandler::HandleOpen1Doc(const FSSpec& inFileSpec, OSType inFil
if (s.is_open()) if (s.is_open())
{ {
Boolean foundArgs = false; Boolean foundArgs = false;
Boolean foundEnv = false;
char chars[1024]; char chars[1024];
const char* kCommandLinePrefix = "ARGS:"; const char* kCommandLinePrefix = "ARGS:";
const char* kEnvVarLinePrefix = "ENV:"; const char* kEnvVarLinePrefix = "ENV:";
@ -527,7 +529,7 @@ OSErr nsAppleEventHandler::HandleOpen1Doc(const FSSpec& inFileSpec, OSType inFil
else if (PL_strstr(chars, kEnvVarLinePrefix) == chars) else if (PL_strstr(chars, kEnvVarLinePrefix) == chars)
{ {
(void)AddToEnvironmentVars(chars + PL_strlen(kEnvVarLinePrefix)); (void)AddToEnvironmentVars(chars + PL_strlen(kEnvVarLinePrefix));
foundArgs = true; foundEnv = true;
} }
// Clear the buffer and get the next line from the command line file // Clear the buffer and get the next line from the command line file
@ -535,9 +537,14 @@ OSErr nsAppleEventHandler::HandleOpen1Doc(const FSSpec& inFileSpec, OSType inFil
s.readline(chars, sizeof(chars)); s.readline(chars, sizeof(chars));
} while (PL_strlen(chars)); } while (PL_strlen(chars));
// If we found any environment vars we need to re-init NSPR's logging
// so that it knows what the new vars are
if (foundEnv)
PR_Init_Log();
// If we found a command line or environment vars we want to return now // If we found a command line or environment vars we want to return now
// raather than trying to open the file as a URL // raather than trying to open the file as a URL
if (foundArgs) if (foundArgs || foundEnv)
return noErr; return noErr;
} }
} }

Просмотреть файл

@ -45,6 +45,7 @@ static NS_DEFINE_CID(kIOServiceCID, NS_IOSERVICE_CID);
#include "prmem.h" #include "prmem.h"
#include "plstr.h" #include "plstr.h"
#include "prenv.h" #include "prenv.h"
#include "prlog.h"
// Universal // Universal
#include <AppleEvents.h> #include <AppleEvents.h>
@ -512,6 +513,7 @@ OSErr nsAppleEventHandler::HandleOpen1Doc(const FSSpec& inFileSpec, OSType inFil
if (s.is_open()) if (s.is_open())
{ {
Boolean foundArgs = false; Boolean foundArgs = false;
Boolean foundEnv = false;
char chars[1024]; char chars[1024];
const char* kCommandLinePrefix = "ARGS:"; const char* kCommandLinePrefix = "ARGS:";
const char* kEnvVarLinePrefix = "ENV:"; const char* kEnvVarLinePrefix = "ENV:";
@ -527,7 +529,7 @@ OSErr nsAppleEventHandler::HandleOpen1Doc(const FSSpec& inFileSpec, OSType inFil
else if (PL_strstr(chars, kEnvVarLinePrefix) == chars) else if (PL_strstr(chars, kEnvVarLinePrefix) == chars)
{ {
(void)AddToEnvironmentVars(chars + PL_strlen(kEnvVarLinePrefix)); (void)AddToEnvironmentVars(chars + PL_strlen(kEnvVarLinePrefix));
foundArgs = true; foundEnv = true;
} }
// Clear the buffer and get the next line from the command line file // Clear the buffer and get the next line from the command line file
@ -535,9 +537,14 @@ OSErr nsAppleEventHandler::HandleOpen1Doc(const FSSpec& inFileSpec, OSType inFil
s.readline(chars, sizeof(chars)); s.readline(chars, sizeof(chars));
} while (PL_strlen(chars)); } while (PL_strlen(chars));
// If we found any environment vars we need to re-init NSPR's logging
// so that it knows what the new vars are
if (foundEnv)
PR_Init_Log();
// If we found a command line or environment vars we want to return now // If we found a command line or environment vars we want to return now
// raather than trying to open the file as a URL // raather than trying to open the file as a URL
if (foundArgs) if (foundArgs || foundEnv)
return noErr; return noErr;
} }
} }