Colorful printf for C Code ( ascii color only ), decorate your terminal with more colors.
A light, self-adapting wrapper of printf with several useful features, makes easy work for changing foreground, background and text action ( highlight, underline, blink ... ) . It makes you easy to enable and disable colorizing in your c&cpp's output.
coprintf("^r%s","hello world !");
or
coprintf("^rhello world !");
coprintf("^r^Y^h^u%s","hello world !");
set [ red, yellow, highlight & underline ] for "hello", [ cyan, red, reverse ] for "world", [ green, black, blink ] for "!" :
coprintf("^r^Y^h^u%shello^d ^c^R^eworld^d ^g^K^l!");
Please refer to demo.c for more examples:
Simply include the header in your files, like this:
#include "coprintf.h"
coprintf("<leader>rHello <leader>bWorld");
ceprintf("<leader>rHello <leader>bWorld");
coprintf("<leader>r<leader>YHello <leader>b<leader>CWorld");
ceprintf("<leader>r<leader>YHello <leader>b<leader>CWorld");
| macro CO_PRINTF_INACTIVE defined ? | colorize |
|---|---|
| yes | not colorful |
| no | colorful |
| output fd | colorize |
|---|---|
| not tty | not colorful |
| tty | colorful |
What's <Leader> Character ?
We define a character as the <leader> which will combine the mode character as an escape character.
The default <leader> is "^", but you can customize it to any char you want.
| mode | color |
|---|---|
<leader>k | black |
<leader>r | red |
<leader>g | green |
<leader>y | yellow |
<leader>b | blue |
<leader>p | purple |
<leader>c | cyan |
<leader>w | write |
| mode | color |
|---|---|
<leader>K | black |
<leader>R | red |
<leader>G | green |
<leader>Y | yellow |
<leader>B | blue |
<leader>P | purple |
<leader>C | cyan |
<leader>W | write |
| mode | action |
|---|---|
<leader>d | done |
<leader>h | highlight |
<leader>u | underline |
<leader>e | reverse |
<leader>l | blink |
<leader>v | invisible |
The mode control formats are easily memorized:
Foreground : almost the lowercase of color mode head, "black" is exceptive.
Background : almost the uppercase of color mode head, "black" is exceptive.
Controling : almost the lowercase of mode head, with some exceptions.
You can customize the below Macros in coprintf.h:
Default: not set.
coprintf will be disabled if CO_PRINTF_INACTIVE is set in coprintf.h like this:
#define CO_PRINTF_INACTIVE
Or compiling with option like this:
-DCO_PRINTF_INACTIVE
Default: '^'
The <leader> char can be customized by CO_PRINTF_LEADER:
/* set '#' as the <leader> char*/
#define CO_PRINTF_LEADER '#'
coprintfis self-adapting. When the colorful output is redirected to other file,coprintfwill disabled color automatically.- Action flag
<leader>dwill turn off all settings ( fg, bg and action ), Thus, in single command, you have to set flags again to make it work well once there are other strings after<leader>d. - If you want to print the itself, try
<leader><leader>; If the char after leader isn't defined as an escape char, it will be ignored. - It's not necessary use
<leader>dat the begin/end of commands,coprintfdo it automatically. - Actions can overlaied.
This project is really same as cecho, which supports similar functions to echo in shell script.

