X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_driver.c;h=6211b70bec190461e559ef413c774c3a65afd708;hp=1be9903fae6818d906ecdfd3b20a559ddbf844b9;hb=896224bea6196d73d03e39b1a266887d6f2cb6ff;hpb=da1f84b7eb32f17e91f6de242132ab3b2d462148 diff --git a/ncurses/base/lib_driver.c b/ncurses/base/lib_driver.c index 1be9903f..6211b70b 100644 --- a/ncurses/base/lib_driver.c +++ b/ncurses/base/lib_driver.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2008,2009 Free Software Foundation, Inc. * + * Copyright (c) 2008-2014,2018 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,7 +33,7 @@ #include -MODULE_ID("$Id: lib_driver.c,v 1.1 2009/02/21 15:11:29 juergen Exp $") +MODULE_ID("$Id: lib_driver.c,v 1.7 2018/06/24 00:06:37 tom Exp $") typedef struct DriverEntry { const char *name; @@ -42,43 +42,46 @@ typedef struct DriverEntry { static DRIVER_ENTRY DriverTable[] = { -#ifdef __MINGW32__ - {"win", &_nc_WIN_DRIVER}, +#ifdef _WIN32 + {"win32console", &_nc_WIN_DRIVER}, #endif - {"tinfo", &_nc_TINFO_DRIVER} + {"tinfo", &_nc_TINFO_DRIVER} /* must be last */ }; -#define NUM_DRIVERS (int)(sizeof(DriverTable)/sizeof(DRIVER_ENTRY)) - NCURSES_EXPORT(int) _nc_get_driver(TERMINAL_CONTROL_BLOCK * TCB, const char *name, int *errret) { int code = ERR; - int i; + size_t i; TERM_DRIVER *res = (TERM_DRIVER *) 0; TERM_DRIVER *use = 0; + T((T_CALLED("_nc_get_driver(%p, %s, %p)"), + (void *) TCB, NonNull(name), (void *) errret)); + assert(TCB != 0); - for (i = 0; i < NUM_DRIVERS; i++) { + for (i = 0; i < SIZEOF(DriverTable); i++) { res = DriverTable[i].driver; - if (res->CanHandle(TCB, name, errret)) { - use = res; - break; + if (strcmp(DriverTable[i].name, res->td_name(TCB)) == 0) { + if (res->td_CanHandle(TCB, name, errret)) { + use = res; + break; + } } } if (use != 0) { TCB->drv = use; code = OK; } - return (code); + returnCode(code); } NCURSES_EXPORT(int) NCURSES_SP_NAME(has_key) (SCREEN *sp, int keycode) { - T((T_CALLED("has_key(%p, %d)"), sp, keycode)); - returnCode(IsValidTIScreen(sp) ? CallDriver_1(sp, kyExist, keycode) : FALSE); + T((T_CALLED("has_key(%p, %d)"), (void *) sp, keycode)); + returnCode(IsValidTIScreen(sp) ? CallDriver_1(sp, td_kyExist, keycode) : FALSE); } NCURSES_EXPORT(int) @@ -93,7 +96,7 @@ NCURSES_SP_NAME(_nc_mcprint) (SCREEN *sp, char *data, int len) int code = ERR; if (0 != TerminalOf(sp)) - code = CallDriver_2(sp, print, data, len); + code = CallDriver_2(sp, td_print, data, len); return (code); } @@ -108,10 +111,10 @@ NCURSES_SP_NAME(doupdate) (SCREEN *sp) { int code = ERR; - T((T_CALLED("doupdate(%p)"), sp)); + T((T_CALLED("doupdate(%p)"), (void *) sp)); if (IsValidScreen(sp)) - code = CallDriver(sp, update); + code = CallDriver(sp, td_update); returnCode(code); } @@ -127,9 +130,9 @@ NCURSES_SP_NAME(mvcur) (SCREEN *sp, int yold, int xold, int ynew, int xnew) { int code = ERR; TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%p,%d,%d,%d,%d)"), - sp, yold, xold, ynew, xnew)); + (void *) sp, yold, xold, ynew, xnew)); if (HasTerminal(sp)) { - code = CallDriver_4(sp, hwcur, yold, xold, ynew, xnew); + code = CallDriver_4(sp, td_hwcur, yold, xold, ynew, xnew); } returnCode(code); }