]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/Console/TerminalDxe/ansi.c
Check in following modules,
[mirror_edk2.git] / MdeModulePkg / Universal / Console / TerminalDxe / ansi.c
1 /*++
2
3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 ansi.c
15
16 Abstract:
17
18
19 Revision History
20 --*/
21
22
23 //
24 // Include common header file for this module.
25 //
26 #include "CommonHeader.h"
27
28 #include "Terminal.h"
29
30 VOID
31 AnsiRawDataToUnicode (
32 IN TERMINAL_DEV *TerminalDevice
33 )
34 {
35 UINT8 RawData;
36
37 //
38 // pop the raw data out from the raw fifo,
39 // and translate it into unicode, then push
40 // the unicode into unicode fifo, until the raw fifo is empty.
41 //
42 while (!IsRawFiFoEmpty (TerminalDevice)) {
43
44 RawFiFoRemoveOneKey (TerminalDevice, &RawData);
45
46 UnicodeFiFoInsertOneKey (TerminalDevice, (UINT16) RawData);
47 }
48 }
49
50 EFI_STATUS
51 AnsiTestString (
52 IN TERMINAL_DEV *TerminalDevice,
53 IN CHAR16 *WString
54 )
55 {
56 CHAR8 GraphicChar;
57
58 //
59 // support three kind of character:
60 // valid ascii, valid efi control char, valid text graphics.
61 //
62 for (; *WString != CHAR_NULL; WString++) {
63
64 if ( !(TerminalIsValidAscii (*WString) ||
65 TerminalIsValidEfiCntlChar (*WString) ||
66 TerminalIsValidTextGraphics (*WString, &GraphicChar, NULL) )) {
67
68 return EFI_UNSUPPORTED;
69 }
70 }
71
72 return EFI_SUCCESS;
73 }