@@ -1305,34 +1305,38 @@
1305 1305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct render *rndr,
1306 1306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *data,
1307 1307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
size_t offset,
1308 1308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
size_t size /* parse_inline() ensures that size > 0 */
1309 1309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
1310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const int is_img = (offset && data[-1] == '!');
1311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- size_t i = 1, txt_e;
1312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct Blob *content = 0;
1313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct Blob *link = 0;
1314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- struct Blob *title = 0;
1310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const int bFsfn = (size>3 && data[1]=='^'); /*free-standing footnote ref*/
1311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const int bImg = !bFsfn && (offset && data[-1] == '!');
1312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ size_t i, txt_e;
1313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct Blob *content;
1314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct Blob *link;
1315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct Blob *title;
1315 1316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct footnote fn;
1316 1317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int ret;
1317 1318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1318 1319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* checking whether the correct renderer exists */
1319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (is_img && !rndr->make.image) || (!is_img && !rndr->make.link) ){
1320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return 0;
1320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !bFsfn ){
1321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (bImg && !rndr->make.image) || (!bImg && !rndr->make.link) ){
1322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return 0;
1323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1321 1324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1322 1325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1323 1326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* looking for the matching closing bracket */
1324 1327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
txt_e = matching_bracket_offset(data, data+size);
1325 1328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !txt_e ) return 0;
1326 1329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i = txt_e + 1;
1327 1330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ret = 0; /* error if we don't get to the callback */
1328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fn.nUsed = 0;
1329 1331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* free-standing footnote refernece */
1331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!is_img && size>3 && data[1]=='^'){
1332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* free-standing footnote reference */
1333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bFsfn ){
1332 1334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fn = get_footnote(rndr, data+2, txt_e-2);
1335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ content = link = title = 0;
1333 1336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fn.nUsed = 0;
1334 1338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1335 1339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* skip "inter-bracket-whitespace" - any amount of whitespace or newline */
1336 1340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* (this is much more lax than original markdown syntax) */
1337 1341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( i<size && (data[i]==' ' || data[i]=='\t' || data[i]=='\n') ){ i++; }
1338 1342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -1399,16 +1403,16 @@
1399 1403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i = txt_e+1;
1400 1404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1401 1405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1402 1406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* building content: img alt is escaped, link content is parsed */
1403 1407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( txt_e>1 && content ){
1404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( is_img ) blob_append(content, data+1, txt_e-1);
1408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bImg ) blob_append(content, data+1, txt_e-1);
1405 1409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else parse_inline(content, rndr, data+1, txt_e-1);
1406 1410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1407 1411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1408 1412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* calling the relevant rendering function */
1409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( is_img ){
1413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bImg ){
1410 1414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( blob_size(ob)>0 && blob_buffer(ob)[blob_size(ob)-1]=='!' ){
1411 1415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ob->nUsed--;
1412 1416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1413 1417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ret = rndr->make.image(ob, link, title, content, rndr->make.opaque);
1414 1418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( fn.nUsed ){
1415 1419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!