void ChatLog::CheckDateSwitch() { if (ChatLogDateSplit) { time_t t = time(NULL); tm* aTm = localtime(&t); if (lastday != aTm->tm_mday) { // date switched CloseAllFiles(); OpenAllFiles(); WriteInitStamps(); } } }
static int ExitFile( void *theEnv, int num) { #if MAC_MCW || WIN_MCW || MAC_XCD #pragma unused(num) #endif #if IO_FUNCTIONS CloseAllFiles(theEnv); #else #if MAC_MCW || WIN_MCW || MAC_XCD #pragma unused(theEnv) #endif #endif return(1); }
bool CG3DBinaryLoader::Error(const char* error, ...) { #ifdef G3D_DEBUG va_list args; static char buf[256]; va_start(args, error); vsprintf(buf, error, args); va_end(args); CG3DSystem::GetSystem()->Error(__FILE__, __LINE__, buf); #endif CloseAllFiles(); m_CurrFile->Release(); return false; }
extern void RcFatalError( unsigned int errornum, ... ) /****************************************************/ { va_list arglist; va_start( arglist, errornum ); errornum = checkForTmpFiles( errornum, arglist ); va_end( arglist ); va_start( arglist, errornum ); RcMsgV( errornum, SEV_FATAL_ERR, arglist ); va_end( arglist ); if( IsTmpFile( CurrResFile.filename ) ) { ResCloseFile( CurrResFile.handle ); remove( CurrResFile.filename ); UnregisterTmpFile( CurrResFile.filename ); } #if !defined( WRDLL ) CloseAllFiles(); #endif PP_Fini(); RCSuicide( -1 ); }
int main(int argc,char *argv[]) { int a,b,c,processed_files=0,filename_count=0; char *outfile_name=NULL; int vflag=0,oflag=0; #ifdef LICENSE license_struct lstr; #endif progname=argv[0]; atexit(DelTemp); signal(SIGINT,ControlChandler); while ((c = getopt(argc, argv, "vo:")) != -1) { switch (c) { case 'o': outfile_name=optarg; oflag = 1; break; case 'v': vflag=1; break; default: Usage();return 0; } } if(oflag&&vflag){Usage();return 0;}/*both switches are used*/ if(vflag) { fputs("Log Merger for the TTCN-3 Test Executor\n" "Product number: " PRODUCT_NUMBER "\n" "Version: " VERSION_STRING "\n" "Build date: " __DATE__ " " __TIME__ "\n" "Compiled with: " C_COMPILER_VERSION "\n\n" COPYRIGHT_STRING "\n\n", stderr); #ifdef LICENSE print_license_info(); #endif return 0; } #ifdef LICENSE init_openssl(); load_license(&lstr); if (!verify_license(&lstr)) { free_license(&lstr); free_openssl(); exit(EXIT_FAILURE); } if (!check_feature(&lstr, FEATURE_LOGFORMAT)) { fputs("The license key does not allow the merging of log files.\n", stderr); return 2; } free_license(&lstr); free_openssl(); #endif argc-=optind-1;argv+=optind-1; if(argc<2){Usage();return 0;}/*executed when no input file is given*/ for(a=1;a<argc;a++) {/*find first file with a valid timestamp*/ TimeStampUsed=GetTimeStampFormat(argv[a]); if(TimeStampUsed!=TSF_Undefined)break; } switch(TimeStampUsed) { case TSF_Seconds: fputs("Merging logs with timestamp " "format \"seconds\" has no sense.\n", stderr); return 0; case TSF_Time: TimeStampLength=TIMELENGTH;break; case TSF_DateTime: TimeStampLength=DATETIMELENGTH;break; default: fputs("Unsupported timestamp format.\n", stderr); return 1; } for(a=1,c=0;a<argc;a++) {/*get files with valid timestamp format*/ b=GetTimeStampFormat(argv[a]); if(TimeStampUsed==b) {/*file conains at least one valid timestamp*/ c++; name_list_in=(char **)Realloc(name_list_in,c*sizeof(char *)); name_list_in[c-1] = mcopystr(argv[a]); } else if(b==TSF_Undefined)/*file contains no timestamp or uses a different format than the first match*/ fprintf(stderr,"Warning: unknown format in %s\n",argv[a]); else fprintf(stderr,"Warning: format mismatch in %s\n",argv[a]); } num_allfiles=c; if(num_allfiles<1){Usage();return 0;}/*no valid log file found*/ if(oflag){/*switch [-o outfile] is used -> create outfile*/ outfile = fopen(outfile_name, FOPEN_WRITE); if(outfile==NULL) { fprintf(stderr,"Error creating %s %s\n",outfile_name,strerror(errno)); return 1; } } else { outfile = stdout; } while(1) { filename_count=num_allfiles;start_file=0; while(num_allfiles>0) {/*process files in name_list_in*/ processed_files=OpenMaxFiles(num_allfiles,name_list_in+start_file); must_use_temp=True;/*if there are infiles remaining use tempfiles for all*/ if((processed_files<2)&&(num_allfiles>1)){fprintf(stderr,"Error: " "can not open enough files.\nMore descriptors required " "(set with the command `limit descriptors\')\n");return 1;} if(infiles_processed==True) for(a=0;a<processed_files;a++) { Free(EventList[a]->str_to_add); EventList[a]->str_to_add = NULL; } num_allfiles-=processed_files; ProcessOpenFiles(); CloseAllFiles(); start_file+=processed_files; } must_use_temp=False;/*all infiles processed*/ /*remove temporary files used in previous step*/ if(infiles_processed==True) for(a=0;a<filename_count;a++)remove(name_list_in[a]); infiles_processed=True; for(a=0;a<filename_count;a++)Free(name_list_in[a]); Free(name_list_in); if(num_tempfiles==0)break;/*no more file to process*/ name_list_in=temp_file_list;/*process tempfiles*/ num_allfiles=num_tempfiles; num_tempfiles=0;temp_file_list=NULL; } check_mem_leak(progname); return 0; }