tree e87a5e8015efddab003ebd1d5c64ecefefb20b73
parent 7ce1b4475f417b682669b7205bc851c6b36cb9b6
author Sam Lantinga <slouken@libsdl.org> 1362931418 -0700
committer Sam Lantinga <slouken@libsdl.org> 1362931418 -0700

Fixed bug 1748 - Patch for errors and mistakes in SDL 2 README files.

Philipp Wiesemann

SDL's README files seem to contain multiple errors and mistakes. I attached a patch with changes and updates.

README:
 * removed Windows CE because no more supported

README-SDL.txt:
 * corrected spelling mistake

README.DirectFB:
 * corrected spelling mistakes

README.MacOSX:
 * corrected spelling mistakes

README.Platforms:
 * changed Android version to match AndroidManifest.xml

README.Porting:
 * added missing directories from list
 * removed cdrom directories from list

README.android:
 * updated required NDK revision
 * add project.properties to list
 * changed lower limit for to android-10 and removed upper
 * added a statement why older devices not supported
 * added correct dates to statements about OpenGL ES
 * added info about Google's device numbers and date
 * corrected spelling mistakes

README.gesture:
 * corrected spelling mistakes

README.pandora:
 * corrected spelling mistake

README.touch:
 * changed that values are no in range 0..1
 * updated the names of some functions
 * updated the notes about usage
 * corrected spelling mistakes
 * added info that API changed near original author contact
