Fossil SCM
Make the no-op rendering callbacks in backlink.c type-compatible with the declarations in mkd_renderer, doing away with a theoretically possible undefined behavior and the related compiler cast warnings.
Commit
d3434fd8cc85d826f081bbb128464f03ddc9501a56919c4193f9f3036004079f
Parent
8a401c209f4b071…
1 file changed
+59
-29
+59
-29
| --- src/backlink.c | ||
| +++ src/backlink.c | ||
| @@ -252,49 +252,79 @@ | ||
| 252 | 252 | |
| 253 | 253 | backlink_create(p, zTarget, nTarget); |
| 254 | 254 | return 1; |
| 255 | 255 | } |
| 256 | 256 | |
| 257 | -/* No-op routine for the rendering callbacks that we do not need */ | |
| 258 | -static void mkdn_noop0(Blob *x){ return; } | |
| 259 | -static int mkdn_noop1(Blob *x){ return 1; } | |
| 257 | +/* No-op routines for the rendering callbacks that we do not need */ | |
| 258 | +static void mkdn_noop_prolog(Blob *b, void *v){ return; } | |
| 259 | +static void (*mkdn_noop_epilog)(Blob*, void*) = mkdn_noop_prolog; | |
| 260 | +static void mkdn_noop_footnotes(Blob *b1, const Blob *b2, void *v){ return; } | |
| 261 | +static void mkdn_noop_blockcode(Blob *b1, Blob *b2, void *v){ return; } | |
| 262 | +static void (*mkdn_noop_blockquote)(Blob*, Blob*, void*) = mkdn_noop_blockcode; | |
| 263 | +static void (*mkdn_noop_blockhtml)(Blob*, Blob*, void*) = mkdn_noop_blockcode; | |
| 264 | +static void mkdn_noop_header(Blob *b1, Blob *b2, int i, void *v){ return; } | |
| 265 | +static void (*mkdn_noop_hrule)(Blob*, void*) = mkdn_noop_prolog; | |
| 266 | +static void (*mkdn_noop_list)(Blob*, Blob*, int, void*) = mkdn_noop_header; | |
| 267 | +static void (*mkdn_noop_listitem)(Blob*, Blob*, int, void*) = mkdn_noop_header; | |
| 268 | +static void (*mkdn_noop_paragraph)(Blob*, Blob*, void*) = mkdn_noop_blockcode; | |
| 269 | +static void mkdn_noop_table(Blob *b1, Blob *b2, Blob *b3, void *v){ return; } | |
| 270 | +static void (*mkdn_noop_table_cell)(Blob*, Blob*, int, | |
| 271 | + void*) = mkdn_noop_header; | |
| 272 | +static void (*mkdn_noop_table_row)(Blob*, Blob*, int, | |
| 273 | + void*) = mkdn_noop_header; | |
| 274 | +static void mkdn_noop_footnoteitm(Blob *b1, const Blob *b2, int i1, int i2, | |
| 275 | + void *v){ return; } | |
| 276 | +static int mkdn_noop_autolink(Blob *b1, Blob *b2, enum mkd_autolink e, | |
| 277 | + void *v){ return 1; } | |
| 278 | +static int mkdn_noop_codespan(Blob *b1, Blob *b2, int i, void *v){ return 1; } | |
| 279 | +static int mkdn_noop_emphasis(Blob *b1, Blob *b2, char c, void *v){ return 1; } | |
| 280 | +static int (*mkdn_noop_dbl_emphas)(Blob*, Blob*, char, | |
| 281 | + void*) = mkdn_noop_emphasis; | |
| 282 | +static int mkdn_noop_image(Blob *b1, Blob *b2, Blob *b3, Blob *b4, | |
| 283 | + void *v){ return 1; } | |
| 284 | +static int mkdn_noop_linebreak(Blob *b1, void *v){ return 1; } | |
| 285 | +static int mkdn_noop_r_html_tag(Blob *b1, Blob *b2, void *v){ return 1; } | |
| 286 | +static int (*mkdn_noop_tri_emphas)(Blob*, Blob*, char, | |
| 287 | + void*) = mkdn_noop_emphasis; | |
| 288 | +static int mkdn_noop_footnoteref(Blob *b1, const Blob *b2, const Blob *b3, | |
| 289 | + int i1, int i2, void *v){ return 1; } | |
| 260 | 290 | |
| 261 | 291 | /* |
| 262 | 292 | ** Scan markdown text and add self-hyperlinks to the BACKLINK table. |
| 263 | 293 | */ |
| 264 | 294 | void markdown_extract_links( |
| 265 | 295 | char *zInputText, |
| 266 | 296 | Backlink *p |
| 267 | 297 | ){ |
| 268 | 298 | struct mkd_renderer html_renderer = { |
| 269 | - /* prolog */ (void(*)(Blob*,void*))mkdn_noop0, | |
| 270 | - /* epilog */ (void(*)(Blob*,void*))mkdn_noop0, | |
| 271 | - /* footnotes */ (void(*)(Blob*,const Blob*, void*))mkdn_noop0, | |
| 272 | - | |
| 273 | - /* blockcode */ (void(*)(Blob*,Blob*,void*))mkdn_noop0, | |
| 274 | - /* blockquote */ (void(*)(Blob*,Blob*,void*))mkdn_noop0, | |
| 275 | - /* blockhtml */ (void(*)(Blob*,Blob*,void*))mkdn_noop0, | |
| 276 | - /* header */ (void(*)(Blob*,Blob*,int,void*))mkdn_noop0, | |
| 277 | - /* hrule */ (void(*)(Blob*,void*))mkdn_noop0, | |
| 278 | - /* list */ (void(*)(Blob*,Blob*,int,void*))mkdn_noop0, | |
| 279 | - /* listitem */ (void(*)(Blob*,Blob*,int,void*))mkdn_noop0, | |
| 280 | - /* paragraph */ (void(*)(Blob*,Blob*,void*))mkdn_noop0, | |
| 281 | - /* table */ (void(*)(Blob*,Blob*,Blob*,void*))mkdn_noop0, | |
| 282 | - /* table_cell */ (void(*)(Blob*,Blob*,int,void*))mkdn_noop0, | |
| 283 | - /* table_row */ (void(*)(Blob*,Blob*,int,void*))mkdn_noop0, | |
| 284 | - /* footnoteitm*/ (void(*)(Blob*,const Blob*,int,int,void*))mkdn_noop0, | |
| 285 | - | |
| 286 | - /* autolink */ (int(*)(Blob*,Blob*,enum mkd_autolink,void*))mkdn_noop1, | |
| 287 | - /* codespan */ (int(*)(Blob*,Blob*,int,void*))mkdn_noop1, | |
| 288 | - /* dbl_emphas */ (int(*)(Blob*,Blob*,char,void*))mkdn_noop1, | |
| 289 | - /* emphasis */ (int(*)(Blob*,Blob*,char,void*))mkdn_noop1, | |
| 290 | - /* image */ (int(*)(Blob*,Blob*,Blob*,Blob*,void*))mkdn_noop1, | |
| 291 | - /* linebreak */ (int(*)(Blob*,void*))mkdn_noop1, | |
| 299 | + /* prolog */ mkdn_noop_prolog, | |
| 300 | + /* epilog */ mkdn_noop_epilog, | |
| 301 | + /* footnotes */ mkdn_noop_footnotes, | |
| 302 | + | |
| 303 | + /* blockcode */ mkdn_noop_blockcode, | |
| 304 | + /* blockquote */ mkdn_noop_blockquote, | |
| 305 | + /* blockhtml */ mkdn_noop_blockhtml, | |
| 306 | + /* header */ mkdn_noop_header, | |
| 307 | + /* hrule */ mkdn_noop_hrule, | |
| 308 | + /* list */ mkdn_noop_list, | |
| 309 | + /* listitem */ mkdn_noop_listitem, | |
| 310 | + /* paragraph */ mkdn_noop_paragraph, | |
| 311 | + /* table */ mkdn_noop_table, | |
| 312 | + /* table_cell */ mkdn_noop_table_cell, | |
| 313 | + /* table_row */ mkdn_noop_table_row, | |
| 314 | + /* footnoteitm*/ mkdn_noop_footnoteitm, | |
| 315 | + | |
| 316 | + /* autolink */ mkdn_noop_autolink, | |
| 317 | + /* codespan */ mkdn_noop_codespan, | |
| 318 | + /* dbl_emphas */ mkdn_noop_dbl_emphas, | |
| 319 | + /* emphasis */ mkdn_noop_emphasis, | |
| 320 | + /* image */ mkdn_noop_image, | |
| 321 | + /* linebreak */ mkdn_noop_linebreak, | |
| 292 | 322 | /* link */ backlink_md_link, |
| 293 | - /* r_html_tag */ (int(*)(Blob*,Blob*,void*))mkdn_noop1, | |
| 294 | - /* tri_emphas */ (int(*)(Blob*,Blob*,char,void*))mkdn_noop1, | |
| 295 | - /* footnoteref*/ (int(*)(Blob*,const Blob*,const Blob*,int,int,void*))mkdn_noop1, | |
| 323 | + /* r_html_tag */ mkdn_noop_r_html_tag, | |
| 324 | + /* tri_emphas */ mkdn_noop_tri_emphas, | |
| 325 | + /* footnoteref*/ mkdn_noop_footnoteref, | |
| 296 | 326 | |
| 297 | 327 | 0, /* entity */ |
| 298 | 328 | 0, /* normal_text */ |
| 299 | 329 | "*_", /* emphasis characters */ |
| 300 | 330 | 0 /* client data */ |
| 301 | 331 |
| --- src/backlink.c | |
| +++ src/backlink.c | |
| @@ -252,49 +252,79 @@ | |
| 252 | |
| 253 | backlink_create(p, zTarget, nTarget); |
| 254 | return 1; |
| 255 | } |
| 256 | |
| 257 | /* No-op routine for the rendering callbacks that we do not need */ |
| 258 | static void mkdn_noop0(Blob *x){ return; } |
| 259 | static int mkdn_noop1(Blob *x){ return 1; } |
| 260 | |
| 261 | /* |
| 262 | ** Scan markdown text and add self-hyperlinks to the BACKLINK table. |
| 263 | */ |
| 264 | void markdown_extract_links( |
| 265 | char *zInputText, |
| 266 | Backlink *p |
| 267 | ){ |
| 268 | struct mkd_renderer html_renderer = { |
| 269 | /* prolog */ (void(*)(Blob*,void*))mkdn_noop0, |
| 270 | /* epilog */ (void(*)(Blob*,void*))mkdn_noop0, |
| 271 | /* footnotes */ (void(*)(Blob*,const Blob*, void*))mkdn_noop0, |
| 272 | |
| 273 | /* blockcode */ (void(*)(Blob*,Blob*,void*))mkdn_noop0, |
| 274 | /* blockquote */ (void(*)(Blob*,Blob*,void*))mkdn_noop0, |
| 275 | /* blockhtml */ (void(*)(Blob*,Blob*,void*))mkdn_noop0, |
| 276 | /* header */ (void(*)(Blob*,Blob*,int,void*))mkdn_noop0, |
| 277 | /* hrule */ (void(*)(Blob*,void*))mkdn_noop0, |
| 278 | /* list */ (void(*)(Blob*,Blob*,int,void*))mkdn_noop0, |
| 279 | /* listitem */ (void(*)(Blob*,Blob*,int,void*))mkdn_noop0, |
| 280 | /* paragraph */ (void(*)(Blob*,Blob*,void*))mkdn_noop0, |
| 281 | /* table */ (void(*)(Blob*,Blob*,Blob*,void*))mkdn_noop0, |
| 282 | /* table_cell */ (void(*)(Blob*,Blob*,int,void*))mkdn_noop0, |
| 283 | /* table_row */ (void(*)(Blob*,Blob*,int,void*))mkdn_noop0, |
| 284 | /* footnoteitm*/ (void(*)(Blob*,const Blob*,int,int,void*))mkdn_noop0, |
| 285 | |
| 286 | /* autolink */ (int(*)(Blob*,Blob*,enum mkd_autolink,void*))mkdn_noop1, |
| 287 | /* codespan */ (int(*)(Blob*,Blob*,int,void*))mkdn_noop1, |
| 288 | /* dbl_emphas */ (int(*)(Blob*,Blob*,char,void*))mkdn_noop1, |
| 289 | /* emphasis */ (int(*)(Blob*,Blob*,char,void*))mkdn_noop1, |
| 290 | /* image */ (int(*)(Blob*,Blob*,Blob*,Blob*,void*))mkdn_noop1, |
| 291 | /* linebreak */ (int(*)(Blob*,void*))mkdn_noop1, |
| 292 | /* link */ backlink_md_link, |
| 293 | /* r_html_tag */ (int(*)(Blob*,Blob*,void*))mkdn_noop1, |
| 294 | /* tri_emphas */ (int(*)(Blob*,Blob*,char,void*))mkdn_noop1, |
| 295 | /* footnoteref*/ (int(*)(Blob*,const Blob*,const Blob*,int,int,void*))mkdn_noop1, |
| 296 | |
| 297 | 0, /* entity */ |
| 298 | 0, /* normal_text */ |
| 299 | "*_", /* emphasis characters */ |
| 300 | 0 /* client data */ |
| 301 |
| --- src/backlink.c | |
| +++ src/backlink.c | |
| @@ -252,49 +252,79 @@ | |
| 252 | |
| 253 | backlink_create(p, zTarget, nTarget); |
| 254 | return 1; |
| 255 | } |
| 256 | |
| 257 | /* No-op routines for the rendering callbacks that we do not need */ |
| 258 | static void mkdn_noop_prolog(Blob *b, void *v){ return; } |
| 259 | static void (*mkdn_noop_epilog)(Blob*, void*) = mkdn_noop_prolog; |
| 260 | static void mkdn_noop_footnotes(Blob *b1, const Blob *b2, void *v){ return; } |
| 261 | static void mkdn_noop_blockcode(Blob *b1, Blob *b2, void *v){ return; } |
| 262 | static void (*mkdn_noop_blockquote)(Blob*, Blob*, void*) = mkdn_noop_blockcode; |
| 263 | static void (*mkdn_noop_blockhtml)(Blob*, Blob*, void*) = mkdn_noop_blockcode; |
| 264 | static void mkdn_noop_header(Blob *b1, Blob *b2, int i, void *v){ return; } |
| 265 | static void (*mkdn_noop_hrule)(Blob*, void*) = mkdn_noop_prolog; |
| 266 | static void (*mkdn_noop_list)(Blob*, Blob*, int, void*) = mkdn_noop_header; |
| 267 | static void (*mkdn_noop_listitem)(Blob*, Blob*, int, void*) = mkdn_noop_header; |
| 268 | static void (*mkdn_noop_paragraph)(Blob*, Blob*, void*) = mkdn_noop_blockcode; |
| 269 | static void mkdn_noop_table(Blob *b1, Blob *b2, Blob *b3, void *v){ return; } |
| 270 | static void (*mkdn_noop_table_cell)(Blob*, Blob*, int, |
| 271 | void*) = mkdn_noop_header; |
| 272 | static void (*mkdn_noop_table_row)(Blob*, Blob*, int, |
| 273 | void*) = mkdn_noop_header; |
| 274 | static void mkdn_noop_footnoteitm(Blob *b1, const Blob *b2, int i1, int i2, |
| 275 | void *v){ return; } |
| 276 | static int mkdn_noop_autolink(Blob *b1, Blob *b2, enum mkd_autolink e, |
| 277 | void *v){ return 1; } |
| 278 | static int mkdn_noop_codespan(Blob *b1, Blob *b2, int i, void *v){ return 1; } |
| 279 | static int mkdn_noop_emphasis(Blob *b1, Blob *b2, char c, void *v){ return 1; } |
| 280 | static int (*mkdn_noop_dbl_emphas)(Blob*, Blob*, char, |
| 281 | void*) = mkdn_noop_emphasis; |
| 282 | static int mkdn_noop_image(Blob *b1, Blob *b2, Blob *b3, Blob *b4, |
| 283 | void *v){ return 1; } |
| 284 | static int mkdn_noop_linebreak(Blob *b1, void *v){ return 1; } |
| 285 | static int mkdn_noop_r_html_tag(Blob *b1, Blob *b2, void *v){ return 1; } |
| 286 | static int (*mkdn_noop_tri_emphas)(Blob*, Blob*, char, |
| 287 | void*) = mkdn_noop_emphasis; |
| 288 | static int mkdn_noop_footnoteref(Blob *b1, const Blob *b2, const Blob *b3, |
| 289 | int i1, int i2, void *v){ return 1; } |
| 290 | |
| 291 | /* |
| 292 | ** Scan markdown text and add self-hyperlinks to the BACKLINK table. |
| 293 | */ |
| 294 | void markdown_extract_links( |
| 295 | char *zInputText, |
| 296 | Backlink *p |
| 297 | ){ |
| 298 | struct mkd_renderer html_renderer = { |
| 299 | /* prolog */ mkdn_noop_prolog, |
| 300 | /* epilog */ mkdn_noop_epilog, |
| 301 | /* footnotes */ mkdn_noop_footnotes, |
| 302 | |
| 303 | /* blockcode */ mkdn_noop_blockcode, |
| 304 | /* blockquote */ mkdn_noop_blockquote, |
| 305 | /* blockhtml */ mkdn_noop_blockhtml, |
| 306 | /* header */ mkdn_noop_header, |
| 307 | /* hrule */ mkdn_noop_hrule, |
| 308 | /* list */ mkdn_noop_list, |
| 309 | /* listitem */ mkdn_noop_listitem, |
| 310 | /* paragraph */ mkdn_noop_paragraph, |
| 311 | /* table */ mkdn_noop_table, |
| 312 | /* table_cell */ mkdn_noop_table_cell, |
| 313 | /* table_row */ mkdn_noop_table_row, |
| 314 | /* footnoteitm*/ mkdn_noop_footnoteitm, |
| 315 | |
| 316 | /* autolink */ mkdn_noop_autolink, |
| 317 | /* codespan */ mkdn_noop_codespan, |
| 318 | /* dbl_emphas */ mkdn_noop_dbl_emphas, |
| 319 | /* emphasis */ mkdn_noop_emphasis, |
| 320 | /* image */ mkdn_noop_image, |
| 321 | /* linebreak */ mkdn_noop_linebreak, |
| 322 | /* link */ backlink_md_link, |
| 323 | /* r_html_tag */ mkdn_noop_r_html_tag, |
| 324 | /* tri_emphas */ mkdn_noop_tri_emphas, |
| 325 | /* footnoteref*/ mkdn_noop_footnoteref, |
| 326 | |
| 327 | 0, /* entity */ |
| 328 | 0, /* normal_text */ |
| 329 | "*_", /* emphasis characters */ |
| 330 | 0 /* client data */ |
| 331 |