All pastes #489191 Raw Edit

Anonymous

public c v1 · immutable
·published 2007-05-15 11:58 UTC
rendered paste body
/* How to implement an integer datatype for cvar *//* (example taken from cvarx) *//* In some init function... */	g_inttype = cvar_type_new("int");	cvar_type_set_eval(g_inttype, eval_int);	cvar_type_set_datasize(g_inttype, sizeof(int));	cvar_type_set_view(g_inttype, view_int);	cvar_set_cmd("int", cmd_int);/* Note that there are many more parameters to set, however * they are set to sensible default values by cvar_type_new  * which are fine for int *//* The functions defined above */cvar_result_e eval_int(cvar_type_t* type, void* vdata, int argc, char** argv){	int* data = (int*) vdata;	if(argc == 2) {		*data = atoi(argv[1]);	} else {		cvar_print("%s: int: %d", argv[0], *data); 	}	return cvar_kNoError;}cvar_result_e cmd_int(int argc, char** argv){	if(argc == 3) {		void* vdata;		int* data;		vdata = cvar_create(argv[1], g_inttype);		data = (int*) vdata;		*data = atoi(argv[2]);	} else {		cvar_print("usage: %s <cvar> <value>", argv[0]);	}	return cvar_kNoError;}void view_int(char* buffer, size_t len, cvar_type_t* type, void* data){	sprintf(buffer, "int: %d", *((int*) data));}