mirror of
https://github.com/Orc/discount.git
synced 2026-09-25 04:10:00 +03:00
Forgot to let mkd_text() write data in xml format.
This commit is contained in:
+4
-1
@@ -1296,7 +1296,10 @@ mkd_text(char *bfr, int size, FILE *output, int flags)
|
||||
|
||||
reparse(bfr, size, 0, &f);
|
||||
emblock(&f);
|
||||
fwrite(T(f.out), S(f.out), 1, output);
|
||||
if ( flags & CDATA_OUTPUT )
|
||||
___mkd_xml(T(f.out), S(f.out), output);
|
||||
else
|
||||
fwrite(T(f.out), S(f.out), 1, output);
|
||||
|
||||
___mkd_freemmiot(&f, 0);
|
||||
return 0;
|
||||
|
||||
@@ -120,5 +120,6 @@ extern void ___mkd_freefootnotes(MMIOT *);
|
||||
extern void ___mkd_initmmiot(MMIOT *, void *);
|
||||
extern void ___mkd_freemmiot(MMIOT *, void *);
|
||||
extern void ___mkd_freeLineRange(Line *, Line *);
|
||||
extern void ___mkd_xml(char *, int, FILE *);
|
||||
|
||||
#endif/*_MARKDOWN_D*/
|
||||
|
||||
@@ -190,22 +190,8 @@ mkd_generatehtml(Document *p, FILE *output)
|
||||
int szdoc;
|
||||
|
||||
if ( (szdoc = mkd_document(p, &doc)) != EOF ) {
|
||||
if ( p->ctx->flags & CDATA_OUTPUT ) {
|
||||
char c;
|
||||
|
||||
while ( szdoc-- > 0 ) {
|
||||
if ( !isascii(c = *doc++) )
|
||||
continue;
|
||||
switch (c) {
|
||||
case '<': fputs("<", output); break;
|
||||
case '>': fputs(">", output); break;
|
||||
case '&': fputs("&", output); break;
|
||||
case '"': fputs(""", output); break;
|
||||
case '\'':fputs("'", output); break;
|
||||
default: putc(c,output); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( p->ctx->flags & CDATA_OUTPUT )
|
||||
___mkd_xml(doc, szdoc, output);
|
||||
else
|
||||
fwrite(doc, szdoc, 1, output);
|
||||
putc('\n', output);
|
||||
|
||||
+22
@@ -143,3 +143,25 @@ mkd_cleanup(Document *doc)
|
||||
free(doc);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* write output in XML format
|
||||
*/
|
||||
void
|
||||
___mkd_xml(char *p, int size, FILE *out)
|
||||
{
|
||||
char c;
|
||||
|
||||
while ( size-- > 0 ) {
|
||||
if ( !isascii(c = *p++) )
|
||||
continue;
|
||||
switch (c) {
|
||||
case '<': fputs("<", out); break;
|
||||
case '>': fputs(">", out); break;
|
||||
case '&': fputs("&", out); break;
|
||||
case '"': fputs(""", out); break;
|
||||
case '\'':fputs("'", out); break;
|
||||
default: putc(c,out); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user