[I'd be surprised if no-one else has encountered this yet, but I
haven't seen it reported in the list archives.]
The value which GLUT passes as the first argument to the mouse
callback isn't restricted to 0, 1 and 2, corresponding to the manifest
constants GLUT_{LEFT,MIDDLE,RIGHT}_BUTTON respectively.
On a system with a wheel mouse, the mouse callback may also be passed
the values 3 or 4; this causes the program to terminate with e.g.
Fail: unmarshall_MouseButton: unknown value (3)
AFAICT, this can't be trapped.
--
Glynn Clements <glynn.clements(a)virgin.net>