diff options
author | wrmr | 2024-11-08 23:25:03 -0500 |
---|---|---|
committer | wrmr | 2024-11-08 23:25:03 -0500 |
commit | 012ed5bd6455ce291741ad540a5e356e4810133b (patch) | |
tree | 32bfb5425b1f1a899c497ce817b44111dcd0ff54 | |
parent | 6050dcdd3669b7102f35a226a6a3ee485c7b703a (diff) |
use strv_t for doc_add_text, remove doc_add_textn, add strv()
-rw-r--r-- | doc.c | 16 | ||||
-rw-r--r-- | doc.h | 3 | ||||
-rw-r--r-- | nav.c | 2 | ||||
-rw-r--r-- | parse.c | 2 | ||||
-rw-r--r-- | strv.c | 4 | ||||
-rw-r--r-- | strv.h | 1 |
6 files changed, 14 insertions, 14 deletions
diff --git a/doc.c b/doc.c index 97d8b34..d43ff30 100644 --- a/doc.c +++ b/doc.c @@ -39,20 +39,16 @@ void doc_new_line(struct doc *d) { } void doc_add_line(struct doc *d, strv_t s) { - doc_add_textn(d, s.s, s.n); + doc_add_text(d, s); doc_new_line(d); } -void doc_add_text(struct doc *d, const char *s) { - doc_add_textn(d, s, strlen(s)); -} - -void doc_add_textn(struct doc *d, const char *s, size_t n) { - buf_grow(&d->txt, n); - memcpy(&d->txt.buf[d->txt.sz], s, n); +void doc_add_text(struct doc *d, strv_t s) { + buf_grow(&d->txt, s.n); + memcpy(&d->txt.buf[d->txt.sz], s.s, s.n); struct doc_line *dl = (struct doc_line *)&d->txt.buf[d->latest]; - d->txt.sz += n; - dl->len += n; + d->txt.sz += s.n; + dl->len += s.n; } unsigned short doc_add_link(struct doc *d, const char *url) { diff --git a/doc.h b/doc.h index a71ca49..a0b1031 100644 --- a/doc.h +++ b/doc.h @@ -29,8 +29,7 @@ void doc_fini(struct doc *); void doc_new_line(struct doc *); void doc_add_line(struct doc *, strv_t); -void doc_add_text(struct doc *, const char *); -void doc_add_textn(struct doc *, const char *, size_t); +void doc_add_text(struct doc *, strv_t); struct doc_line *doc_line_at(struct doc *d, size_t ofs); int doc_line_prevp(struct doc *d, size_t ofs); diff --git a/nav.c b/nav.c index 8456a76..5e5d8ea 100644 --- a/nav.c +++ b/nav.c @@ -12,7 +12,7 @@ void nav_init(struct nav_state *ns) { memset(ns, 0, sizeof *ns); ns->histc = 1; doc_init(ns->histv); - doc_add_text(ns->histv, "Type ? for command help."); + doc_add_text(ns->histv, strv("Type ? for command help.")); ns->prot_default = PROT_GOPHER; } diff --git a/parse.c b/parse.c index ff0c973..b62ea8a 100644 --- a/parse.c +++ b/parse.c @@ -78,7 +78,7 @@ int parse_gophermap_line(struct doc *d, strv_t ln) { url[urln] = 0; doc_set_link(d, doc_add_link(d, url)); case 'i': - doc_add_textn(d, bits.dstr.s, bits.dstr.n); + doc_add_text(d, bits.dstr); doc_new_line(d); break; } diff --git a/strv.c b/strv.c index 5da11f5..a3e9f6a 100644 --- a/strv.c +++ b/strv.c @@ -2,6 +2,10 @@ #include "strv.h" +strv_t strv(const char *s) { + return (strv_t) { s, strlen(s) }; +} + strv_t strv_head(strv_t ss, int chr, size_t *i) { size_t j = i ? *i : 0; char *c = memchr(&ss.s[j], chr, ss.n - j); diff --git a/strv.h b/strv.h index 553a39c..03bbb8e 100644 --- a/strv.h +++ b/strv.h @@ -8,6 +8,7 @@ typedef struct { size_t n; } strv_t; +strv_t strv(const char *s); strv_t strv_head(strv_t ss, int chr, size_t *i); #endif |