diff options
author | Ali Fardan <raiz@stellarbound.space> | 2020-11-05 22:08:19 +0300 |
---|---|---|
committer | Ali Fardan <raiz@stellarbound.space> | 2020-11-05 22:08:19 +0300 |
commit | 85d4a44f2d310ce42976a47091f6355fd6066d5e (patch) | |
tree | 7dd0f045585a9e4239983b6728e325333e1010db /encode.c | |
parent | 0f184b77e00e7b85e04be78d6a22231c62523e91 (diff) | |
download | libgemtext-85d4a44f2d310ce42976a47091f6355fd6066d5e.tar.gz |
introduce gemtext_list_encode_to_html class of functions
- add gemtext_list_encode_html, gemtext_list_encode_to_html_fd and gemtext_list_encode_to_html_file - add gemtext_link_has_label - update gemtext_list_encode class of functions to use size_t instead of int for text size calculation - update manpages
Diffstat (limited to 'encode.c')
-rw-r--r-- | encode.c | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/encode.c b/encode.c index dc13d23..75afb18 100644 --- a/encode.c +++ b/encode.c @@ -23,7 +23,7 @@ _case_link(struct gemtext *t) { struct gemtext_link *link; char *ret; - int retlen; + size_t retlen; retlen = 0; link = (struct gemtext_link *)t; @@ -55,7 +55,7 @@ _case_pre(struct gemtext *t) { struct gemtext_pre *pre; char *ret; - int retlen; + size_t retlen; retlen = 0; pre = (struct gemtext_pre *)t; @@ -81,7 +81,7 @@ _case_h1(struct gemtext *t) { struct gemtext_h1 *h1; char *ret; - int retlen; + size_t retlen; retlen = 0; h1 = (struct gemtext_h1 *)t; @@ -105,7 +105,7 @@ _case_h2(struct gemtext *t) { struct gemtext_h2 *h2; char *ret; - int retlen; + size_t retlen; retlen = 0; h2 = (struct gemtext_h2 *)t; @@ -129,7 +129,7 @@ _case_h3(struct gemtext *t) { struct gemtext_h3 *h3; char *ret; - int retlen; + size_t retlen; retlen = 0; h3 = (struct gemtext_h3 *)t; @@ -154,7 +154,7 @@ _case_ul(struct gemtext *t) { struct gemtext_ul *ul; char *ret; - int retlen; + size_t retlen; retlen = 0; ul = (struct gemtext_ul *)t; @@ -178,7 +178,7 @@ _case_qt(struct gemtext *t) { struct gemtext_qt *qt; char *ret; - int retlen; + size_t retlen; retlen = 0; qt = (struct gemtext_qt *)t; @@ -198,9 +198,9 @@ _case_qt(struct gemtext *t) } static char * -_line_append(char *dst, const char *src, int *len) +_line_append(char *dst, const char *src, size_t *len) { - int rlen; + size_t rlen; char *ret; rlen = *len; @@ -223,7 +223,7 @@ _line_append(char *dst, const char *src, int *len) } int -gemtext_encode(struct gemtext *line, char **text, int *len) +gemtext_encode(struct gemtext *line, char **text, size_t *len) { switch (line->type) { case GEMTEXT_TEXT: @@ -292,7 +292,7 @@ int gemtext_encode_fd(struct gemtext *line, int fd) { char *text; - int len; + size_t len; int ecode; if (gemtext_encode(line, &text, &len) == -1) @@ -325,11 +325,11 @@ gemtext_encode_file(struct gemtext *line, const char *path) } int -gemtext_list_encode(struct gemtext **list, char **text, int *len) +gemtext_list_encode(struct gemtext **list, char **text, size_t *len) { int i; - int encbuflen; - int retbuflen; + size_t encbuflen; + size_t retbuflen; char *encbuf; char *appbuf; char *retbuf; @@ -362,7 +362,7 @@ int gemtext_list_encode_fd(struct gemtext **list, int fd) { char *text; - int len; + size_t len; int ecode; if (gemtext_list_encode(list, &text, &len) == -1) @@ -382,9 +382,11 @@ gemtext_list_encode_file(struct gemtext **list, const char *path) int fd; int ecode; - fd = open(path, O_WRONLY); + fd = open(path, O_WRONLY|O_TRUNC|O_CREAT); if (fd == -1) return -1; + /* file does not have to be owned by user, so errors are expected */ + fchmod(fd, 0644); ecode = gemtext_list_encode_fd(list, fd); close(fd); |