static void DoSave(System *sys) { VMFILE *fp; /* check for a program name on the command line */ if (!SetProgramName(sys)) { VM_printf("expecting a file name\n"); return; } /* save the program */ if (!(fp = VM_fopen(programName, "w"))) VM_printf("error saving '%s'\n", programName); else { VMVALUE lineNumber; VM_printf("Saving '%s'\n", programName); BufSeekN(0); while (BufGetLine(&lineNumber, sys->lineBuf)) { char buf[32]; sprintf(buf, "%d ", lineNumber); VM_fputs(buf, fp); VM_fputs(sys->lineBuf, fp); } VM_fclose(fp); } }
static void DoLoad(System *sys) { VMFILE *fp; /* check for a program name on the command line */ if (!SetProgramName(sys)) { VM_printf("expecting a file name\n"); return; } /* load the program */ if (!(fp = VM_fopen(programName, "r"))) VM_printf("error loading '%s'\n", programName); else { VM_printf("Loading '%s'\n", programName); BufInit(); while (VM_fgets(sys->lineBuf, sizeof(sys->lineBuf), fp) != NULL) { int len = strlen(sys->lineBuf); VMVALUE lineNumber; char *token; sys->linePtr = sys->lineBuf; if ((token = NextToken(sys)) != NULL) { if (ParseNumber(token, &lineNumber)) BufAddLineN(lineNumber, sys->linePtr); else VM_printf("expecting a line number: %s\n", token); } } VM_fclose(fp); } }
int main(int argc, char *argv[]) { SetProgramName(*argv); ProcessOptions(argc, argv); Process(); return(0); }
static void DoNew(System *sys) { /* check for a program name on the command line */ #ifdef LOAD_SAVE SetProgramName(sys); #endif BufInit(); }
/* ============= OpenGLProgram::InitializeProgram OpenGLProgram Initialization. ============= */ bool OpenGLProgram::InitializeProgram( const char* name, const std::vector<Shader*>& shaderList, const char* outVariable, ProgramFeatures::Value features ) { m_programID = glCreateProgram(); SetProgramName( name ); for( std::vector<Shader*>::const_iterator iter = shaderList.begin(); iter != shaderList.end(); ++iter ) { if( AttachShader( ( *iter ) ) == 0 ) { char buff[256]; sprintf_s( buff, "Failed to compile %s program", name ); Log::GetInstance()->WriteToLog( "OpenGLProgram", buff ); return false; } } SetOutVariable( outVariable ); LinkProgram(); SetFeatures( features ); return m_programID > 0; }
main(int argc, char *argv[]) { char buf[80]; Point3 **v; Point3 *BaseV; int *usedpoint; List T=NULL_LIST, Q=NULL_LIST; int n,i=1; FILE *fp=stdout; double sec; SetProgramName("DeWall"); if((argc<2) || (strcmp(argv[i],"/?")==0)|| (strcmp(argv[i],"-?")==0)|| (strcmp(argv[i],"/h")==0)|| (strcmp(argv[i],"-h")==0) ) Error(USAGE_MESSAGE, EXIT); while(*argv[i]=='-') { switch(argv[i][1]) { case 'p' : UpdateFlag=ON; break; case 'c' : CheckFlag=ON; break; case 't' : SafeTetraFlag=ON; break; case 's' : StatFlag=ON; if(argv[i][2]=='1') NumStatFlag=ON; if(argv[i][2]=='2') { NumStatTitleFlag=ON; NumStatFlag=ON; } break; case 'u' : UGScaleFlag=ON; if(argv[i][2]==0 && isdigit(argv[i+1][0])) UGScale=atof(argv[++i]); else UGScale=atof(argv[i]+2); break; default : sprintf(buf,"Unknown options '%s'\n",argv[i]); Error(buf,NO_EXIT); } i++; } BaseV=ReadPoints(argv[i++],&n); if(argc>i) fp=fopen(argv[i],"w"); SI.Point=n; v=(Point3 **)malloc(n*sizeof(Point3 *)); usedpoint=(int *)malloc(n*sizeof(int)); if(!v || !usedpoint) Error("Unable to allocate memory for Points\n",EXIT); for(i=0;i<n;i++) v[i]=&(BaseV[i]); for(i=0;i<n;i++) usedpoint[i] = -1; Q=NewList(FIFO,sizeof(Face)); /* Initialize First Face */ ChangeEqualObjectList(EqualFace,Q); /* List Q. */ if(n>40) HashList(n/4,HashFace,Q); T=NewList(LIFO,sizeof(ShortTetra)); /* Initialize Built Tetra-*/ ChangeEqualObjectList(EqualTetra,T); /* hedra List T. */ if(SafeTetraFlag && n>40) HashList(n/4,HashTetra,T); ResetChronos(USER_CHRONOS); StartChronos(USER_CHRONOS); DeWall(v,BaseV,usedpoint,n,Q,T,XAxis); StopChronos(USER_CHRONOS); sec=ReadChronos(USER_CHRONOS); SI.Tetra=CountList(T); SI.Secs=sec; if(StatFlag && !NumStatFlag) PrintStat(); if(StatFlag && NumStatFlag && NumStatTitleFlag) PrintNumStatTitle(); if(StatFlag && NumStatFlag) PrintNumStat(); if(!StatFlag) printf("Points:%7i Secs:%6.2f Tetras:%7i\n",SI.Point,SI.Secs,SI.Tetra); WriteTetraList(T,fp); return 0; }