[fpc-devel] Compiler message colour scheme

J. Gareth Moreton gareth at moreton-family.com
Sun Nov 22 18:09:56 CET 2020


Personally I'd write the function as something like "function 
GenerateColorCode(codes: array of Byte): ansistring;", mostly in 
anticipation of pure functions, because then the compiler can just 
replace the call with the relevant string at compile time, but that's a 
long way off!

Gareth aka. Kit

On 22/11/2020 16:58, Ryan Joseph via fpc-devel wrote:
>
>> On Nov 22, 2020, at 9:29 AM, Florian Klämpfl via fpc-devel <fpc-devel at lists.freepascal.org> wrote:
>>
>> Because I have no Mac so I couldn't test it.
> I see. It's this easy.
>
> const
>    ANSI_FORE_BLACK           = 30;
>    ANSI_FORE_RED             = 31;
>    ANSI_FORE_GREEN           = 32;
>    ANSI_FORE_YELLOW          = 33;
>    ANSI_FORE_BLUE            = 34;
>    ANSI_FORE_MAGENTA         = 35;
>    ANSI_FORE_CYAN            = 36;
>    ANSI_FORE_WHITE           = 37;
>    ANSI_FORE_RESET           = 39;
>
>    ANSI_BACK_BLACK           = 40;
>    ANSI_BACK_RED             = 41;
>    ANSI_BACK_GREEN           = 42;
>    ANSI_BACK_YELLOW          = 43;
>    ANSI_BACK_BLUE            = 44;
>    ANSI_BACK_MAGENTA         = 45;
>    ANSI_BACK_CYAN            = 46;
>    ANSI_BACK_WHITE           = 47;
>    ANSI_BACK_RESET           = 49;
>
>    ANSI_STYLE_BOLD           = 1;
>    ANSI_STYLE_ITALIC         = 3;
>    ANSI_STYLE_UNDERLINE      = 4;
>    ANSI_STYLE_BLINK          = 5;
>
>
> procedure PrintColor(codes: array of byte; str: ansistring);
> var
>    attrs: string;
>    code: byte;
> begin
>    attrs := '';
>    for code in codes do
>      begin
>        if attrs <> '' then
>          attrs += ';';
>        attrs += IntToStr(code);
>      end;
>    writeln(#&033,'[',attrs,'m',str,#&033,'[',0,'m');
> end;
>
> // prints a blinking, bold red text on a white background
> PrintColor([ANSI_BACK_WHITE, ANSI_FORE_RED, ANSI_STYLE_BLINK, ANSI_STYLE_BOLD], 'Hello World');
>
> Regards,
> 	Ryan Joseph
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>

-- 
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus



More information about the fpc-devel mailing list