mirror of
https://github.com/RubyMetric/chsrc.git
synced 2025-02-09 06:05:15 +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_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", "abcdefg")); // false
|
||||||
putb(xy_str_end_with("abcdef", "def")); // true
|
putb(xy_str_end_with("abcdef", "def")); // true
|
||||||
putb(xy_str_end_with("abcdef", "bcdef")); // 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
|
bool
|
||||||
xy_streql(const char* str1, const char* str2) {
|
xy_streql(const char* str1, const char* str2) {
|
||||||
return strcmp(str1, str2) == 0 ? true : false;
|
return strcmp(str1, str2) == 0 ? true : false;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user