Fossil

Check-in [23c3e0b2]
Login

Check-in [23c3e0b2]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix parsing of "free-standing" footnotes that was (slightly) broken by the previous check-in.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | markdown-footnotes
Files: files | file ages | folders
SHA3-256: 23c3e0b2a7fd896316a579778c8938a71d98e85dbb02bf3dabe18cff51fd956c
User & Date: george 2022-02-13 19:29:20
Context
2022-02-14
23:32
Minor code refactoring: rename a temporary variable and utilize matching_bracket_offset() one more time. No changes in functionality. ... (check-in: 5b845a07 user: george tags: markdown-footnotes)
2022-02-13
19:29
Fix parsing of "free-standing" footnotes that was (slightly) broken by the previous check-in. ... (check-in: 23c3e0b2 user: george tags: markdown-footnotes)
2022-02-12
20:52
If markup is ambigous between a "span-bounded" footnote and a "free-standing" footnote followed by another footnote then interpret as the later case. ... (check-in: b363a4db user: george tags: markdown-footnotes)
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/markdown.c.

1216
1217
1218
1219
1220
1221
1222

1223
1224
1225
1226
1227
1228
1229
      fn = get_footnote(rndr, data+2, txt_e-2);
      if( !fn ) {
        rndr->notes.misref.nUsed++;
        fn = &rndr->notes.misref;
      }
      release_work_buffer(rndr, content);
      content = 0;


  }else if( i<size && data[i]=='(' ){

    if( i+2<size && data[i+1]=='^' ){  /* span-bounded inline footnote */

      const size_t k = matching_bracket_offset(data+i, data+size);
      if( !k ) goto char_link_cleanup;







>







1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
      fn = get_footnote(rndr, data+2, txt_e-2);
      if( !fn ) {
        rndr->notes.misref.nUsed++;
        fn = &rndr->notes.misref;
      }
      release_work_buffer(rndr, content);
      content = 0;
      i = txt_e+1;     /* rewinding a closing square bracket */

  }else if( i<size && data[i]=='(' ){

    if( i+2<size && data[i+1]=='^' ){  /* span-bounded inline footnote */

      const size_t k = matching_bracket_offset(data+i, data+size);
      if( !k ) goto char_link_cleanup;