diff options
author | June McEnroe <june@causal.agency> | 2020-10-09 19:15:25 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-10-09 19:15:25 -0400 |
commit | 1cc61723c9cd728654676a9d84905b205b5b0e4a (patch) | |
tree | 6586a50ee8b4d9a2a513600da5568c15b2fea92a /url.c | |
parent | Factor out styleStrip (diff) | |
download | catgirl-1cc61723c9cd728654676a9d84905b205b5b0e4a.tar.gz catgirl-1cc61723c9cd728654676a9d84905b205b5b0e4a.zip |
Strip formatting from URLs
Notably this fixes opening URLs from litterbox queries where part of the URL is highlighted.
Diffstat (limited to 'url.c')
-rw-r--r-- | url.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/url.c b/url.c index 3f7f512..53fe271 100644 --- a/url.c +++ b/url.c @@ -86,14 +86,19 @@ static void push(uint id, const char *nick, const char *str, size_t len) { struct URL *url = &ring.urls[ring.len++ % Cap]; free(url->nick); free(url->url); + url->id = id; url->nick = NULL; if (nick) { url->nick = strdup(nick); if (!url->nick) err(EX_OSERR, "strdup"); } - url->url = strndup(str, len); - if (!url->url) err(EX_OSERR, "strndup"); + url->url = malloc(len + 1); + if (!url->url) err(EX_OSERR, "malloc"); + + char buf[1024]; + snprintf(buf, sizeof(buf), "%.*s", (int)len, str); + styleStrip(&(struct Cat) { url->url, len + 1, 0 }, buf); } void urlScan(uint id, const char *nick, const char *mesg) { |