X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_driver.c;h=c53802f3732a98f990bf5999e9c1c63bd0f94d63;hp=4f4b8ce5e20e128c9cdc01d76fa0ce799f5fce18;hb=1f7a36fe16b11bb4aab51be89bbc1b0f75936b78;hpb=ef2d99350e0d3e4606171b5b1466ab92ec440205 diff --git a/ncurses/base/lib_driver.c b/ncurses/base/lib_driver.c index 4f4b8ce5..c53802f3 100644 --- a/ncurses/base/lib_driver.c +++ b/ncurses/base/lib_driver.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 2008-2012,2014 Free Software Foundation, Inc. * + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 2009-2012,2014 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -33,8 +34,9 @@ #include -MODULE_ID("$Id: lib_driver.c,v 1.5 2014/03/08 20:32:59 tom Exp $") +MODULE_ID("$Id: lib_driver.c,v 1.9 2020/08/29 19:53:35 tom Exp $") +#ifndef EXP_WIN32_DRIVER typedef struct DriverEntry { const char *name; TERM_DRIVER *driver; @@ -42,8 +44,8 @@ typedef struct DriverEntry { static DRIVER_ENTRY DriverTable[] = { -#ifdef __MINGW32__ - {"win32con", &_nc_WIN_DRIVER}, +#ifdef _WIN32 + {"win32console", &_nc_WIN_DRIVER}, #endif {"tinfo", &_nc_TINFO_DRIVER} /* must be last */ }; @@ -63,24 +65,12 @@ _nc_get_driver(TERMINAL_CONTROL_BLOCK * TCB, const char *name, int *errret) for (i = 0; i < SIZEOF(DriverTable); i++) { res = DriverTable[i].driver; - /* - * Use "#" (a character which cannot begin a terminal's name) to - * select specific driver from the table. - * - * In principle, we could have more than one non-terminfo driver, - * e.g., "win32gui". - */ - if (name != 0 && *name == '#') { - size_t n = strlen(name + 1); - if (n != 0 - && strncmp(name + 1, DriverTable[i].name, n)) { - continue; + if (strcmp(DriverTable[i].name, res->td_name(TCB)) == 0) { + if (res->td_CanHandle(TCB, name, errret)) { + use = res; + break; } } - if (res->td_CanHandle(TCB, name, errret)) { - use = res; - break; - } } if (use != 0) { TCB->drv = use; @@ -88,6 +78,7 @@ _nc_get_driver(TERMINAL_CONTROL_BLOCK * TCB, const char *name, int *errret) } returnCode(code); } +#endif /* !EXP_WIN32_DRIVER */ NCURSES_EXPORT(int) NCURSES_SP_NAME(has_key) (SCREEN *sp, int keycode)