commit fd1c80ce62030c6e75bb05db1aee43425d70fc97 from: Omar Polo date: Fri Jun 14 22:15:12 2024 UTC constify the parser structs commit - c1d27b0e114e6a65f7979971940df212f00bb2ae commit + fd1c80ce62030c6e75bb05db1aee43425d70fc97 blob - 4c0614a1bd8fd277ba066453c872da3d66032d9f blob + 0a13259a4b223644c7aacff979f4156a200fc534 --- fs.c +++ fs.c @@ -141,12 +141,12 @@ is_dir(FILE *fp) return S_ISDIR(sb.st_mode); } -static struct parser * +static const struct parser * file_type(const char *path) { const struct mapping { - const char *ext; - struct parser *parser; + const char *ext; + const struct parser *parser; } ms[] = { {"diff", &textpatch_parser}, {"gemini", &gemtext_parser}, @@ -173,12 +173,12 @@ file_type(const char *path) void fs_load_url(struct tab *tab, const char *url) { - const char *bpath = "bookmarks.gmi", *fallback = "# Not found\n"; - struct parser *parser = &gemtext_parser; - char path[PATH_MAX]; - FILE *fp = NULL; - size_t i; - char buf[BUFSIZ]; + const char *bpath = "bookmarks.gmi", *fallback = "# Not found\n"; + const struct parser *parser = &gemtext_parser; + char path[PATH_MAX]; + FILE *fp = NULL; + size_t i; + char buf[BUFSIZ]; struct page { const char *name; const char *path; blob - b5766b6d317771d45938c3ce5e19da15a27d85e8 blob + 05a7ed2161e1997ede111bce400c5526f155b9e9 --- identity.c +++ identity.c @@ -80,7 +80,7 @@ size_t about_new_len; const uint8_t *bookmarks; size_t bookmarks_len; -struct parser gemtext_parser, textplain_parser, textpatch_parser; +const struct parser gemtext_parser, textplain_parser, textpatch_parser; void load_page_from_str(struct tab *tab, const char *page) { return; } void erase_buffer(struct buffer *buffer) { return; } blob - b2a57a944ecc6774de923e03763976a4318f740a blob + 0e92a2adae57aa68d26f5f577c6b4cad5694191d --- mcache.c +++ mcache.c @@ -38,12 +38,12 @@ static size_t npages; static size_t tot; struct mcache_entry { - time_t ts; - struct parser *parser; - int trust; - char *buf; - size_t buflen; - char url[]; + time_t ts; + const struct parser *parser; + int trust; + char *buf; + size_t buflen; + char url[]; }; static void blob - 39bb0be8f2462d3078a206abc9626949573f966c blob + 7d0eeaee1b0b0497e8328b8d0e6eb513f075d067 --- mime.c +++ mime.c @@ -27,8 +27,8 @@ static int check_for_utf8(char*); static const struct parser_table { - const char *mediatype; - struct parser *parser; + const char *mediatype; + const struct parser *parser; } ptable[] = { { "text/gemini", &gemtext_parser }, { "text/x-patch", &textpatch_parser }, blob - 1bd28ce6270695d16e124b303c635ab3451f683a blob + 8378bc5ceea7d3569551817640f475a78fe5933a --- parser.c +++ parser.c @@ -26,7 +26,7 @@ static int parser_foreach_line(struct buffer *, const char *, size_t); void -parser_init(struct buffer *buffer, struct parser *p) +parser_init(struct buffer *buffer, const struct parser *p) { erase_buffer(buffer); @@ -39,7 +39,7 @@ parser_init(struct buffer *buffer, struct parser *p) int parser_parse(struct buffer *buffer, const char *chunk, size_t len) { - struct parser *p = buffer->parser; + const struct parser *p = buffer->parser; if (p->parse) return p->parse(buffer, chunk, len); @@ -69,7 +69,7 @@ int parser_free(struct tab *tab) { struct buffer *buffer = &tab->buffer; - struct parser *p = buffer->parser; + const struct parser *p = buffer->parser; int r = 1; char *tilde, *slash; @@ -109,10 +109,10 @@ parser_free(struct tab *tab) int parser_serialize(struct buffer *b, FILE *fp) { - struct parser *p = b->parser; - struct line *line; - const char *text; - int r; + const struct parser *p = b->parser; + struct line *line; + const char *text; + int r; if (p->serialize != NULL) return p->serialize(b, fp); @@ -176,10 +176,10 @@ parser_set_buf(struct buffer *b, const char *buf, size static int parser_foreach_line(struct buffer *b, const char *buf, size_t size) { - struct parser *p = b->parser; - char *beg, *end; - unsigned int ch; - size_t i, l, len; + const struct parser *p = b->parser; + char *beg, *end; + unsigned int ch; + size_t i, l, len; if (!parser_append(b, buf, size)) return 0; blob - 0eac68fabed364415954fc82b90e8e820833e5bc blob + 77525b13bd1de27bc09084234997439a13737a07 --- parser.h +++ parser.h @@ -30,7 +30,7 @@ struct parser { int (*serialize)(struct buffer *, FILE *); }; -void parser_init(struct buffer *, struct parser *); +void parser_init(struct buffer *, const struct parser *); int parser_parse(struct buffer *, const char *, size_t); int parser_parsef(struct buffer *, const char *, ...); int parser_free(struct tab *); @@ -39,9 +39,9 @@ int parser_serialize(struct buffer *, FILE *); int parser_append(struct buffer *, const char *, size_t); int parser_set_buf(struct buffer *, const char *, size_t); -extern struct parser gemtext_parser; -extern struct parser gophermap_parser; -extern struct parser textpatch_parser; -extern struct parser textplain_parser; +extern const struct parser gemtext_parser; +extern const struct parser gophermap_parser; +extern const struct parser textpatch_parser; +extern const struct parser textplain_parser; #endif blob - ccab1ade5afda346a97b60e0408826b0cfd29088 blob + d4b1532f36d28b1ffe6edab81972ea9a3fbfff2e --- parser_gemtext.c +++ parser_gemtext.c @@ -41,7 +41,7 @@ static int parse_link(struct buffer *, const char*, si static int parse_title(struct buffer *, const char*, size_t); static void search_title(struct buffer *, enum line_type); -struct parser gemtext_parser = { +const struct parser gemtext_parser = { .name = "text/gemini", .parseline = &gemtext_parse_line, .free = &gemtext_free, blob - 8c9d0ec372c899409d2ce5a72c7d19c84e3deda0 blob + bff31442688fddc4f4b74b0f4385ff6b72ae4139 --- parser_gophermap.c +++ parser_gophermap.c @@ -42,7 +42,7 @@ static void gm_parse_selector(char *, struct gm_select static int gm_parse_line(struct buffer *, const char *, size_t); static int gm_serialize(struct buffer *, FILE *); -struct parser gophermap_parser = { +const struct parser gophermap_parser = { .name = "gophermap", .parseline = &gm_parse_line, .serialize = &gm_serialize, blob - 677a8d446f05d855f392f515d096d910a10a3d9e blob + 1cedf3c9f52b03bbb663825a44462ef556f833d8 --- parser_textpatch.c +++ parser_textpatch.c @@ -30,7 +30,7 @@ static int tpatch_emit_line(struct buffer *, const char *, size_t); static int tpatch_parse_line(struct buffer *, const char *, size_t); -struct parser textpatch_parser = { +const struct parser textpatch_parser = { .name = "text/x-patch", .parseline = &tpatch_parse_line, .initflags = PARSER_IN_PATCH_HDR, blob - c516f4a24a997ad28535976e391732f755b652e1 blob + 33645f01424e35748d8eb886bcfc083a71760df4 --- parser_textplain.c +++ parser_textplain.c @@ -28,7 +28,7 @@ static int textplain_parse_line(struct buffer *, const char *, size_t); -struct parser textplain_parser = { +const struct parser textplain_parser = { .name = "text/plain", .parseline = &textplain_parse_line, }; blob - d6f56be2990aa0037fc88e9091cdec9895b751aa blob + 3520b8ccfe4a9e44bc7f12180e6c0e5c85bddfdc --- telescope.h +++ telescope.h @@ -114,7 +114,7 @@ struct buffer { #define PARSER_IN_PRE 2 #define PARSER_IN_PATCH_HDR 4 int parser_flags; - struct parser *parser; + const struct parser *parser; size_t last_line_off; int force_redraw;