Listing 5 (key.c) Routines for Manipulating the Key Reassignment Buffers
#include "char.h" /* * k_seek() * * k_ seek() finds a buffer based on the global variable * 'keycheck'. the first match returns a pointer to the * replacement string; the variable 'len' is also set to * point to the length field. If no match, then it returns * a null pointer */ char *k_seek() { for (kp = &kbuffer[ 0 ], k = 0; k < NKEYS; k++, kp++) { if (kp->keystroke == keycheck) { len = &(kp->length); ptr = kp->buffer; return ptr; } } return ((char *) 0); } /* * k_alloc() * * k_alloc() searches for an unallocated key buffer. * It does so by searching for a zero keystroke field. * Simple. */ char *k_alloc() { keycheck = 0; return k_seek(); }