void update_driver_param(void) { if (drv) { struct driver_param *dp = get_driver_param(drv->name); dp->kbd_codepage = drv->kbd_codepage; if (dp->param) mem_free(dp->param); dp->param=stracpy(drv->get_driver_param()); if (dp->shell) mem_free(dp->shell); dp->shell = stracpy(drv->shell); dp->nosave = 0; } }
/* Driver je jednorazovy argument, kterej se preda grafickymu driveru, nikde se dal * neuklada. Param se skladuje v default_driver param a uklada se do konfiguraku. Pred * ukoncenim grafickeho driveru se nastavi default_driver_param podle * drv->get_driver_param. */ unsigned char *init_graphics_driver(struct graphics_driver *gd, unsigned char *param, unsigned char *display) { unsigned char *r; unsigned char *p = param; struct driver_param *dp=get_driver_param(gd->name); if (!param || !*param) p = dp->param; gd->codepage=dp->codepage; gd->shell=mem_calloc(MAX_STR_LEN); if (dp->shell) strncpy(gd->shell,dp->shell,MAX_STR_LEN); gd->shell[MAX_STR_LEN-1]=0; r = gd->init_driver(p,display); if (r) mem_free(gd->shell), gd->shell = NULL; return r; }