Note that some of the GLUT_KEY_* constants used for "special" keys overlap the range of ASCII codes used for normal keys, so you can't handle both sets of keys with a single switch statement or group...