38 #include <sys/types.h> 
   59 TGRedirectOutputGuard::TGRedirectOutputGuard(TGTextView *tv,
 
   69       fLogFile = 
"RedirOutputGuard_";
 
   70       fLogFileRead = gSystem->TempFileName(fLogFile);
 
   72          Error(
"TGRedirectOutputGuard", 
"could create temp file");
 
   81       if (!gSystem->AccessPathName(flog, kFileExists)) {
 
   82          if (gSystem->AccessPathName(flog,
 
   83                (EAccessMode)(kWritePermission | kReadPermission))) {
 
   84             Error(
"TGRedirectOutputGuard",
 
   85                   "no write or read permission on file: %s", flog);
 
   92    const char *m = (mode[0] != 
'a' && mode[0] != 
'w') ? 
"a" : mode;
 
   93    if (gSystem->RedirectOutput(fLogFile.Data(), m) == -1) {
 
   94       Error(
"TGRedirectOutputGuard",
"could not redirect output");
 
   99    if ((fLogFileRead = fopen(fLogFile.Data(),
"r"))) {
 
  101       lseek(fileno(fLogFileRead),(off_t)0, SEEK_END);
 
  103       Error(
"TGRedirectOutputGuard",
"could not open file in read mode");
 
  113 TGRedirectOutputGuard::~TGRedirectOutputGuard()
 
  120       fclose(fLogFileRead);
 
  123    if (fTmpFile && fLogFile.Length() > 0)
 
  124       gSystem->Unlink(fLogFile);
 
  127    gSystem->RedirectOutput(0);
 
  133 void TGRedirectOutputGuard::Update()
 
  136       Warning(
"Update",
"no TGTextView defined");
 
  141       Warning(
"Update",
"no file open for reading");
 
  149    while (fgets(line,
sizeof(line),fLogFileRead)) {
 
  152       if (line[strlen(line)-1] == 
'\n')
 
  153          line[strlen(line)-1] = 0;
 
  156       fTextView->AddLine(line);