ALib C++ Framework
by
Library Version: 2605 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
aloxinit.cpp
1
2#if !DOXYGEN
5#endif // !DOXYGEN
6
7namespace alib::lox {
8
9void ESC::ReplaceToReadable( AString& target, integer startIdx ) {
10 while( (startIdx= target.IndexOf( '\033', startIdx ) ) >= 0 ) {
11 String32 val("{ESC::");
12 character c= target.CharAt( startIdx + 1 );
13 character c2= target.CharAt( startIdx + 2 );
14
15 const character* code= A_CHAR("ERROR");
16
17 // colors
18 if( c == 'c' || c == 'C' ) {
19 if ( c == 'C' )
20 val._<NC>( A_CHAR("BG_") );
21 switch( c2 - '0' ) {
22 case 0: code= A_CHAR("RED") ; break;
23 case 1: code= A_CHAR("GREEN") ; break;
24 case 2: code= A_CHAR("YELLOW") ; break;
25 case 3: code= A_CHAR("BLUE") ; break;
26 case 4: code= A_CHAR("MAGENTA") ; break;
27 case 5: code= A_CHAR("CYAN") ; break;
28 case 6: code= A_CHAR("BLACK") ; break;
29 case 7: code= A_CHAR("WHITE") ; break;
30 case 8: code= A_CHAR("GRAY") ; break;
31 case 9: code= A_CHAR("RESET") ; break;
32 default: code= A_CHAR("COL_ERR"); break;
33 }
34
35 }
36
37 // styles
38 else if( c == 's' ) {
39 switch( c2 ) {
40 case 'B': code= A_CHAR("BOLD") ; break;
41 case 'I': code= A_CHAR("ITALICS") ; break;
42 case 'r': code= A_CHAR("STYLE_RESET") ; break;
43 case 'a': code= A_CHAR("RESET") ; break;
44 default: code= A_CHAR("STYLE_ERR") ; break;
45 } }
46
47 // styles
48 else if( c == 'l' ) {
49 switch( c2 ) {
50 case 'S': code= A_CHAR("URL_START") ; break;
51 case 'E': code= A_CHAR("URL_END") ; break;
52 default: code= A_CHAR("URL_ERR") ; break;
53 } }
54
55 // others
56 else if( c == 't' && c2 == '0' ) code= A_CHAR("TAB");
57 else if( c == 'A' && c2 == '0' ) code= A_CHAR("EOMETA");
58
59 // Replace
60 val._<NC>(code)._('}');
61 target.ReplaceSubstring<NC>( val, startIdx, 3 );
62 startIdx+= 3;
63} }
64
65} // namespace [alib::lox]
#define A_CHAR(STR)
#define ALIB_BOXING_VTABLE_DEFINE(TMapped, Identifier)
static void ReplaceToReadable(AString &target, integer startIdx)
Definition aloxinit.cpp:9
TAString & ReplaceSubstring(const TString< TChar > &src, integer regionStart, integer regionLength)
TAString & _(const TAppendable &src)
integer IndexOf(TChar needle, integer startIdx=0) const
Definition string.hpp:799
TChar CharAt(integer idx) const
Definition string.hpp:399
lang::integer integer
Type alias in namespace #"%alib".
Definition integers.hpp:149
strings::TAString< character, lang::HeapAllocator > AString
Type alias in namespace #"%alib".
characters::character character
Type alias in namespace #"%alib".
LocalString< 32 > String32
Type alias name for #"TLocalString;TLocalString<character,32>".