view test/testtypes.c @ 1282:217f5d5a49e5

Date: Sat, 15 Jan 2005 02:01:51 +0000 (UTC) From: jimrandomh Subject: [SDL] Re: Modifier keys pressed during initialization stick I wrote a simple test program which initializes SDL, prints the SDL version number, then prints any keydown and keyup events with their modifiers. (Source code below). Compilation was done using Visual Studio 6, release mode. My test sequence was: Start a command prompt. Type the name of the test program. shift down enter down (program starts) Wait for window to appear enter up shift up spacebar down spacebar up Under Windows 98, the output was correct: SDL 1.2.8 left shift down shift-return down shift-return up left shift up space down space up Under Windows 2000 and under Windows XP, the output was: SDL 1.2.8 shift-space down shift-space up Since shift was not held at the time space was pressed, this is incorrect. Similar results were observed with launching in different ways (including double-clicking in Windows Explorer), so it does not depend on the launching terminal.
author Sam Lantinga <slouken@libsdl.org>
date Sun, 29 Jan 2006 07:57:13 +0000
parents d93862a3d821
children 835c1831f903
line wrap: on
line source


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "SDL_main.h"
#include "SDL_types.h"

/*
 * Watcom C flags these as Warning 201: "Unreachable code" if you just
 *  compare them directly, so we push it through a function to keep the
 *  compiler quiet.  --ryan.
 */
static int badsize(size_t sizeoftype, size_t hardcodetype)
{
    return sizeoftype != hardcodetype;
}

int main(int argc, char *argv[])
{
	int error = 0;
	int verbose = 1;

	if ( argv[1] && (strcmp(argv[1], "-q") == 0) )
		verbose = 0;

	if ( badsize(sizeof(Uint8), 1) ) {
		if ( verbose )
			printf("sizeof(Uint8) != 1, instead = %d\n",
								sizeof(Uint8));
		++error;
	}
	if ( badsize(sizeof(Uint16), 2) ) {
		if ( verbose )
			printf("sizeof(Uint16) != 2, instead = %d\n",
								sizeof(Uint16));
		++error;
	}
	if ( badsize(sizeof(Uint32), 4) ) {
		if ( verbose )
			printf("sizeof(Uint32) != 4, instead = %d\n",
								sizeof(Uint32));
		++error;
	}
#ifdef SDL_HAS_64BIT_TYPE
	if ( badsize(sizeof(Uint64), 8) ) {
		if ( verbose )
			printf("sizeof(Uint64) != 8, instead = %d\n",
								sizeof(Uint64));
		++error;
	}
#else
	if ( verbose ) {
		printf("WARNING: No 64-bit datatype on this platform\n");
	}
#endif
	if ( verbose && ! error )
		printf("All data types are the expected size.\n");

	return( error ? 1 : 0 );
}