audk/StdLib/LibC
darylm503 5a5221122b StdLib/LibC/Locale/multibyte_Utf8.c: Fix obscure corner cases in wide to multibyte and multibyte to wide character conversions. The majority of problems center around the interpretation of the Length or Limit parameter when the Destination parameter is NULL.
DecodeOneStateful: Properly handle combinations of Src, Dest, or Len being NULL or 0.

EncodeUtf8: Do not zero-terminate the result string in this worker function.

mbsrtowcs: Remove test for **src == '\0', as per ISO/IEC 9899:199409.  Allows "".

wcsrtombs:  The C Language standard, ISO/IEC 9899:199409, states that the wcsrtombs() function will stop before encountering the terminating NUL character only if Dest is NOT NULL.  This implies that if Dest is NULL, the Limit parameter will be ignored.  In order to avoid system hangs, if Dest is NULL a Limit value of ASCII_STRING_MAX is automatically used.  Also fixed a typo in the function header comment.

With these changes, StdLib now passes all of the C Language Standards Compliance Tests for ISO/IEC 9899:199409 (C95).

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by:  daryl.mcdaniel@intel.com
Reviewed-by:    erik.c.bjorge@intel.com


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14358 6f19259b-4bc3-4df7-8a09-765794883524
2013-05-15 01:59:11 +00:00
..
CRT Add device abstraction code for the UEFI Console and UEFI Shell-based file systems. 2011-06-28 02:34:10 +00:00
Containers StdLib: Add terminal type line editing (Interactive IO) for console devices. 2012-12-11 21:19:14 +00:00
Ctype StdLib: Add isDirSep character classification macro and function. Implement several Posix functions and clean up EfiSysCall.h. Align file mode handling with UEFI file protocol flags. 2011-11-30 00:52:45 +00:00
Locale StdLib/LibC/Locale/multibyte_Utf8.c: Fix obscure corner cases in wide to multibyte and multibyte to wide character conversions. The majority of problems center around the interpretation of the Length or Limit parameter when the Destination parameter is NULL. 2013-05-15 01:59:11 +00:00
Main StdLib: Add terminal type line editing (Interactive IO) for console devices. 2012-12-11 21:19:14 +00:00
Math Standard Libraries for EDK II. 2011-04-27 21:42:16 +00:00
NetUtil Add Socket Libraries. 2011-07-30 00:30:44 +00:00
Signal Standard Libraries for EDK II. 2011-04-27 21:42:16 +00:00
StdLib StdLib/LibC/StdLib/Malloc.c: Make the free() function conform to the ISO/IEC 9899 (C95) specification. 2012-09-24 22:44:03 +00:00
Stdio StdLib: Fix issue with Canonical output expansion of NL to CR NL and similar expansions. 2012-12-21 18:19:41 +00:00
String StdLib: Fix strcmp so that comparisons are case sensitive. Simplified code for strcasecmp. 2011-11-01 00:19:51 +00:00
Time StdLib: Add isDirSep character classification macro and function. Implement several Posix functions and clean up EfiSysCall.h. Align file mode handling with UEFI file protocol flags. 2011-11-30 00:52:45 +00:00
Uefi StdLib: Correct two instances of mismatch between function declaration and definition causing GCC compile errors. 2013-01-16 23:45:54 +00:00
Wchar Add device abstraction code for the UEFI Console and UEFI Shell-based file systems. 2011-06-28 02:34:10 +00:00
gdtoa StdLib: Fix printf issues with floating point and wide character strings. Also resolves a compilation issue with VS2010. See ISSUES.txt items 1, 11. 2013-03-11 18:00:30 +00:00
LibC.inf StdLib: Eliminate TimerLib dependencies. 2011-11-11 00:32:31 +00:00