#define GEMTEXT_TEXT 1 #define GEMTEXT_LINK 2 #define GEMTEXT_PRE 3 #define GEMTEXT_H1 4 #define GEMTEXT_H2 5 #define GEMTEXT_H3 6 #define GEMTEXT_UL 7 #define GEMTEXT_QT 8 struct gemtext { int type; }; struct gemtext_text { int type; char *text; }; struct gemtext_link { int type; char *name; char *link; }; struct gemtext_pre { int type; char *text; }; struct gemtext_h1 { int type; char *text; }; struct gemtext_h2 { int type; char *text; }; struct gemtext_h3 { int type; char *text; }; struct gemtext_ul { int type; char *text; }; struct gemtext_qt { int type; char *text; }; /* strlcpy.c/strlcat.c */ #undef strlcpy #undef strlcat size_t strlcpy(char *, const char *, size_t); size_t strlcat(char *, const char *, size_t); /* decode.c */ struct gemtext *gemtext_decode(char *); struct gemtext *gemtext_decode_fd(int); struct gemtext *gemtext_decode_file(const char *); struct gemtext **gemtext_list_decode(char *); struct gemtext **gemtext_list_decode_fd(int); struct gemtext **gemtext_list_decode_file(const char *); /* encode.c */ int gemtext_encode(struct gemtext *, char **, size_t *); int gemtext_encode_fd(struct gemtext *, int); int gemtext_encode_file(struct gemtext *, const char *); int gemtext_list_encode(struct gemtext **, char **, size_t *); int gemtext_list_encode_fd(struct gemtext **, int); int gemtext_list_encode_file(struct gemtext **, const char *); /* html.c */ int gemtext_list_encode_to_html(struct gemtext **, char **, size_t *); int gemtext_list_encode_to_html_fd(struct gemtext **, int); int gemtext_list_encode_to_html_file(struct gemtext **, const char *); /* gemtext.c */ struct gemtext *gemtext_text_new(const char *); struct gemtext *gemtext_link_new(const char *, const char *); struct gemtext *gemtext_pre_new(const char *); struct gemtext *gemtext_h1_new(const char *); struct gemtext *gemtext_h2_new(const char *); struct gemtext *gemtext_h3_new(const char *); struct gemtext *gemtext_ul_new(const char *); struct gemtext *gemtext_qt_new(const char *); int gemtext_type(struct gemtext *); int gemtext_link_has_label(struct gemtext *); char *gemtext_text_string(struct gemtext *); char *gemtext_link_link_string(struct gemtext *); char *gemtext_link_label_string(struct gemtext *); char *gemtext_pre_string(struct gemtext *); char *gemtext_h1_string(struct gemtext *); char *gemtext_h2_string(struct gemtext *); char *gemtext_h3_string(struct gemtext *); char *gemtext_ul_string(struct gemtext *); char *gemtext_qt_string(struct gemtext *); size_t gemtext_text_strlen(struct gemtext *); size_t gemtext_link_link_strlen(struct gemtext *); size_t gemtext_link_label_strlen(struct gemtext *); size_t gemtext_pre_strlen(struct gemtext *); size_t gemtext_h1_strlen(struct gemtext *); size_t gemtext_h2_strlen(struct gemtext *); size_t gemtext_h3_strlen(struct gemtext *); size_t gemtext_ul_strlen(struct gemtext *); size_t gemtext_qt_strlen(struct gemtext *); /* gemtext_list.c */ struct gemtext **gemtext_list_append(struct gemtext **, struct gemtext *); /* free.c */ void gemtext_free(struct gemtext *); void gemtext_list_free(struct gemtext **);