чување d7373891edc4676918efe754e68485719a2daa25
родитељ 6cc1b47eb0a4b1dd8a7f3fc9b0494769d44bdd59
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Fri, 25 Feb 2022 17:54:39 +0100
Add `e` (empty) set specifier (https://aur.archlinux.org/packages/table#comment-853578)
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
| A | THANKS | | | 3 | +++ |
| M | TODO | | | 2 | +- |
| M | defs.h | | | 68 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- |
| M | table.c | | | 35 | +++++++++++++++++++++++++++++++++++ |
измењених датотека: 4, додавања: 105(+), брисања: 3(-)
diff --git a/THANKS b/THANKS
@@ -0,0 +1,3 @@
+m040601 <https://aur.archlinux.org/account/m040601>
+ Suggestion about `--symbols=nn` which became `e` set specifier
+ https://aur.archlinux.org/packages/table#comment-853578
diff --git a/TODO b/TODO
@@ -1,7 +1,7 @@
TODO
====
- [ ] Add "e" (=empty) specifier (thanks, m040601:
+ [x] Add "e" (=empty) specifier (thanks, m040601:
https://aur.archlinux.org/packages/table#comment-853578)
[x] Convert while to goto in main to ease indenting
diff --git a/defs.h b/defs.h
@@ -35,7 +35,8 @@ enum
{
TABLE_SYMBOLS_ASCII,
TABLE_SYMBOLS_SINGLE,
- TABLE_SYMBOLS_DOUBLE
+ TABLE_SYMBOLS_DOUBLE,
+ TABLE_SYMBOLS_EMPTY
};
enum
@@ -44,7 +45,14 @@ enum
TABLE_INNER_SINGLE_SINGLE,
TABLE_INNER_SINGLE_DOUBLE,
TABLE_INNER_DOUBLE_SINGLE,
- TABLE_INNER_DOUBLE_DOUBLE
+ TABLE_INNER_DOUBLE_DOUBLE,
+ TABLE_INNER_EMPTY_EMPTY,
+ TABLE_INNER_ASCII_EMPTY,
+ TABLE_INNER_SINGLE_EMPTY,
+ TABLE_INNER_DOUBLE_EMPTY,
+ TABLE_INNER_EMPTY_ASCII,
+ TABLE_INNER_EMPTY_SINGLE,
+ TABLE_INNER_EMPTY_DOUBLE,
};
static const u32* table_symbols[][9] =
@@ -66,6 +74,12 @@ static const u32* table_symbols[][9] =
(u32*)L"\u2554", (u32*)L"\u2550", (u32*)L"\u2557",
(u32*)L"\u2551", (u32*)L" ", (u32*)L"\u2551",
(u32*)L"\u255a", (u32*)L"\u2550", (u32*)L"\u255d",
+ },
+ [TABLE_SYMBOLS_EMPTY] = {
+ // empty
+ (u32*)L" ", (u32*)L" ", (u32*)L" ",
+ (u32*)L" ", (u32*)L" ", (u32*)L" ",
+ (u32*)L" ", (u32*)L" ", (u32*)L" ",
}
};
@@ -104,5 +118,55 @@ static const u32* table_inner_symbols[][3] =
(u32*)L"\u2566",
(u32*)L"\u2551",
(u32*)L"\u2569",
+ },
+
+ [TABLE_INNER_EMPTY_EMPTY] = {
+ // empty -> empty
+ (u32*)L" ",
+ (u32*)L" ",
+ (u32*)L" ",
+ },
+
+ [TABLE_INNER_ASCII_EMPTY] = {
+ // ascii -> empty
+ (u32*)L"-",
+ (u32*)L" ",
+ (u32*)L"-",
+ },
+
+ [TABLE_INNER_SINGLE_EMPTY] = {
+ // single -> empty
+ (u32*)L"\u2500",
+ (u32*)L" ",
+ (u32*)L"\u2500",
+ },
+
+ [TABLE_INNER_DOUBLE_EMPTY] = {
+ // double -> empty
+ (u32*)L"\u2550",
+ (u32*)L" ",
+ (u32*)L"\u2550",
+ },
+
+ [TABLE_INNER_EMPTY_ASCII] = {
+ // empty -> ascii
+ (u32*)L" ",
+ (u32*)L"|",
+ (u32*)L" ",
+ },
+
+ [TABLE_INNER_EMPTY_SINGLE] = {
+ // empty -> single
+ (u32*)L" ",
+ (u32*)L"\u2502",
+ (u32*)L" ",
+ },
+
+ [TABLE_INNER_EMPTY_DOUBLE] = {
+ // empty -> double
+ (u32*)L" ",
+ (u32*)L"\u2551",
+ (u32*)L" ",
}
+
};
diff --git a/table.c b/table.c
@@ -173,6 +173,41 @@ set_symbol_set(char* arg, int* current_symbol_set, int* current_inner_symbol_set
*current_symbol_set = TABLE_SYMBOLS_DOUBLE;
*current_inner_symbol_set = TABLE_INNER_DOUBLE_DOUBLE;
}
+ else if (!strcmp(arg, "ee"))
+ {
+ *current_symbol_set = TABLE_SYMBOLS_EMPTY;
+ *current_inner_symbol_set = TABLE_INNER_EMPTY_EMPTY;
+ }
+ else if (!strcmp(arg, "ae"))
+ {
+ *current_symbol_set = TABLE_SYMBOLS_ASCII;
+ *current_inner_symbol_set = TABLE_INNER_ASCII_EMPTY;
+ }
+ else if (!strcmp(arg, "se"))
+ {
+ *current_symbol_set = TABLE_SYMBOLS_SINGLE;
+ *current_inner_symbol_set = TABLE_INNER_SINGLE_EMPTY;
+ }
+ else if (!strcmp(arg, "de"))
+ {
+ *current_symbol_set = TABLE_SYMBOLS_DOUBLE;
+ *current_inner_symbol_set = TABLE_INNER_DOUBLE_EMPTY;
+ }
+ else if (!strcmp(arg, "ea"))
+ {
+ *current_symbol_set = TABLE_SYMBOLS_EMPTY;
+ *current_inner_symbol_set = TABLE_INNER_EMPTY_ASCII;
+ }
+ else if (!strcmp(arg, "es"))
+ {
+ *current_symbol_set = TABLE_SYMBOLS_EMPTY;
+ *current_inner_symbol_set = TABLE_INNER_EMPTY_SINGLE;
+ }
+ else if (!strcmp(arg, "ed"))
+ {
+ *current_symbol_set = TABLE_SYMBOLS_EMPTY;
+ *current_inner_symbol_set = TABLE_INNER_EMPTY_DOUBLE;
+ }
else
{
return error(1, "Invalid symbol set: %s", arg);