aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2015-01-23Let cmake update versionNick Wellnhofer
Add a new template cmark_version.h.in to generate cmark_version.h containing version information.
2015-01-23Improve version informationNick Wellnhofer
Add version number and string as macros and symbols. Version numbers can be easily compared, for example in the C preprocessor: #include <cmark.h> #if CMARK_VERSION < 0x020200 #error Requires libcmark 2.2.0 or higher #endif Storing the version in a global variable allows to check the library version at runtime. For example: if (CMARK_VERSION != cmark_version) { warn("Compiled against libcmark %s, but using %s", CMARK_VERSION_STRING, cmark_version_string); } The version should be updated whenever the public API is changed.
2015-01-21Avoid free(0) for link titles and URLs.John MacFarlane
2015-01-21Removed unnecessary strbuf_free's.John MacFarlane
2015-01-21Avoid trying to free string_contents for inlines.John MacFarlane
This avoids an unnecessary free(0) -- and perhaps free(???). However, ltrace reveals that there is still a free(0) happening, with some other source.
2015-01-20Accessor for iterator's root nodeNick Wellnhofer
2015-01-20Add user data field for nodesNick Wellnhofer
2015-01-19Man writer: ensure we properly escape multiline strings.John MacFarlane
2015-01-18Readjust parser->current after closing fenced block.John MacFarlane
Added assertion to raise an error if finalize is called on a closed block (as was happening undetected because of the fallback behavior).
2015-01-18Changed rule for `_` emphasis and strong emphasis.John MacFarlane
To prevent intra-word emphasis, we used to check to see if the delimiter was followed/preceded by an ASCII alphanumeric. We now do something more elegant: whereas an opening `*` must be left-flanking, an opening `_` must be left-flanking *and not right-flanking*. And so on for the other cases. All the original tests passed except some tests with Russian text with internal `_`, which formerly created emphasis but no longer do with the new rule. These tests have been adjusted. A few new test cases have been added to illustrate the rule. The C and JS implementations have both been updated.
2015-01-17Removed some unneeded tests (code clarity).John MacFarlane
2015-01-17Small code clarification.John MacFarlane
2015-01-17Put check for fence close with the other checks for end-of-block.John MacFarlane
This is a more logical arrangement and follows recent changes to the JS implementation.
2015-01-16Fixed #285 in cmark.John MacFarlane
2015-01-16Nonrecursive rewrite of ends_with_blank_line.John MacFarlane
Closes #286.
2015-01-16Renamed parameters cmark_node -> node.John MacFarlane
Minor code reformatting: This corrects an overzealous global replace from earlier.
2015-01-12Some astyle reformatting.John MacFarlane
2015-01-11xml.c: Include level attribute in header.John MacFarlane
2015-01-11xml format: use 'destination' instead of 'url', like the spec.John MacFarlane
2015-01-12Reduce size of gperf entity tableNick Wellnhofer
Don't store length of UTF-8 string. It can be computed by NULL-terminating strings shorter than 4 bytes and using strnlen. Use gperf's string pool option. This allows to use an 'int' index into the string pool instead of a pointer and is helpful on 64-bit systems. Shaves about 75 KB off the 32-bit binaries on Linux and 128 KB off the 64-bit binaries on OS X.
2015-01-10Update iterator documentationNick Wellnhofer
2015-01-10Rework iteratorsNick Wellnhofer
* Advance to the next node when calling 'cmark_iter_next', not when calling 'cmark_iter_get_node'. * Add 'cmark_iter_get_event_type' accessor. * Allow deletion of nodes after an 'EXIT' event, or an 'ENTER' event for leaf nodes.
2015-01-10Optimize S_is_leafNick Wellnhofer
2015-01-09Minor code reformatting.John MacFarlane
2015-01-09xml writer: add list attributes.John MacFarlane
2015-01-08Added `cmark_iter_reset` and a note about handling destructive updates.John MacFarlane
2015-01-07cmark: Add function & option to normalize text nodes.John MacFarlane
So, instead of <text>Hi</text> <text>&amp;</text> <text>lo</text> we get <text>Hi&amp;lo</text> * Added exported `cmark_consolidate_text_nodes` function. * Added `CMARK_OPT_NORMALIZE` to options. * Added optional normalization in XML writer. * Added `--normalize` option to command-line program. * Updated man page.
2015-01-05Reformatted code consistently with astyle.John MacFarlane
2015-01-04xml writer - fixed issues with empty images.John MacFarlane
2015-01-03scanners.re: More accurate regex for HTML comments.John MacFarlane
Note: this only affects inline parsing. Block parsing is handled differently.
2014-12-31Recreate scanners.c only on demandNick Wellnhofer
2014-12-31Write to stdout in binary mode on WindowsNick Wellnhofer
This fixes the output of newlines.
2014-12-31Remove useless void* castNick Wellnhofer
2014-12-31Include guards and C linkage for cmark_ctype.hNick Wellnhofer
2014-12-31Feature test for va_copyNick Wellnhofer
MSVC doesn't support va_copy.
2014-12-31Add missing va_endNick Wellnhofer
2014-12-30Revert "Remove unneeded va_copy"John MacFarlane
This reverts commit 485ef21b95e257e9d9cbcaa804c3c164f1f49a80. Apparently the va_copy IS needed, because without this code we get segfaults in some cases. Closes #253. @nwellnhof, can you have a look at this issue and comment? I understand that this code was removed for portability reasons. Is there an alternative solution?
2014-12-30Revert "man: use a variable to store the char * from node_get_url."John MacFarlane
This reverts commit 46b67b710788be7924b5a412ab68eea3cac0cd96. I was mistaken that this helped. Which is good, because I would not have understood why it helped.
2014-12-30man: use a variable to store the char * from node_get_url.John MacFarlane
We get segfaults on some platforms when we do cmark_strbuf_printf(man, " (%s)", cmark_node_get_url(node)); but they go away with: url = cmark_node_get_url(node); cmark_strbuf_printf(man, " (%s)", url); I don't understand why. Closes #253.
2014-12-29Attempted optimization of cmark_ctype.John MacFarlane
Use a single lookup table for all character types. I'm not sure this actually helps so much.
2014-12-29Renamed a couple variables.John MacFarlane
2014-12-29Added cmark_ prefix to functions in cmark_ctype.John MacFarlane
2014-12-29Added cmark_ctype.h with locale-independent isspace, ispunct, etc.John MacFarlane
Otherwise cmark's behavior varies unpredictably with the locale. `is_punctuation` in utf8.h has also been adjusted so that everything that counts all ASCII symbol characters count as punctuation, even though some are not in P* character classes.
2014-12-29Avoid warning about unused options parameter in man writer.John MacFarlane
2014-12-29Make `--sourcepos` affect xml writer too.John MacFarlane
2014-12-29Added options parameter to renderers.John MacFarlane
To keep the API simple and avoid API changes when new options are added, this is just a long integer. Set it by disjoining options that are defined as powers of 2: e.g. `CMARK_HTML_SOURCEPOS | CMARK_HTML_HARDREAKS`. Test options using `&`: `if (options & CMARK_HTML_SOURCEPOS)`. Added `--hardbreaks` and `--sourcepos` command-line options.
2014-12-28Added cmark_node_set_list_delim, cmark_node_get_list_delim.John MacFarlane
Even though this doesn't make a difference in default HTML output, it's worth keeping track; some output formats may allow you to distinguish lists with `1)` and with `1.` delimiters.
2014-12-28Added CMARK_NO_DELIM to cmark_delim_typeJohn MacFarlane
2014-12-28Removed old 'ast' format, now that we have 'xml'.John MacFarlane
The xml representation of the AST is not quite as pretty, but it contains the same information and is not in an ad hoc format. See #53.
2014-12-28Improved end column/end line calculations in finalize.John MacFarlane