smu

Simple markup processor
git clone https://git.sinitax.com/codemadness/smu
Log | Files | Refs | README | LICENSE | Upstream | sfeed.txt

commit 9a9b9e346027fbeb6463b76d6b7b26e3b3589eaf
parent 3d24178d0c85b907cecec86264ef383474475ed1
Author: gottox@rootkit.lan <gottox@rootkit.lan>
Date:   Tue, 11 Dec 2007 11:55:47 +0100

replaced desclen and linklen by descend and linkend
images are now stackable into links.

Diffstat:
Mcmarkdown.c | 28+++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/cmarkdown.c b/cmarkdown.c @@ -142,35 +142,37 @@ dolineprefix(const char *begin, const char *end) { unsigned int dolink(const char *begin, const char *end) { int img; - const char *desc, *link, *p; - unsigned int desclen, linklen; + const char *desc, *link, *p, *q, *r, *descend, *linkend; - if(*begin != '[' && strncmp(begin,"![",2) != 0) - return 0; - img = 1; if(*begin == '[') img = 0; - desc = begin + 1 + img; + else if(strncmp(begin,"![",2) == 0) + img = 1; + else + return 0; + p = desc = begin + 1 + img; if(!(p = strstr(desc, "](")) || p > end) return 0; - desclen = p - desc; + for(q = strstr(desc, "!["); q && q < end && q < p; q = strstr(q+1,"![")) + if(!(p = strstr(p+1, "](")) || p > end) + return 0; + descend = p; link = p + 2; if(!(p = strstr(link, ")")) || p > end) return 0; - linklen = p - link; - + linkend = p; if(img) { fputs("<img src=\"",stdout); - process(link,link+linklen); + process(link,linkend); fputs("\" alt=\"",stdout); - process(desc,desc+desclen); + process(desc,descend); fputs("\" />",stdout); } else { fputs("<a href=\"",stdout); - process(link,link+linklen); + process(link,linkend); fputs("\">",stdout); - process(desc,desc+desclen); + process(desc,descend); fputs("</a>",stdout); } return p + 1 - begin;