IN INTN Increment\r
)\r
{\r
- INTN Index;\r
- if(Increment != 1) {\r
- for (Index = 0; Index < Length && Buffer < EndBuffer; Index++) {\r
- *Buffer = (CHAR8) Character;\r
- *(Buffer + 1) = (CHAR8) (Character >> 8);\r
- Buffer += Increment;\r
- }\r
+ UINTN FillBufferSize;\r
+\r
+ if(Increment == 1) {\r
+ FillBufferSize = MIN (Length, (EndBuffer - Buffer));\r
+ Buffer = SetMem (Buffer, FillBufferSize, (UINT8) Character);\r
} else {\r
- for (Index = 0; Index < Length && Buffer < EndBuffer; Index++) {\r
- *Buffer = (CHAR8) Character;\r
- Buffer += Increment;\r
- }\r
+ FillBufferSize = MIN (Length << 1, (EndBuffer - Buffer));\r
+ Buffer = SetMem16 (Buffer, FillBufferSize, (UINT16) Character);\r
}\r
- return Buffer;\r
+ \r
+ return Buffer + FillBufferSize;\r
}\r
\r
/**\r
Print worker function that convert a decimal number to a string in Buffer.\r
\r
@param Buffer Location to place the Unicode or ASCII string of Value.\r
- @param Value Value to convert to a Decimal or Hexidecimal string in Buffer.\r
+ @param Value Value to convert to a Decimal or Hexadecimal string in Buffer.\r
@param Radix Radix of the value\r
\r
@return Number of characters printed.\r
#include <Library/PrintLib.h>\r
#include <Library/BaseLib.h>\r
#include <Library/DebugLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
\r
\r
//\r
Print worker function that convert a decimal number to a string in Buffer.\r
\r
@param Buffer Location to place the Unicode or ASCII string of Value.\r
- @param Value Value to convert to a Decimal or Hexidecimal string in Buffer.\r
+ @param Value Value to convert to a Decimal or Hexadecimal string in Buffer.\r
@param Radix Radix of the value\r
\r
@return Number of characters printed.\r