summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2014-11-09Initial steps towards link parsing.John MacFarlane
2014-11-09Simplified link_label parser.John MacFarlane
It now just scans for an unescaped `]`. No `[` characters are permitted in labels. Backticks don't have their usual meaning in labels. This accords with the behavior of some of the main Markdown parsers: marked, sundown, discount, kramdown, showdown, Markdown.pl, PHP Markdown.
2014-11-07Removed unused emphasis_nestlevel.John MacFarlane
2014-11-07Factored out push_delimiter.John MacFarlane
Conflicts: src/inlines.c
2014-11-07Replace parse_inlines_while with parse_inlines_from_subject.John MacFarlane
2014-11-07Shared library is again libcmark.John MacFarlane
2014-11-07More cmake cleanup.John MacFarlane
2014-11-07Fixed compiler warnings in cmake.John MacFarlane
2014-11-07Moved include file check to src/CMakeLists.txt.John MacFarlane
2014-11-07Removed old man/CMakeLists.txt.John MacFarlane
2014-11-07Added cmake_minimum_version to src/CMakeLists.txt.John MacFarlane
2014-11-07Reformatted src/CMakeLists.txt.John MacFarlane
2014-11-06Merge branch 'cmake'John MacFarlane
Conflicts: Makefile
2014-11-06More cmake improvements.John MacFarlane
2014-11-06Removed unnecessary C99-ism.John MacFarlane
2014-11-06Removed unnecessary C99-ism.John MacFarlane
2014-11-06cmake: Create and install shared library.John MacFarlane
2014-11-06Quick fix to #168.John MacFarlane
Ultimately we'll have a better (stack-based?) parser for links, and we can have something more elegant. This fix removes an optimization which gave wrong results for `*hi [there*]`.
2014-11-06Use non-recursive algorithm for process_inlines.John MacFarlane
Closes #187.
2014-11-06Made blocks_to_html non-recursive (using a stack).John MacFarlane
This will help avoid stack overflows with deeply nested structures. See #187.
2014-11-06buffer: added strbuf_rtrim function.John MacFarlane
2014-11-06Reformatted code consistently.John MacFarlane
2014-11-06HTML renderer: render alt text as plain, unformatted string.John MacFarlane
2014-11-06Use render stack for inline links.John MacFarlane
2014-11-05Use regular strings for literal in render_stack.John MacFarlane
2014-11-05Use stack approach for rendering strong, emph.John MacFarlane
2014-11-05Added basic infrastructure for render_stack.John MacFarlane
2014-11-05Give warning on unknown inline type.John MacFarlane
2014-11-05Improved free_inlines.John MacFarlane
2014-11-05Made block-freeing slightly more efficient by using last_child.John MacFarlane
2014-11-05Made cmark_free_nodes non-recursive.John MacFarlane
See #187.
2014-11-05Removed stack limits in inline parsing.John MacFarlane
This brings back segfaults, but we're now aiming for a better solution, revising the renderer so it doesn't use recursion, and using a stack approach for nested brackets. Removing these limits will allow us to know when we've got it right. See #166, #187.
2014-11-05free_inlines: use non-recursive algorithm.John MacFarlane
This will help avoid stack overflows in deeply nested structures. Partially addresses #187 (still need to do renderers).
2014-11-05Removed recursive call to handle_strong_emph.John MacFarlane
Closes #186 - in a somewhat different way than in the PR. This is simpler and I don't see any significant impact on performance in my tests.
2014-11-03Removed artificial rule for emph/strong markers.John MacFarlane
Previously there was a rule that nothing in a string of more than 3 `*` or `_` characters could close or start emphasis. This was artifical and led to strange asymmetries, e.g. you could have `*a *b**` emph within emph but not `**a **b****` strong within strong. The new parsing strategy makes it easy to remove this limitation. Spec, js, and c implementations have been updated. Spec might need some further grooming.
2014-10-31Merge branch 'master' into cmakeJohn MacFarlane
2014-10-28Disallow bracketed labels nested more than 1000 deep.John MacFarlane
For performance reasons. See #166.
2014-10-28Changed EMPHASIS_STACK_LIMIT -> STACK_LIMIT.John MacFarlane
We'll also use it in parsing bracketed link labels.
2014-10-28Rename number_of_emphasis_openers -> emphasis_nestlevel.John MacFarlane
2014-10-26Require space before closing # sequence in ATX header.John MacFarlane
Closes #169.
2014-10-26Add EMPHASIS_STACK_LIMIT.John MacFarlane
If we get more than 1000 deep in potential emphasis/strong emphasis openers, we refuse to add more to the stack. This prevents the sort of stack overflow we previously got with python -c 'print "*a **a " * 100000; print " a** a*" * 100000' | ./cmark Partially addresses #166.
2014-10-25CMakeLists tweaks.John MacFarlane
Use compiler optimizations, -Wall, -Werror.
2014-10-25config.h unnecessary for now.John MacFarlane
2014-10-25Removed obsolete src/getopt.c; modified CMake build accordingly.John MacFarlane
2014-10-25Merge branch 'cmake-build' of https://github.com/gittiver/stmd into ↵John MacFarlane
gittiver-cmake-build Conflicts: .gitignore
2014-10-24Renamed c program and library stmd -> cmark.John MacFarlane
Also renamed internal library functions accordingly.
2014-10-24Only define MIN if it's undefined.John MacFarlane
Note: it is defined in GNU libc (Linux) and FreeBSD and OSX sys/param.h.
2014-10-24Merge branch 'master' of https://github.com/abduelhamit/stmd into ↵John MacFarlane
abduelhamit-master
2014-10-24Add a newline to a line that doesn't end with one.John MacFarlane
Closes #115.
2014-10-24Fixed regex for processing instruction.John MacFarlane
We now handle properly `<?php echo '>'; ?>`. Closes #117.