]>
git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/Console/TerminalDxe/Ansi.c
2 Implementation of translation upon PC ANSI.
4 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
13 Translate all raw data in the Raw FIFO into unicode, and insert
14 them into Unicode FIFO.
16 @param TerminalDevice The terminal device.
20 AnsiRawDataToUnicode (
21 IN TERMINAL_DEV
*TerminalDevice
27 // pop the raw data out from the raw fifo,
28 // and translate it into unicode, then push
29 // the unicode into unicode fifo, until the raw fifo is empty.
31 while (!IsRawFiFoEmpty (TerminalDevice
) && !IsUnicodeFiFoFull (TerminalDevice
)) {
33 RawFiFoRemoveOneKey (TerminalDevice
, &RawData
);
35 UnicodeFiFoInsertOneKey (TerminalDevice
, (UINT16
) RawData
);
40 Check if input string is valid Ascii string, valid EFI control characters
41 or valid text graphics.
43 @param TerminalDevice The terminal device.
44 @param WString The input string.
46 @retval EFI_UNSUPPORTED If not all input characters are valid.
47 @retval EFI_SUCCESS If all input characters are valid.
52 IN TERMINAL_DEV
*TerminalDevice
,
59 // support three kind of character:
60 // valid ascii, valid efi control char, valid text graphics.
62 for (; *WString
!= CHAR_NULL
; WString
++) {
64 if ( !(TerminalIsValidAscii (*WString
) ||
65 TerminalIsValidEfiCntlChar (*WString
) ||
66 TerminalIsValidTextGraphics (*WString
, &GraphicChar
, NULL
) )) {
68 return EFI_UNSUPPORTED
;