@@ -1649,7 +1649,7 @@ int Markdown::Private::processCodeSpan(std::string_view data,size_t offset)
1649
1649
i++;
1650
1650
if (nb==1 ) // `...`
1651
1651
{
1652
- if (end<size && data[end+1 ]==' `' ) // skip over `` inside `...`
1652
+ if (end+ 1 <size && data[end+1 ]==' `' ) // skip over `` inside `...`
1653
1653
{
1654
1654
AUTO_TRACE_ADD (" case1.1" );
1655
1655
// skip
@@ -1664,7 +1664,7 @@ int Markdown::Private::processCodeSpan(std::string_view data,size_t offset)
1664
1664
}
1665
1665
else if (i==nb) // ``...``
1666
1666
{
1667
- if (end<size && data[end+1 ]==' `' ) // do greedy match
1667
+ if (end+ 1 <size && data[end+1 ]==' `' ) // do greedy match
1668
1668
{
1669
1669
// skip this quote and use the next one to terminate the sequence, e.g. ``X`Y```
1670
1670
i--;
@@ -1688,15 +1688,15 @@ int Markdown::Private::processCodeSpan(std::string_view data,size_t offset)
1688
1688
pc = ' \n ' ;
1689
1689
i = 0 ;
1690
1690
}
1691
- else if (data[end]==' \' ' && nb==1 && (end==size- 1 || (end+1 <size && data[end+1 ]!=' \' ' && !isIdChar (data[end+1 ]))))
1691
+ else if (data[end]==' \' ' && nb==1 && (end+ 1 ==size || (end+1 <size && data[end+1 ]!=' \' ' && !isIdChar (data[end+1 ]))))
1692
1692
{ // look for quoted strings like 'some word', but skip strings like `it's cool`
1693
1693
out+=" ‘" ;
1694
1694
out+=data.substr (nb,end-nb);
1695
1695
out+=" ’" ;
1696
1696
AUTO_TRACE_EXIT (" quoted end={}" ,end+1 );
1697
1697
return static_cast <int >(end+1 );
1698
1698
}
1699
- else if (data[end]==' \' ' && nb==2 && end<size- 1 && data[end+1 ]==' \' ' )
1699
+ else if (data[end]==' \' ' && nb==2 && end+ 1 <size && data[end+1 ]==' \' ' )
1700
1700
{ // look for '' to match a ``
1701
1701
out+=" “" ;
1702
1702
out+=data.substr (nb,end-nb);
0 commit comments