diff options
author | stanley lieber <stanley.lieber@gmail.com> | 2014-03-07 11:44:05 -0500 |
---|---|---|
committer | stanley lieber <stanley.lieber@gmail.com> | 2014-03-07 11:44:05 -0500 |
commit | 0c005b510506d341e7a8134a4eb2ad48fdbc8168 (patch) | |
tree | f842adbfb7d58e606e517d2769b51e4cd97c8376 | |
parent | f88d0c372d9e23c82b6b89f85690d26959d83441 (diff) | |
download | plan9front-0c005b510506d341e7a8134a4eb2ad48fdbc8168.tar.xz |
mothra: handle blank lines inside <pre> tags
-rw-r--r-- | sys/src/cmd/mothra/rdhtml.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/sys/src/cmd/mothra/rdhtml.c b/sys/src/cmd/mothra/rdhtml.c index 88bb4f853..cf13c213f 100644 --- a/sys/src/cmd/mothra/rdhtml.c +++ b/sys/src/cmd/mothra/rdhtml.c @@ -540,9 +540,9 @@ int pl_gettag(Hglob *g){ return ENDTAG; } /* - * The next token is a tag, an end tag or a sequence of - * non-white characters. - * If inside <pre>, newlines are converted to <br> and spaces are preserved. + * The next token is a tag, an end tag or a sequence of non-white + * characters. If inside <pre>, single newlines are converted to <br>, + * double newlines are converted to <p> and spaces are preserved. * Otherwise, spaces and newlines are noted and discarded. */ int pl_gettoken(Hglob *g){ @@ -552,8 +552,15 @@ int pl_gettoken(Hglob *g){ case STAG: return pl_gettag(g); case EOF: return EOF; case '\n': - pl_tagparse(g, "br"); - return TAG; + switch(c=pl_nextc(g)){ + case '\n': + pl_tagparse(g, "p"); + return TAG; + default: + pl_tagparse(g, "br"); + pl_putback(g, c); + return TAG; + } default: tokp=g->token; while(c=='\t'){ |