]>
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
12 Translate all raw data in the Raw FIFO into unicode, and insert
13 them into Unicode FIFO.
15 @param TerminalDevice The terminal device.
19 AnsiRawDataToUnicode (
20 IN TERMINAL_DEV
*TerminalDevice
26 // pop the raw data out from the raw fifo,
27 // and translate it into unicode, then push
28 // the unicode into unicode fifo, until the raw fifo is empty.
30 while (!IsRawFiFoEmpty (TerminalDevice
) && !IsUnicodeFiFoFull (TerminalDevice
)) {
31 RawFiFoRemoveOneKey (TerminalDevice
, &RawData
);
33 UnicodeFiFoInsertOneKey (TerminalDevice
, (UINT16
)RawData
);
38 Check if input string is valid Ascii string, valid EFI control characters
39 or valid text graphics.
41 @param TerminalDevice The terminal device.
42 @param WString The input string.
44 @retval EFI_UNSUPPORTED If not all input characters are valid.
45 @retval EFI_SUCCESS If all input characters are valid.
50 IN TERMINAL_DEV
*TerminalDevice
,
57 // support three kind of character:
58 // valid ascii, valid efi control char, valid text graphics.
60 for ( ; *WString
!= CHAR_NULL
; WString
++) {
61 if ( !(TerminalIsValidAscii (*WString
) ||
62 TerminalIsValidEfiCntlChar (*WString
) ||
63 TerminalIsValidTextGraphics (*WString
, &GraphicChar
, NULL
)))
65 return EFI_UNSUPPORTED
;