mirror of
https://github.com/RubyMetric/chsrc.git
synced 2025-02-02 11:56:16 +08:00
Add xy_str_to_
styles
This commit is contained in:
parent
b7bbba9f03
commit
5ba6146ca0
17
test_xy.c
17
test_xy.c
|
@ -25,6 +25,23 @@ main (int argc, char const *argv[])
|
|||
puts(xy_strjoin(6, "楚山横地出,", "汉水接天回。", "冠盖非新里,", "章华即旧台。", "习池风景异,", "归路满尘埃。"));
|
||||
|
||||
|
||||
puts(xy_str_to_bold("粗体"));
|
||||
puts(xy_str_to_faint("浅体"));
|
||||
puts(xy_str_to_italic("斜体"));
|
||||
puts(xy_str_to_underline("下划线"));
|
||||
puts(xy_str_to_blink("闪烁"));
|
||||
puts(xy_str_to_cross("删除线"));
|
||||
|
||||
puts(xy_str_to_red("红色"));
|
||||
puts(xy_str_to_green("绿色"));
|
||||
puts(xy_str_to_yellow("黄色"));
|
||||
puts(xy_str_to_blue("蓝色"));
|
||||
puts(xy_str_to_magenta("紫色"));
|
||||
puts(xy_str_to_purple("紫色"));
|
||||
puts(xy_str_to_cyan("青色"));
|
||||
|
||||
|
||||
|
||||
putb(xy_str_end_with("abcdef", "abcdefg")); // false
|
||||
putb(xy_str_end_with("abcdef", "def")); // true
|
||||
putb(xy_str_end_with("abcdef", "bcdef")); // true
|
||||
|
|
92
xy.h
92
xy.h
|
@ -264,6 +264,98 @@ xy_strdup(const char* str)
|
|||
}
|
||||
|
||||
|
||||
#define XY_STR_BOLD 1
|
||||
#define XY_STR_FAINT 2
|
||||
#define XY_STR_ITALIC 3
|
||||
#define XY_STR_UNDERLINE 4
|
||||
#define XY_STR_BLINK 5
|
||||
#define XY_STR_CROSS 9
|
||||
|
||||
#define xy_str_to_bold(str) xy_str_to_terminal_style_(XY_STR_BOLD, str)
|
||||
#define xy_str_to_faint(str) xy_str_to_terminal_style_(XY_STR_FAINT, str)
|
||||
#define xy_str_to_italic(str) xy_str_to_terminal_style_(XY_STR_ITALIC, str)
|
||||
#define xy_str_to_underline(str) xy_str_to_terminal_style_(XY_STR_UNDERLINE,str)
|
||||
#define xy_str_to_blink(str) xy_str_to_terminal_style_(XY_STR_BLINK, str)
|
||||
#define xy_str_to_cross(str) xy_str_to_terminal_style_(XY_STR_CROSS, str)
|
||||
|
||||
#define XY_STR_RED 31
|
||||
#define XY_STR_GREEN 32
|
||||
#define XY_STR_YELLOW 33
|
||||
#define XY_STR_BLUE 34
|
||||
#define XY_STR_MAGENTA 35
|
||||
#define XY_STR_CYAN 36
|
||||
|
||||
#define xy_str_to_red(str) xy_str_to_terminal_style_(XY_STR_RED, str)
|
||||
#define xy_str_to_green(str) xy_str_to_terminal_style_(XY_STR_GREEN, str)
|
||||
#define xy_str_to_yellow(str) xy_str_to_terminal_style_(XY_STR_YELLOW, str)
|
||||
#define xy_str_to_blue(str) xy_str_to_terminal_style_(XY_STR_BLUE, str)
|
||||
#define xy_str_to_magenta(str) xy_str_to_terminal_style_(XY_STR_MAGENTA,str)
|
||||
#define xy_str_to_purple xy_str_to_magenta
|
||||
#define xy_str_to_cyan(str) xy_str_to_terminal_style_(XY_STR_CYAN, str)
|
||||
|
||||
char*
|
||||
xy_str_to_terminal_style_(int style, const char* str)
|
||||
{
|
||||
char* color_fmt_str = NULL;
|
||||
if (XY_STR_RED==style)
|
||||
{
|
||||
color_fmt_str = "\e[31m%s\e[0m"; // 红色
|
||||
}
|
||||
else if (XY_STR_GREEN==style)
|
||||
{
|
||||
color_fmt_str = "\e[32m%s\e[0m"; // 绿色
|
||||
}
|
||||
else if (XY_STR_YELLOW==style)
|
||||
{
|
||||
color_fmt_str = "\e[33m%s\e[0m"; // 黄色
|
||||
}
|
||||
else if (XY_STR_BLUE==style)
|
||||
{
|
||||
color_fmt_str = "\e[34m%s\e[0m"; // 蓝色
|
||||
}
|
||||
else if (XY_STR_MAGENTA==style)
|
||||
{
|
||||
color_fmt_str = "\e[35m%s\e[0m"; // 蓝色
|
||||
}
|
||||
else if (XY_STR_CYAN==style)
|
||||
{
|
||||
color_fmt_str = "\e[36m%s\e[0m"; // 蓝色
|
||||
}
|
||||
|
||||
|
||||
else if (XY_STR_BOLD==style)
|
||||
{
|
||||
color_fmt_str = "\e[1m%s\e[0m";
|
||||
}
|
||||
else if (XY_STR_FAINT==style)
|
||||
{
|
||||
color_fmt_str = "\e[2m%s\e[0m";
|
||||
}
|
||||
else if (XY_STR_ITALIC==style)
|
||||
{
|
||||
color_fmt_str = "\e[3m%s\e[0m";
|
||||
}
|
||||
else if (XY_STR_UNDERLINE==style)
|
||||
{
|
||||
color_fmt_str = "\e[4m%s\e[0m";
|
||||
}
|
||||
else if (XY_STR_BLINK==style)
|
||||
{
|
||||
color_fmt_str = "\e[5m%s\e[0m";
|
||||
}
|
||||
else if (XY_STR_CROSS==style)
|
||||
{
|
||||
color_fmt_str = "\e[9m%s\e[0m";
|
||||
}
|
||||
|
||||
// -2 把中间%s减掉
|
||||
size_t len = strlen(color_fmt_str) -2;
|
||||
char* buf = malloc(strlen(str) + len + 1);
|
||||
sprintf (buf, color_fmt_str, str);
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
xy_streql(const char* str1, const char* str2) {
|
||||
return strcmp(str1, str2) == 0 ? true : false;
|
||||
|
|
Loading…
Reference in New Issue
Block a user