Пример #1
0
int s_k_reboot(int hp, char* p){
	if(hp){
		return 4;
	}else{
		s_reboot();
		return 0;
	}
}
void parsecommand(char* s){
	int clength = 0;
	int error = 0;
	int hasParameter = 0;
	getCommand(s);
	clength = strlen(shellbuff.command);
	if(shellbuff.buffer[clength]==' '){
		hasParameter = 1;
		getParameter(shellbuff.buffer, clength);
	}
	// Execute the requested command 
	if(!strcmp(shellbuff.command,"test")){
		error = s_test(hasParameter, shellbuff.parameter);
	}
	if(!strcmp(shellbuff.command,"help")){
		error = s_help(hasParameter, shellbuff.parameter);
	}
	else if(!strcmp(shellbuff.command, "reboot")){
		error = s_reboot(hasParameter, shellbuff.parameter); 
	}
	else if(!strcmp(shellbuff.command,"clear")){
		error = s_clear(hasParameter, shellbuff.parameter);
	}
	else if(!strcmp(shellbuff.command,"about")){
		error = s_about(hasParameter, shellbuff.parameter);
	}
	else if(!strcmp(shellbuff.command,"time")){
		error = s_time(hasParameter, shellbuff.parameter);
	}
	else if(!strcmp(shellbuff.command,"bkg")){
		error = s_bkg(hasParameter, shellbuff.parameter);
	}
	else if(!strcmp(shellbuff.command,"ssavercolor")){
		error = s_ssavercolor(hasParameter, shellbuff.parameter);
	}
	else if(!strcmp(shellbuff.command,"ssavertime")){
		error = s_ssavertime(hasParameter, shellbuff.parameter);
	}
	else if(!strcmp(shellbuff.command,"timestyle")){
		error = s_timestyle(hasParameter, shellbuff.parameter);
	}
	else {
		printerror("COMMAND NOT FOUND\n");
	}
	// Print error messages if needed
	switch(error){
		case 1:
			printwarning("Too many arguments.\n");
			break;
		case 2:
			printwarning("Too few arguments.\n");
			break;
		case 3:
			printwarning("Invalid argument.\n");
			break;
		case 4:
			printwarning("This command doesn't receive parameters.\n");
			break;
		default:
			break;
	}
	return;
}