version 1.22, 2014/04/03 16:50:32 |
version 1.23, 2014/04/07 11:46:03 |
Line 187 trylink(const char *buf, size_t *start, size_t end, si |
|
Line 187 trylink(const char *buf, size_t *start, size_t end, si |
|
* Scan to the start of the terminus. |
* Scan to the start of the terminus. |
* This function is more or less replicated in the formatcode() |
* This function is more or less replicated in the formatcode() |
* for null or index formatting codes. |
* for null or index formatting codes. |
|
* However, we're slightly different because we might have |
|
* nested escapes we need to ignore. |
*/ |
*/ |
stack = 0; |
stack = 0; |
for (linkstart = realend = *start; realend < end; realend++) { |
for (linkstart = realend = *start; realend < end; realend++) { |
|
if ('<' == buf[realend]) |
|
stack++; |
if ('>' != buf[realend]) |
if ('>' != buf[realend]) |
continue; |
continue; |
else if (dsz == 1) |
else if (stack-- > 0) |
|
continue; |
|
if (dsz == 1) |
break; |
break; |
assert(realend > 0); |
assert(realend > 0); |
if (' ' != buf[realend - 1]) |
if (' ' != buf[realend - 1]) |