Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Replaced a few sprintf() calls with sqlite3_snprintf() to squish warnings from Clang on macOS when configured with extra debugging. (These warnings don't normally appear.) There is one left in extsrc/shell.c which needs fixing upstream. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
dfa41afeab1581794389d05166881690 |
| User & Date: | wyoung 2023-10-23 01:17:48.828 |
Context
|
2023-10-23
| ||
| 01:47 | Squished a potential null pointer dereference in th.c caught by ubsan. ... (check-in: 39cac07254 user: wyoung tags: trunk) | |
| 01:17 | Replaced a few sprintf() calls with sqlite3_snprintf() to squish warnings from Clang on macOS when configured with extra debugging. (These warnings don't normally appear.) There is one left in extsrc/shell.c which needs fixing upstream. ... (check-in: dfa41afeab user: wyoung tags: trunk) | |
| 00:56 | Reworked the handling of "./configure --with-zlib=FOO", yielding several benefits: * FOO can now point to both a flat directory as before or to a directory one level up with lib/ and include/ subdirs, as zlib installs to when configured with a --prefix, fixing an issue [forum:/forumpost/9c64b51d44 | reported on the forum]. * The old method would check the default paths before trying what you gave it, preventing local overrides when you know the platform version isn't what you want and you've built from source, then pointed Fossil at the replacement. It isn't always safe or advisable to remove the platform version in this case merely to get Fossil's configuration script to move on and obey your explicit directive. * The old method checked for the header and the library in a single step, resulting in unhelpful configure output, requiring that one dig through config.log to figure out what happened. ... (check-in: 9d0b52e2d2 user: tangent tags: trunk) | |
Changes
Changes to src/markdown_html.c.
| ︙ | ︙ | |||
400 401 402 403 404 405 406 |
const struct MarkdownToHtml* ctx = (struct MarkdownToHtml*)opaque;
const bitfield64_t l = to_base26(locus-1,0);
char pos[32];
memset(pos,0,32);
assert( locus > 0 );
/* expect BUGs if the following yields compiler warnings */
if( iMark > 0 ){ /* a regular reference to a footnote */
| | | 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 |
const struct MarkdownToHtml* ctx = (struct MarkdownToHtml*)opaque;
const bitfield64_t l = to_base26(locus-1,0);
char pos[32];
memset(pos,0,32);
assert( locus > 0 );
/* expect BUGs if the following yields compiler warnings */
if( iMark > 0 ){ /* a regular reference to a footnote */
sqlite3_snprintf(sizeof(pos), pos, "%s-%d-%s", ctx->unique.c, iMark, l.c);
if(span && blob_size(span)) {
blob_append_literal(ob,"<span class='");
append_footnote_upc(ob, upc, 0);
blob_append_literal(ob,"notescope' id='noteref");
blob_appendf(ob,"%s'>",pos);
blob_appendb(ob, span);
blob_trim(ob);
|
| ︙ | ︙ | |||
423 424 425 426 427 428 429 |
BLOB_APPEND_URI(ob, ctx);
blob_appendf(ob,"#footnote%s' id='noteref%s'>%d</a></sup>",
pos, pos, iMark);
}
}else{ /* misreference */
assert( iMark == -1 );
| | | 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 |
BLOB_APPEND_URI(ob, ctx);
blob_appendf(ob,"#footnote%s' id='noteref%s'>%d</a></sup>",
pos, pos, iMark);
}
}else{ /* misreference */
assert( iMark == -1 );
sqlite3_snprintf(sizeof(pos), pos, "%s-%s", ctx->unique.c, l.c);
if(span && blob_size(span)) {
blob_appendf(ob, "<span class='notescope' id='misref%s'>", pos);
blob_appendb(ob, span);
blob_trim(ob);
blob_append_literal(ob, "<sup class='noteref misref'><a href='");
BLOB_APPEND_URI(ob, ctx);
blob_appendf(ob, "#misreference%s'>misref</a></sup></span>", pos);
|
| ︙ | ︙ | |||
483 484 485 486 487 488 489 |
#define _joined_footnote_indicator "<ul class='fn-joined'>"
#define _jfi_sz (sizeof(_joined_footnote_indicator)-1)
/* make.footnote_item() invocations should pass args accordingly */
const struct Blob *upc = text+1;
assert( text );
/* allow blob_size(text)==0 for constructs like [...](^ [] ()) */
memset(pos,0,24);
| | | 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 |
#define _joined_footnote_indicator "<ul class='fn-joined'>"
#define _jfi_sz (sizeof(_joined_footnote_indicator)-1)
/* make.footnote_item() invocations should pass args accordingly */
const struct Blob *upc = text+1;
assert( text );
/* allow blob_size(text)==0 for constructs like [...](^ [] ()) */
memset(pos,0,24);
sqlite3_snprintf(sizeof(pos), pos, "%s-%d", unique, iMark);
blob_appendf(ob, "<li id='footnote%s' class='", pos);
if( nUsed ){
if( blob_size(text)>=_jfi_sz &&
!memcmp(blob_buffer(text),_joined_footnote_indicator,_jfi_sz)){
bJoin = 1;
blob_append_literal(ob, "fn-joined ");
}
|
| ︙ | ︙ |
Changes to src/style.c.
| ︙ | ︙ | |||
793 794 795 796 797 798 799 |
if( !login_is_nobody() ){
Th_Store("login", g.zLogin);
}
Th_MaybeStore("current_feature", feature_from_page_path(local_zCurrentPage) );
if( g.ftntsIssues[0] || g.ftntsIssues[1] ||
g.ftntsIssues[2] || g.ftntsIssues[3] ){
char buf[80];
| | | 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 |
if( !login_is_nobody() ){
Th_Store("login", g.zLogin);
}
Th_MaybeStore("current_feature", feature_from_page_path(local_zCurrentPage) );
if( g.ftntsIssues[0] || g.ftntsIssues[1] ||
g.ftntsIssues[2] || g.ftntsIssues[3] ){
char buf[80];
sqlite3_snprintf(sizeof(buf),buf,"%i %i %i %i",g.ftntsIssues[0],g.ftntsIssues[1],
g.ftntsIssues[2],g.ftntsIssues[3]);
Th_Store("footnotes_issues_counters", buf);
}
}
/*
** Draw the header.
|
| ︙ | ︙ |