/* 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));}