diff options
| -rw-r--r-- | engines/agi/agi.cpp | 14 | 
1 files changed, 13 insertions, 1 deletions
| diff --git a/engines/agi/agi.cpp b/engines/agi/agi.cpp index 17359236f0..5cf82b83bd 100644 --- a/engines/agi/agi.cpp +++ b/engines/agi/agi.cpp @@ -222,7 +222,19 @@ void AgiEngine::processEvents() {  				// Not a special key, so get the ASCII code for it  				key = event.kbd.ascii; -				if (isalpha(key)) {			 +				// Function isalpha is defined in <ctype.h> so the following applies to it: +				// +				// The C Programming Language Standard states: +				//   The header <ctype.h> declares several functions useful for classifying +				//   and mapping characters. In all cases the argument is an int, the value +				//   of which shall be representable as an unsigned char or shall equal the +				//   value of the macro EOF. If the argument has any other value, the +				//   behavior is undefined. +				// +				// For a concrete example (e.g. in Microsoft Visual Studio 2003): +				//   When used with a debug CRT library, isalpha will display a CRT assert +				//   if passed a parameter that isn't EOF or in the range of 0 through 0xFF. +				if (key >= 0 && key <= 0xFF && isalpha(key)) {  					// Key is A-Z.   					// Map Ctrl-A to 1, Ctrl-B to 2, etc.  					if (event.kbd.flags & Common::KBD_CTRL) { | 
