Print better URI - sacc - sacc(omys), simple console gopher client | |
git clone git://bitreich.org/sacc/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65… | |
Log | |
Files | |
Refs | |
Tags | |
LICENSE | |
--- | |
commit 3a53a319d4ade0631accac3fd9177e6fbfc49c7f | |
parent 26bc04284d9becc870a6a036a9a6f9bdfba8ba2a | |
Author: Quentin Rameau <[email protected]> | |
Date: Mon, 28 Oct 2019 02:12:50 +0100 | |
Print better URI | |
Diffstat: | |
M ui_ti.c | 20 ++++++++++++++------ | |
M ui_txt.c | 27 ++++++++++++++++++++++----- | |
2 files changed, 36 insertions(+), 11 deletions(-) | |
--- | |
diff --git a/ui_ti.c b/ui_ti.c | |
@@ -218,12 +218,20 @@ displayuri(Item *item) | |
item->selector, item->host, item->port); | |
break; | |
default: | |
- fmt = strcmp(item->port, "70") ? | |
- "gopher://%1$s:%4$s/%2$c%3$s" : | |
- "gopher://%s/%c%s"; | |
- n = snprintf(bufout, sizeof(bufout), fmt, | |
- item->host, item->type, | |
- item->selector, item->port); | |
+ n = snprintf(bufout, sizeof(bufout), "gopher://%s", item->host… | |
+ | |
+ if (n < sizeof(bufout) && strcmp(item->port, "70")) { | |
+ n += snprintf(bufout+n, sizeof(bufout)-n, ":%s", | |
+ item->port); | |
+ } | |
+ if (n < sizeof(bufout)) { | |
+ n += snprintf(bufout+n, sizeof(bufout)-n, "/%c%s", | |
+ item->type, item->selector); | |
+ } | |
+ if (n < sizeof(bufout) && item->type == '7' && item->tag) { | |
+ n += snprintf(bufout+n, sizeof(bufout)-n, " %s", | |
+ item->tag + strlen(item->selector)); | |
+ } | |
break; | |
} | |
diff --git a/ui_txt.c b/ui_txt.c | |
@@ -199,11 +199,28 @@ printuri(Item *item, size_t i) | |
item->selector, item->host, item->port); | |
break; | |
default: | |
- fmt = strcmp(item->port, "70") ? | |
- "%1$zu: %2$s: gopher://%3$s:%6$s/%4$c%5$s" : | |
- "%zu: %s: gopher://%s/%c%s"; | |
- n = snprintf(bufout, sizeof(bufout), fmt, i, item->username, | |
- item->host, item->type, item->selector, item->por… | |
+ n = snprintf(bufout, sizeof(bufout), "%zu: ", i); | |
+ | |
+ if (n < sizeof(bufout) && *item->username) { | |
+ n += snprintf(bufout+n, sizeof(bufout)-n, "%s: ", | |
+ item->username); | |
+ } | |
+ if (n < sizeof(bufout)) { | |
+ n += snprintf(bufout+n, sizeof(bufout)-n, "gopher://%s… | |
+ item->host); | |
+ } | |
+ if (n < sizeof(bufout) && strcmp(item->port, "70")) { | |
+ n += snprintf(bufout+n, sizeof(bufout)-n, ":%s", | |
+ item->port); | |
+ } | |
+ if (n < sizeof(bufout)) { | |
+ n += snprintf(bufout+n, sizeof(bufout)-n, "/%c%s", | |
+ item->type, item->selector); | |
+ } | |
+ if (n < sizeof(bufout) && item->type == '7' && item->tag) { | |
+ n += snprintf(bufout+n, sizeof(bufout)-n, " %s", | |
+ item->tag + strlen(item->selector)); | |
+ } | |
break; | |
} | |