Sha256: 99a550bcb6987b5bdd9843c272608dfba72dd6e17f8ca7c9987f33be2fe09cdd
Contents?: true
Size: 1.64 KB
Versions: 5
Compression:
Stored size: 1.64 KB
Contents
/* markdown: a C implementation of John Gruber's Markdown markup language. * * Copyright (C) 2007 David L Parsons. * The redistribution terms are provided in the COPYRIGHT file that must * be distributed with this source code. */ #include <stdio.h> #include <string.h> #include <stdarg.h> #include <stdlib.h> #include <time.h> #include <ctype.h> #include "config.h" #include "cstring.h" #include "markdown.h" #include "amalloc.h" /* return the xml version of a character */ static char * mkd_xmlchar(unsigned char c) { switch (c) { case '<': return "<"; case '>': return ">"; case '&': return "&"; case '"': return """; case '\'': return "'"; default: if ( isascii(c) || (c & 0x80) ) return 0; return ""; } } /* write output in XML format */ int mkd_generatexml(char *p, int size, FILE *out) { unsigned char c; char *entity; while ( size-- > 0 ) { c = *p++; if ( entity = mkd_xmlchar(c) ) DO_OR_DIE( fputs(entity, out) ); else DO_OR_DIE( fputc(c, out) ); } return 0; } /* build a xml'ed version of a string */ int mkd_xml(char *p, int size, char **res) { unsigned char c; char *entity; Cstring f; CREATE(f); RESERVE(f, 100); while ( size-- > 0 ) { c = *p++; if ( entity = mkd_xmlchar(c) ) Cswrite(&f, entity, strlen(entity)); else Csputc(c, &f); } /* HACK ALERT! HACK ALERT! HACK ALERT! */ *res = T(f); /* we know that a T(Cstring) is a character pointer */ /* so we can simply pick it up and carry it away, */ return S(f); /* leaving the husk of the Ctring on the stack */ /* END HACK ALERT */ }
Version data entries
5 entries across 5 versions & 2 rubygems
Version | Path |
---|---|
rdiscountwl-1.0.0.2 | ext/xml.c |
rdiscountwl-1.0.0.1 | ext/xml.c |
rdiscount-2.2.0.2 | ext/xml.c |
rdiscount-2.2.0.1 | ext/xml.c |
rdiscount-2.2.0 | ext/xml.c |