void parseHistoryMarker(char * argList[]){ int commandNumber = atoi(argList[0]+1); if(commandNumber){ int commandIndex = getCommandIndex(commandNumber); if(-1 == commandIndex){ printf("No such command in history.\n"); } else{ tokenNumber = numberOfTokensInCommand[commandIndex]; args = copyArgList(previousCommands[commandIndex], tokenNumber); background = runInBackground[commandIndex]; printf("%s\n", makeCommandOneLine(commandIndex)); } } }
/*----------------------------------------------------------------------------*/ int firstPassCommandsManager(Data * data, char * tag){ char command[5]; int operandNum; int commandIndex; if (sscanf(data->line, "%4s", command) == 0){ printf("[Error] on line %d:- command error invalid \n", data->lc); data->containError=TRUE; return 0; } commandIndex = getCommandIndex(command); if (commandIndex == -1){ printf("[Error] on line %d:- command error not defined\n", data->lc); data->containError=TRUE; return 0; } data->line+=strlen(command); if(!isspace(*(data->line))){ printf("[Error] on line %d:- extra characters or no space after command name\n", data->lc); data->containError=TRUE; return 0; } eatSpace(data); operandNum = getNumOfOperands(commandIndex); if(operandNum==0){ return checkZeroOperands(data,tag); }else if(operandNum==1){ return checkOneOperands(data, tag); }else if(operandNum==2){ return checkTwoOperands(data, tag,command); } return 0; }
int main(int argc,char *argv[]) { const int BUF_SIZE=1024; const int CMDLEN=50; int sockfd;//atoi(argv[1]); struct FTS fts; char command[BUF_SIZE]; int index; struct COMMAND cmd; char user[CMDLEN]; char arg[BUF_SIZE]; const char* prompt="FTS> "; int numlogs,logfilesize; struct CONFIG_READER cfg; struct LOGGER lg; char ip[CMDLEN]; llg=≶ signal(SIGKILL,handle); createConfigReader(&cfg,"config.cfg"); //printf("after config reader\n"); getConfigValue("NLOGFILES",arg,&cfg); numlogs=atoi(arg); getConfigValue("LOGFILESIZE",arg,&cfg); logfilesize=atoi(arg); destroyConfigReader(&cfg); //printf("after destroy config reader\n"); createLogger(&lg,"client_log","./client_logs",numlogs,logfilesize); //printf("after create logger\n"); strncpy(arg,argv[1],BUF_SIZE); //printf("arg: %s\n",arg); strncpy(user,strtok(arg,"@"),BUF_SIZE); //printf("user: %s\n",user); strncpy(ip,strtok(NULL,"@"),BUF_SIZE); //printf("before connections\n"); fts.sockfd=sockfd=connectToServer(ip); fts.mode=FTS_MODE_ASCII; //printf("sock: %d\n",sockfd); //printf("user: %s\n",user); write(sockfd,user,strlen(user)); read(sockfd,&index,sizeof(index)); //printf("%d\n",index); if(index==-1) { puts("user not found"); exit(0); } puts("connected successfully"); while(1) { printf("%s",prompt); fflush(stdout); fgets(command,BUF_SIZE,stdin); while(command[0]=='\0' || command[0]==' ' || command[0]=='\n') fgets(command,BUF_SIZE,stdin); if(command[strlen(command)-1]=='\n') command[strlen(command)-1]='\0'; //printf("cmd: %s\n",command); writeToLogFile(command,&lg); fillCommandObject(command,&cmd); index=getCommandIndex(&cmd,(struct CMD_MAP *)&cmd_map); if(index < 0) { puts("Command not found"); continue; } cmd_map[index].handler(&cmd,&fts); destroyCommandObject (&cmd); } return (0); }
int Sci1SongIterator::nextCommand(byte *buf, int *result) { if (!_initialised) { //printf("[iterator] DEBUG: Initialising for %d\n", _deviceId); _initialised = true; if (initSong()) return SI_FINISHED; } if (_delayRemaining) { int delay = _delayRemaining; _delayRemaining = 0; return delay; } int retval = 0; do { /* All delays must be processed separately */ int chan = getCommandIndex(); if (chan == COMMAND_INDEX_NONE) { return SI_FINISHED; } if (chan == COMMAND_INDEX_PCM) { if (_samples.begin()->announced) { /* Already announced; let's discard it */ Audio::AudioStream *feed = getAudioStream(); delete feed; } else { int delay = _samples.begin()->delta; if (delay) { updateDelta(delay); return delay; } /* otherwise we're touching a PCM */ _samples.begin()->announced = true; return SI_PCM; } } else { /* Not a PCM */ retval = processMidi(buf, result, &(_channels[chan]), PARSE_FLAG_LOOPS_UNLIMITED); if (retval == SI_LOOP) { _numLoopedChannels++; _channels[chan].state = SI_STATE_PENDING; _channels[chan].delay = 0; if (_numLoopedChannels == _numActiveChannels) { int i; /* Everyone's ready: Let's loop */ for (i = 0; i < _numChannels; i++) if (_channels[i].state == SI_STATE_PENDING) _channels[i].state = SI_STATE_DELTA_TIME; _numLoopedChannels = 0; return SI_LOOP; } } else if (retval == SI_FINISHED) { #ifdef DEBUG fprintf(stderr, "FINISHED some channel\n"); #endif } else if (retval > 0) { int sd ; sd = getSmallestDelta(); if (noDeltaTime() && sd) { /* No other channel is ready */ updateDelta(sd); /* Only from here do we return delta times */ return sd; } } } /* Not a PCM */ } while (retval > 0); return retval; }