unsigned char *init_graphics(unsigned char *driver, unsigned char *param, unsigned char *display) { unsigned char *s = init_str(); int l = 0; struct graphics_driver **gd; #if defined(GRDRV_PMSHELL) && defined(GRDRV_X) if (is_xterm()) { static unsigned char swapped = 0; if (!swapped) { for (gd = graphics_drivers; *gd; gd++) { if (*gd == &pmshell_driver) *gd = &x_driver; else if (*gd == &x_driver) *gd = &pmshell_driver; } swapped = 1; } } #endif for (gd = graphics_drivers; *gd; gd++) { if (!driver || !*driver || !strcasecmp(cast_const_char (*gd)->name, cast_const_char driver)) { unsigned char *r; if ((!driver || !*driver) && (*gd)->flags & GD_NOAUTO) continue; if (!(r = init_graphics_driver(*gd, param, display))) { mem_free(s); return NULL; } if (!l) { if (!driver || !*driver) add_to_str(&s, &l, cast_uchar "Could not initialize any graphics driver. Tried the following drivers:\n"); else add_to_str(&s, &l, cast_uchar "Could not initialize graphics driver "); } add_to_str(&s, &l, (*gd)->name); add_to_str(&s, &l, cast_uchar ":\n"); add_to_str(&s, &l, r); mem_free(r); } } if (!l) { add_to_str(&s, &l, cast_uchar "Unknown graphics driver "); if (driver) add_to_str(&s, &l, driver); add_to_str(&s, &l, cast_uchar ".\nThe following graphics drivers are supported:\n"); add_graphics_drivers(&s, &l); add_to_str(&s, &l, cast_uchar "\n"); } return s; }
unsigned char *init_graphics(unsigned char *driver, unsigned char *param, unsigned char *display) { unsigned char *s = init_str(); int l = 0; struct graphics_driver **gd; for (gd = graphics_drivers; *gd; gd++) { if (!driver || !*driver || !strcasecmp((*gd)->name, driver)) { unsigned char *r; if ((!driver || !*driver) && (*gd)->flags & GD_NOAUTO) continue; if (!(r = init_graphics_driver(*gd, param, display))) { mem_free(s); drv = *gd; F = 1; return NULL; } if (!l) { if (!driver || !*driver) add_to_str(&s, &l, "Could not initialize any graphics driver. Tried the following drivers:\n"); else add_to_str(&s, &l, "Could not initialize graphics driver "); } add_to_str(&s, &l, (*gd)->name); add_to_str(&s, &l, ":\n"); add_to_str(&s, &l, r); mem_free(r); } } if (!l) { add_to_str(&s, &l, "Unknown graphics driver "); if (driver) add_to_str(&s, &l, driver); add_to_str(&s, &l, ".\nThe following graphics drivers are supported:\n"); for (gd = graphics_drivers; *gd; gd++) { if (gd != graphics_drivers) add_to_str(&s, &l, ", "); add_to_str(&s, &l, (*gd)->name); } add_to_str(&s, &l, "\n"); } return s; }