int main(int argc,char **argv) { int n; for (n=0;n<HARD_USERLIMIT;n++) pchild[n]=(child_t *)NULL; for (n=0;n<LOGININFO_COUNT;n++) logininfo[n]=(logininfo_t *)NULL; parsecmdline(argc,argv); while (reinit) { reinit=0; preinit(); if (readini()<0) exit(1); if (!checkconf()) exit(1); do_writepidfile(); do_changeroot(); if (daemonmode) { if (fork()==0) startserver(); exit(0); /* better be sure */ } else startserver(); for (n=0;n<maxusers;n++) if (pchild[n]) { free(pchild[n]); pchild[n]=(child_t *)NULL; } for (n=0;n<logininfocount;n++) if (logininfo[n]) { free(logininfo[n]); logininfo[n]=(logininfo_t *)NULL; } } exit(0); }
int main(int argc, char **argv){ // Bytef *source,*sourcecheck,*dest; // int sourceLen, destLen; // int returncode; char *arg; char *filebase; int filelen; char smvfile[1024]; char smzlogfile[1024]; char smvfilebase[1024]; char *ext; char inifile[1024]; char inifilebase[1024]; char *prog; int i; int endian_fds; int endian_info; int redirect=0; set_stdout(stdout); initMALLOC(); GLOBdoit_lighting=0; GLOBdoit_smoke3d=1; GLOBdoit_boundary=1; GLOBdoit_slice=1; GLOBdoit_volslice=1; #ifdef pp_PLOT3D GLOBdoit_plot3d=1; #else GLOBdoit_plot3d=0; #endif #ifdef pp_PART2 GLOBdoit_particle=0; #endif #ifdef pp_KDTEST test_kd(); exit(0); #endif strcpy(GLOBpp,"%"); strcpy(GLOBx,"X"); GLOBfirst_initsphere=1; GLOBfirst_slice=1; GLOBfirst_patch=1; GLOBfirst_plot3d=1; GLOBfirst_part2iso=1; GLOBfirst_part2iso_smvopen=1; #ifdef pp_THREAD mt_nthreads=2; #endif GLOBframeskip=-1; GLOBno_chop=0; GLOBautozip=0; GLOBmake_demo=0; GLOBendf=0; GLOBsyst=0; GLOBendianfile=NULL; GLOBdestdir=NULL; GLOBsourcedir=NULL; endianswitch=-1; GLOBoverwrite_b=0; GLOBoverwrite_s=0; GLOBget_bounds=0; GLOBget_slice_bounds=0; GLOBget_plot3d_bounds=0; GLOBget_boundary_bounds=0; #ifdef pp_PART GLOBget_part_bounds=0; GLOBpartfile2iso=0; #endif GLOBoverwrite_slice=0; GLOBoverwrite_volslice=0; GLOBoverwrite_plot3d=0; endian_info=0; GLOBcleanfiles=0; GLOBsmoke3dzipstep=1; GLOBboundzipstep=1; GLOBslicezipstep=1; GLOBfilesremoved=0; npatchinfo=0; nsmoke3dinfo=0; #ifdef pp_PART npartinfo=0; npartclassinfo=0; partinfo=NULL; partclassinfo=NULL; maxpart5propinfo=0; npart5propinfo=0; #endif nsliceinfo=0; sliceinfo=NULL; nmeshes=0; patchinfo=NULL; smoke3dinfo=NULL; prog=argv[0]; filebase=NULL; if(argc==1){ version(); return 1; } for(i=1;i<argc;i++){ int lenarg; int lenarg2; char *arg2; arg=argv[i]; lenarg=strlen(arg); if(arg[0]=='-'&&lenarg>1){ switch(arg[1]){ case 'a': GLOBautozip=1; break; case 'b': if(strcmp(arg,"-bounds")==0){ GLOBget_bounds=1; GLOBget_slice_bounds=1; #ifdef pp_PLOT3D GLOBget_plot3d_bounds=1; #endif GLOBget_boundary_bounds=1; #ifdef pp_PART GLOBget_part_bounds=1; #endif } else if(strcmp(arg,"-bb")==0){ GLOBget_boundary_bounds=1; } else if(strcmp(arg,"-bs")==0){ GLOBget_slice_bounds=1; } #ifdef pp_PLOT3D else if(strcmp(arg,"-bp")==0){ GLOBget_plot3d_bounds=1; } #endif #ifdef pp_PART2 else if(strcmp(arg,"-bP")==0){ GLOBget_part_bounds=1; } #endif else{ GLOBoverwrite_b=1; } break; #ifdef pp_PART2 case 'y': if(strcmp(arg,"-yP")==0){ GLOBdoit_particle=1; } break; #endif case 'l': GLOBdoit_lighting=1; break; case 'n': if(strcmp(arg,"-n3")==0){ GLOBdoit_smoke3d=0; } else if(strcmp(arg,"-nb")==0){ GLOBdoit_boundary=0; } #ifdef pp_PLOT3D else if(strcmp(arg,"-np")==0){ GLOBdoit_plot3d=0; } #endif #ifdef pp_PART2 else if(strcmp(arg,"-nP")==0){ GLOBdoit_particle=0; } #endif else if(strcmp(arg,"-ns")==0){ GLOBdoit_slice=0; } else if(strcmp(arg,"-nvs")==0){ GLOBdoit_volslice=0; } else if(strcmp(arg,"-no_chop")==0){ GLOBno_chop=1; } break; case '2': GLOBoverwrite_slice=1; break; case '3': GLOBoverwrite_volslice=1; GLOBoverwrite_s=1; break; #ifdef pp_PART2 case 'P': GLOBoverwrite_part=1; break; #endif case 'p': if(strcmp(arg,"-part2iso")==0){ GLOBpartfile2iso=1; } #ifdef pp_PLOT3D else{ GLOBoverwrite_plot3d=1; } #endif break; case 'f': GLOBoverwrite_b=1; GLOBoverwrite_s=1; GLOBoverwrite_slice=1; GLOBoverwrite_volslice=1; #ifdef pp_PLOT3D GLOBoverwrite_plot3d=1; #endif #ifdef pp_PART2 GLOBoverwrite_part=1; #endif break; case 'c': GLOBcleanfiles=1; break; case 'e': endian_info=1; break; case 'r': redirect=1; break; case 's': if(i+1>=argc)break; if(lenarg==2){ lenarg2=strlen(argv[i+1]); NewMemory((void **)&GLOBsourcedir,lenarg2+2); strcpy(GLOBsourcedir,argv[i+1]); if(GLOBsourcedir[lenarg2-1]!=dirseparator[0]){ strcat(GLOBsourcedir,dirseparator); } if(getfileinfo(GLOBsourcedir,NULL,NULL)!=0){ fprintf(stderr,"*** Warning: The source directory specified, %s, does not exist or cannot be accessed\n",GLOBsourcedir); return 1; } i++; } else if(strcmp(arg,"-skip")==0){ GLOBframeskip=-1; arg2=argv[i+1]; sscanf(arg2,"%i",&GLOBframeskip); if(GLOBframeskip>0){ GLOBslicezipstep=GLOBframeskip; GLOBsmoke3dzipstep=GLOBframeskip; GLOBboundzipstep=GLOBframeskip; } i++; } break; case 'd': if(strcmp(arg,"-demo")==0){ GLOBautozip=1; GLOBmake_demo=1; break; } if(i+1<argc){ lenarg2=strlen(argv[i+1]); NewMemory((void **)&GLOBdestdir,lenarg2+2); strcpy(GLOBdestdir,argv[i+1]); if(GLOBdestdir[lenarg2-1]!=dirseparator[0]){ strcat(GLOBdestdir,dirseparator); } // if(getfileinfo(GLOBdestdir,NULL,NULL)!=0){ // fprintf(stderr,"*** Warning: The destination directory %s does not exist or cannot be accessed\n",GLOBdestdir); // return 1; // } i++; } break; #ifdef pp_THREAD case 't': mt_compress=1; if(i+1<argc){ arg2=argv[i+1]; sscanf(arg2,"%i",&mt_nthreads); if(mt_nthreads<1)mt_nthreads=1; if(mt_nthreads>NTHREADS_MAX)mt_nthreads=NTHREADS_MAX; i++; } break; #endif case 'h': usage(prog); return 1; case 'v': version(); return 1; default: usage(prog); return 1; } } else{ if(filebase==NULL){ filebase=argv[i]; } } } #ifdef pp_THREAD if(GLOBcleanfiles==1)mt_nthreads=1; #endif // construct smv filename if(filebase==NULL){ usage(prog); return 1; } #ifdef pp_THREAD init_pthread_mutexes(); #endif filelen=strlen(filebase); if(filelen>4){ ext=filebase+filelen-4; if(strcmp(ext,".smv")==0){ ext[0]=0; filelen=strlen(filebase); } } if(GLOBsourcedir==NULL){ strcpy(smvfile,filebase); strcpy(smzlogfile,filebase); } else{ strcpy(smvfile,GLOBsourcedir); strcat(smvfile,filebase); strcpy(smzlogfile,GLOBsourcedir); strcat(smzlogfile,filebase); } strcpy(smvfilebase,filebase); if(GLOBpartfile2iso==1||GLOBcleanfiles==1){ strcpy(GLOBsmvisofile,smvfile); strcat(GLOBsmvisofile,".isosmv"); } strcat(smvfile,".smv"); if(redirect==1){ if(GLOBsourcedir==NULL){ strcpy(smzlogfile,filebase); } else{ strcpy(smzlogfile,GLOBsourcedir); strcat(smzlogfile,filebase); } strcat(smzlogfile,".smzlog"); SMZLOG_STREAM=fopen(smzlogfile,"w"); if(SMZLOG_STREAM!=NULL){ set_stdout(SMZLOG_STREAM); } } // construct ini file name strcpy(inifile,smvfile); inifile[strlen(inifile)-4]=0; strcat(inifile,".ini"); strcpy(inifilebase,filebase); strcat(inifilebase,".ini"); strcpy(GLOBendianfilebase,""); // make sure smv file name exists if(getfileinfo(smvfile,NULL,NULL)!=0){ fprintf(stderr,"*** Error: The file %s does not exist\n",smvfile); return 1; } // make sure smv file can be opened if(readsmv(smvfile)!=0)return 1; #ifdef pp_PLOT3D if(nplot3dinfo>0){ plot3dinfo[0].dup=0; for(i=1;i<nplot3dinfo;i++){ plot3d *plot3di; plot3di = plot3dinfo + i; plot3di->dup=0; plot3ddup(plot3di,i); } } #endif if(npatchinfo>0){ patchinfo->dup=0; for(i=1;i<npatchinfo;i++){ patch *patchi; patchi = patchinfo + i; patchi->dup=0; patchdup(patchi,i); } } if(nsliceinfo>0){ sliceinfo[0].dup=0; for(i=1;i<nsliceinfo;i++){ slice *slicei; slicei = sliceinfo + i; slicei->dup=0; slicedup(slicei,i); } } if(getendian()==1){ PRINTF("Smokezip running on a big endian computer.\n"); } else{ PRINTF("Smokezip running on a little endian computer.\n"); } if(GLOBendf==0&&GLOBsyst==0){ fprintf(stderr,"Warning: casename.end file is missing. Endianness of\n"); fprintf(stderr," FDS boundary file data is unknown.\n"); if(getendian()==1){ fprintf(stderr," Assuming FDS boundary data is big endian - \n"); } if(getendian()==0){ fprintf(stderr," Assuming FDS boundary data is little endian - \n"); } fprintf(stderr," or equivalently assuming FDS and Smokezip are\n"); fprintf(stderr," being run on the same type of computer\n"); endianswitch=0; } else{ endian_fds=getendian()+endianswitch; if(endian_fds==2)endian_fds=0; if(endian_fds==1){ PRINTF("FDS was run on a big endian computer. \n\n"); } else{ PRINTF("FDS was run on a little endian computer.\n\n"); } } if(endian_info==1)return 0; readini(inifile); #ifdef pp_THREAD mt_compress_all(); #else compress_all(NULL); #endif if(GLOBcleanfiles==0&&GLOBdestdir!=NULL){ PRINTF("Copying .smv, .ini and .end files to %s directory\n",GLOBdestdir); filecopy(GLOBdestdir,smvfile,smvfilebase); filecopy(GLOBdestdir,inifile,inifilebase); filecopy(GLOBdestdir,GLOBendianfile,GLOBendianfilebase); } if(GLOBcleanfiles==1&&GLOBfilesremoved==0){ PRINTF("No compressed files were removed\n"); } if(GLOBmake_demo==1){ makesvd(GLOBdestdir,smvfile); } return 0; }
//------------------------------------------------------------------ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int cmdShow) { int i; HDC dc; MSG mesg; RECT rc; inst = hInstance; //DPIAware typedef BOOL(WINAPI *TGetProcAddress)(); TGetProcAddress getProcAddress = (TGetProcAddress)GetProcAddress(GetModuleHandle(_T("user32")), "SetProcessDPIAware"); if(getProcAddress) getProcAddress(); memset(custom, 200, sizeof(custom)); _tcscpy(pdfObject.fn, _T("sudoku.pdf")); pdfObject.pageWidth=595; pdfObject.pageHeight=842; pdfObject.count=6; pdfObject.countPerPage=6; pdfObject.border=40; pdfObject.spacing=20; readini(); //load common controls #if _WIN32_IE >= 0x0300 INITCOMMONCONTROLSEX iccs; iccs.dwSize= sizeof(INITCOMMONCONTROLSEX); iccs.dwICC= ICC_BAR_CLASSES; InitCommonControlsEx(&iccs); #else InitCommonControls(); #endif // create the main window WNDCLASS wc; ZeroMemory(&wc, sizeof(wc)); wc.lpfnWndProc = WndMainProc; wc.hInstance = inst; wc.lpszClassName = CLASSNAME; wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hIcon = LoadIcon(inst, MAKEINTRESOURCE(IDI_MAINICON)); if(!RegisterClass(&wc)){ #ifdef UNICODE msg("This version cannot run on Windows 95/98/ME."); #else msg("RegisterClass failed"); #endif return 2; } scrW= GetSystemMetrics(SM_CXSCREEN); scrH= GetSystemMetrics(SM_CYSCREEN); aminmax(mainLeft, 0, scrW-50); aminmax(mainTop, 0, scrH-50); hWin = CreateWindow(CLASSNAME, title, WS_OVERLAPPEDWINDOW | WS_CAPTION | WS_CLIPCHILDREN, mainLeft, mainTop, mainW, mainH, 0, 0, inst, 0); if(!hWin){ msg("CreateWindow failed"); return 3; } haccel= LoadAccelerators(inst, MAKEINTRESOURCE(IDR_ACCELERATOR)); Naccel= CopyAcceleratorTable(haccel, accel, sizeA(accel)); initLang(); //create status bar statusbar= CreateStatusWindow(WS_CHILD, 0, hWin, 1); static int parts[]={100, 140, 210, 230, -1}; dc=GetDC(hWin); for(i=0; i<sizeA(parts)-1; i++){ parts[i]=parts[i]*GetDeviceCaps(dc, LOGPIXELSX)/96; } ReleaseDC(hWin, dc); SendMessage(statusbar, SB_SETPARTS, sizeA(parts), (LPARAM)parts); ShowWindow(statusbar, SW_SHOW); //create tool bar i=sizeA(tbb); for(TBBUTTON *u=tbb; u<endA(tbb); u++){ if(u->fsStyle==TBSTYLE_SEP) i--; } toolbar = CreateToolbarEx(hWin, WS_CHILD|TBSTYLE_TOOLTIPS, 2, i, inst, IDB_TOOLBAR, tbb, sizeA(tbb), 16, 16, 16, 15, sizeof(TBBUTTON)); GetClientRect(toolbar, &rc); MapWindowPoints(toolbar, hWin, (POINT*)&rc, 2); toolH= rc.bottom; if(toolBarVisible) ShowWindow(toolbar, SW_SHOW); langChanged(); ShowWindow(hWin, cmdShow); initSquare(false); UpdateWindow(hWin); toolBitmap(); numButtons(); while(GetMessage(&mesg, NULL, 0, 0)==TRUE){ if(!TranslateAccelerator(hWin, haccel, &mesg)){ TranslateMessage(&mesg); DispatchMessage(&mesg); } } if(delreg) deleteini(HKEY_CURRENT_USER); return 0; }
int setup_case(int argc, char **argv){ int return_code; char *input_file; /* warning: the following line was commented out!! (perhaps it broke something) this line is necessary in order to define smv_filename and trainer_filename */ // parse_commandlines(argc, argv); return_code=-1; if(strcmp(input_filename_ext,".svd")==0||demo_option==1){ trainer_mode=1; trainer_active=1; if(strcmp(input_filename_ext,".svd")==0){ input_file=trainer_filename; } else if(strcmp(input_filename_ext,".smt")==0){ input_file=test_filename; } else{ input_file=smv_filename; } return_code=readsmv(input_file,iso_filename); if(return_code==0){ show_glui_trainer(); show_glui_alert(); } } else{ input_file=smv_filename; return_code=readsmv(input_file,iso_filename); } switch(return_code){ case 1: fprintf(stderr,"*** Error: Smokeview file, %s, not found\n",input_file); return 1; case 2: fprintf(stderr,"*** Error: problem reading Smokeview file, %s\n",input_file); return 2; case 0: readsmv_dynamic(input_file); break; default: ASSERT(FFALSE); } /* initialize units */ InitUnits(); init_unit_defs(); set_unit_vis(); CheckMemory; readini(NULL); readboundini(); if(use_graphics==0)return 0; #ifdef pp_LANG init_lang(); #endif if(sb_atstart==1)smooth_blockages(); if(ntours==0)setup_tour(); glui_colorbar_setup(mainwindow_id); glui_motion_setup(mainwindow_id); glui_bounds_setup(mainwindow_id); glui_shooter_setup(mainwindow_id); glui_geometry_setup(mainwindow_id); glui_clip_setup(mainwindow_id); glui_wui_setup(mainwindow_id); glui_labels_setup(mainwindow_id); glui_device_setup(mainwindow_id); glui_tour_setup(mainwindow_id); glui_alert_setup(mainwindow_id); glui_stereo_setup(mainwindow_id); glui_3dsmoke_setup(mainwindow_id); if(UpdateLIGHTS==1)updateLights(NULL,NULL); glutReshapeWindow(screenWidth,screenHeight); glutSetWindow(mainwindow_id); glutShowWindow(); glutSetWindowTitle(fdsprefix); Init(); glui_trainer_setup(mainwindow_id); glutDetachMenu(GLUT_RIGHT_BUTTON); InitMenus(LOAD); glutAttachMenu(GLUT_RIGHT_BUTTON); if(trainer_mode==1){ show_glui_trainer(); show_glui_alert(); } return 0; }