kevent.c has some potential switch bugs in it I'm not sure how to fix. kevent.c(183): SCI_EVT_MOUSE_RELEASE release just falls through. Should this break, and/or clear some flags? kevent.c(190): no default for the switch within a switch, should it just break? Changelog: 2001-04-10 Matt Hargett <[EMAIL PROTECTED]> * kevent.c: Added NULL pointer checks in several places. * (sci_toupper): added default case to switch * (kMapKeyToDir):Ditto. -- http://www.clock.org/~matt -- Attached file included as plaintext by Listar -- -- File: kevent.c.patch --- kevent.c.old Tue Apr 10 18:28:35 2001 +++ kevent.c Tue Apr 10 18:38:32 2001 @@ -85,6 +85,7 @@ sci_toupper(int c) case ',': return '<'; case '.': return '>'; case '/': return '?'; + default: return c; } return c; /* No match */ @@ -212,6 +213,13 @@ kMapKeyToDir(state_t *s, int funct_nr, i { heap_ptr obj = UPARAM(0); + if (NULL == s) + { + fprintf(stderr, "kevent.c: kMapKeyToDir(): NULL passed for parameter +s\n"); + return; + } + + if (GET_SELECTOR(obj, type) == SCI_EVT_KEYBOARD) { /* Keyboard */ int mover = -1; switch (GET_SELECTOR(obj, message)) { @@ -225,6 +233,7 @@ kMapKeyToDir(state_t *s, int funct_nr, i case SCI_K_END: mover = 6; break; case SCI_K_DOWN: mover = 5; break; case SCI_K_PGDOWN: mover = 4; break; + default: break; } if (mover >= 0) { @@ -239,6 +248,12 @@ kMapKeyToDir(state_t *s, int funct_nr, i void kGlobalToLocal(state_t *s, int funct_nr, int argc, heap_ptr argp) { + if (NULL == s) + { + fprintf(stderr, "kevent.c: kGlobalToLocal(): NULL passed for parameter +s\n"); + return; + } + heap_ptr obj = UPARAM_OR_ALT(0, 0); if (obj) { @@ -254,6 +269,12 @@ kGlobalToLocal(state_t *s, int funct_nr, void kLocalToGlobal(state_t *s, int funct_nr, int argc, heap_ptr argp) { + if (NULL == s) + { + fprintf(stderr, "kevent.c: kMapKeyToDir(): NULL passed for parameter +s\n"); + return; + } + heap_ptr obj = UPARAM_OR_ALT(0, 0); if (obj) {
