Log

Author Commit Date CI Message
Martin Mitas 26c5268e 2018-04-12T11:51:21 md2html.c: Add newline to some error messages.
Martin Mitas fdc1d61e 2018-04-11T19:47:11 In md_is_atxheader_line(), set *p_end on success. This prevents reiteration over the ATX header prefix in the caller.
Martin Mitas 0d1a41a4 2018-03-28T08:21:21 md_build_attr_append_substr: Fix +1 allocation error. Fixes #33.
Martin Mitas e0002e2b 2017-12-27T09:45:34 md4c.h: Fix some copy&paste errors in comments.
Martin Mitas 3cf6637b 2017-12-10T16:11:36 run-tests.sh: Use 'py' utility if available.
Martin Mitas 8bb5e2dc 2017-09-29T23:42:36 md4c.h: Fix typo in an #error message.
Martin Mitas c3c1f9b0 2017-09-29T23:37:31 README.md: Minor fix.
Martin Mitas afc779f9 2017-09-11T11:07:05 Avoid initializing strings with literals without '\0' terminator. It improves maintainability of the code and it should also fix some MSVC2015 warnings (see #26).
Martin Mitas 5f47a5cb 2017-09-11T10:55:21 md_build_attribute: Handle U+0000 character.
Martin Mitas bad11ede 2017-08-31T14:49:18 Fix path in codecov.yml
Martin Mitas 44fc7cf2 2017-08-30T16:06:44 Merge branch 'master' of https://github.com/mity/md4c
Martin Mitas 7906f4ee 2017-08-30T16:05:27 Add codecov.yml to ignore test dir in coverage reports.
Martin Mitas 8bfb6785 2017-08-28T16:16:59 render_html: Get rid of global variable. This is a residue which by mistake survived the isolation of the rendering code in the c850843c12468c6bd500b4c1d86653bdac5628d4.
Martin Mitas dc3dde78 2017-08-28T16:14:04 render_html: Add a new line after <ol>. This makes the behavior more consistent with <ul>.
Martin Mitas 19b24bdd 2017-08-16T18:15:19 Simplify the pathological test "many references".
Martin Mitas 07cec7dc 2017-08-16T16:34:50 Add regression test for #24.
Martin Mitas 2e0a74ba 2017-08-16T16:01:45 Fix problematic link destinations with angle brackets. Fixes #24.
Martin Mitas 9b8058d5 2017-08-13T11:47:18 .travis.yml: Make sure we make a debug build. This should be more friendly to code coverage analysis.
Martin Mitas a2d8c37b 2017-08-13T11:24:24 README.md: Improve badge labels.
Martin Mitas 71aa92db 2017-08-13T11:03:47 .travis.yml: Install python3 for running tests.
Martin Mitas 944139e5 2017-08-13T10:57:12 Create code coverage report by lcov.
Martin Mitas 4f4bbcaa 2017-08-13T10:47:48 Migrate code coverage reporting from coveralls.io to codecov.io.
Martin Mitas 17ad25ee 2017-08-03T11:59:25 CMakeLists.txt: Do not force -O2 in the release build. With newer gcc (7.1), -O3 and -O2 makes real difference in the resulted performance. On my Linux machine it makes about 10% when tested with Cmark's `make bench`.
Martin Mitas 3571c2f0 2017-08-02T00:41:14 Bump version to 0.2.3.
Martin Mitas 70925cac 2017-08-02T00:40:27 README.md: Upgrade CommonMark version to 0.28.
Martin Mitas 25228d5d 2017-01-08T09:25:10 md_is_link_destination_B: Apply new spec rules for parenthesis. The specification now allows nesting parenthesis inside a link destination as long as opening and closing ones are balanced.
Martin Mitas a847f552 2017-01-08T09:14:49 md_process_inlines: Apply new spec rules for emph/strong emph. The spec now states that for ***foo*** we have to genarate <em><strong>foo</strong></em> instead of <strong><em>foo</em></strong>
Martin Mitas ee3bee1a 2017-08-02T00:37:18 Upgrade to CommonMark specification 0.28.
Martin Mitas 938460d5 2017-07-24T21:17:53 Improve/unify output of test scripts.
Martin Mitas c52a50a3 2017-07-24T21:07:09 pathological_tests.py: Add test for reference definition lookup.
Martin Mitas f0103c16 2017-07-25T00:26:43 MD_MARK structure: Do not limit prev/next members to 24 bits. For normal kind of input, using full 32 bits makes no big difference. And limiting those members to 24 bits was maybe a security issue. That implied a limit of 2 ** 24 == 16,777,216 marks per a single block. As big as it may seem, malicious input may contain more. And if the input is carefully crafted, the mark chains could theoretically form a circles due to some overflows in these members, which could maybe make the parser to never finish.
Martin Mitas 591b2d21 2017-07-25T00:08:51 md_analyze_marks: Make the function inline.
Martin Mitas 61d38ef4 2017-07-24T23:59:23 md_analyze_marks: Remove unneeded parameters.
Martin Mitas c51fb310 2017-07-24T23:14:05 md_analyze_marks: Walk only required range of the marks. This changes causes that when recursing to analysis of link contents, only the marks between the link opener and closer are iterated in md_analyze_marks(). Fixes #22
Martin Mitas a27aefde 2017-07-24T20:17:50 pathological_tests.py: Allow short option -p as a synonym of --program.
Martin Mitas f4f7b223 2017-07-24T20:15:09 pathological_tests.py: Allow Windowish line ends.
Martin Mitas 26f14899 2017-07-24T19:27:27 Add pathological_tests.py from cmark.
Martin Mitas ad4f28bb 2017-07-24T20:09:23 md_analyze_simple_pairing_mark: Fix the "rule of three". If the first emphasis opener is refused due the rule of three, a previous opener is examined. However the variable opener_orig_size_module3 was not (re)set accordingly. Fixes #21.
Martin Mitas e351a1d5 2017-07-24T19:42:57 md_collect_marks: Minor refactorization of emhasis handler.
Martin Mitas 70d73941 2017-07-22T00:56:23 md_build_attribute: Propagate NULL string if attribute is empty.
Martin Mitas ca098547 2017-07-20T15:54:00 Avoid heap allocations when building trivial MD_ATTRIBUTE.
Martin Mitas a638a422 2017-07-18T19:04:08 md_build_ref_def_hashtable: Fix variable conflict. By copy&paste error, we have used two nested loops to use the same iterator.
Martin Mitas 6bc0b861 2017-07-18T18:50:07 Merge branch 'hash'
Martin Mitas cfbce759 2017-07-18T18:01:02 Rework ref. def. dictionary. It now uses FNV1a and we now sort/bsearch only contents of single bucket. Additionally we fix #20 by disabling the invalid ref. definitions during hashtable build.
Martin Mitas ff524e91 2017-07-17T08:50:04 Refactor: Isolate dictionary of reference defintions.
Martin Mitas 07c5dba9 2017-07-18T18:02:00 Remove unused structure member.
Martin Mitas 4e831dc1 2017-07-15T18:40:38 Add 2017 into copyright notes.
Martin Mitas f2821cbd 2017-07-14T17:10:45 md_analyze_permissive_email_autolink: Make it compatible with CMark-gfm.
Martin Mitas a83db2b7 2017-07-14T16:49:42 README.md: Minor update.
Martin Mitas 1bc7f3a8 2017-07-14T02:22:15 render_url_escaped: Fix escaping of ampersand. This affected generating href attribute if links or src attribute of images.
Martin Mitas f3f9404e 2017-07-14T02:06:23 Improve URL autolinks extension. It is now much more compatible to Cmark-gfm. With the flag MD_FLAG_PERMISSIVEWWWAUTOLINKS, we now also support the WWW autolinks (when the http: scheme is omitted).
Martin Mitas 8818ff14 2017-07-13T19:18:03 Get rid of unneeded MD_LINK_REF_DEF::index.
Martin Mitas 302cd5f8 2017-07-13T18:54:34 Improve lookup of link reference definitions. At the cost of remembering all reference definitions (even when having same label), we improved the lookup from O(n) to O(log(n)). This also fixes potential DOS attack by providing input with thousandslink reference definitions and references to them.
Martin Mitas 82c0eb53 2017-07-13T16:23:45 entity_lookup: Make it return UTF-32 codepoints. And adapted callers accordingly. Fixes #12.
Martin Mitas 25a156ee 2017-07-12T23:30:14 Implement strikethrough extension.
Martin Mitas d84dcec8 2017-07-12T22:53:54 md4c/md4c.h: MD_DIALECT_GITHUB does not imply MD_FLAG_PERMISSIVEATXHEADERS. Since migration to Cmark-gfm, github.com does not accept them anymore.
Martin Mitas aa51e86f 2017-07-12T22:52:58 md2html/md2html.c: Add options for Markdown dialect. Added support for options --commonmark and --github.
Martin Mitas 71d74e9f 2017-05-04T16:33:56 Merge branch 'master' of https://github.com/mity/md4c
Martin Mitas 921602b3 2017-05-04T16:21:34 md_is_link_reference_definition: Do not store multiple link definitions with same label.
ale rimoldi 19980907 2017-03-19T22:19:28 use typedef structs that are compatible with both c and c++
Martin Mitas aeaff18e 2017-01-04T16:41:46 Bump version to 0.2.2
Martin Mitas ea83b7f6 2017-01-04T21:57:49 md_analyze_simple_pairing_mark: Fix gcc warning.
Martin Mitas 8999e184 2017-01-04T14:40:44 Fix "rule of three" for emphasis resolution (issue #14).
Martin Mitas c63909df 2017-01-04T15:04:09 When splitting emphasis opener mark, we have to retain 'dummy' marks available for more splitting in the future (issue #15).
Martin Mitas 3c28a8b8 2017-01-04T14:29:50 md_rollback: Do not play with the mark flag MD_MARK_LEAF. And remove the flag altogether.
Martin Mitas 3688e0fc 2017-01-01T23:52:27 md_link_label_eq: Remove harmful anti-optimization.
Martin Mitas ca5da63d 2017-01-01T22:02:33 md_collect_marks: Optimize in case of 8-bit encodings by eliminating some branches in the fast path.
Martin Mitas 443ee515 2017-01-01T21:39:48 md_collect_marks: Optimize the fast path by making its loops tighter.
Martin Mitas 7cb7f65c 2017-01-01T18:20:25 md_collect_marks: Optimize fast path by some manual loop unrolling.
Martin Mitas 2726b7cb 2017-01-01T17:40:02 Minor code cleanup.
Martin Mitas 9c644b40 2017-01-01T17:26:36 md_analyze_line: Optimize scanning for end of line.
Martin Mitas f1a63f1c 2017-01-01T16:18:42 md_process_table_row: Fix possible errorneous free() on an error path.
Martin Mitas 1a8ce93d 2016-12-28T00:02:23 Add macros MD_DIALECT_COMMONMARK and MD_DIALECT_GITHUB.
Martin Mitas 52712384 2016-12-27T22:47:03 When parsing tables, pipes inside a link/image/code span cannot make cell boundary (issue #7).
Martin Mitas 72173b3f 2016-12-21T19:17:07 Propagate to renderer more info about lists (issue #13). Make MD_BLOCK_OL_DETAIL and MD_BLOCK_UL_DETAIL (new structure) expose more info about the lists. In particular flag whether the list is tight or loose, and info about the fundamental chartacter making the list item marks.
Martin Mitas a9582fa4 2016-12-16T11:23:34 .travis.yml: Add md2html to coveralls upload.
Martin Mitas ba686ec3 2016-12-16T10:16:17 render_html.c: Fix build with MSVC.
Martin Mitas c377f567 2016-12-16T10:06:07 Add some versioning info. * md4c.h now contains macros MD_VERSION_xxxx. * md2html has option --version. (Of course those shall have some meaningful values only when we introduce some release process.)
Martin Mitas c9ef8ccb 2016-12-16T09:59:03 render_html.c: Unify use of char versus MD_CHAR.
Martin Mitas c850843c 2016-12-16T09:47:06 md2html: Isolate HTML renderer into render_html.c (issue #8).
Martin Mitas 232ceeac 2016-12-16T00:11:23 md_analyze_line: A list item can begin with at most one blank line (issue #6). Hacky. I very dislike it, but it brings us full CommonMark 0.27 compliance. Hallelujah.
Martin Mitas 3ec2a195 2016-12-15T23:57:58 md_analyze_backtick: Ensire that code span opener and closer do not overlap.
Martin Mitas f9b4cb8f 2016-12-15T16:47:41 md_process_inlines: Fix when an expanded mark shadows some nested marks (issue #11).
Martin Mitas c235a02e 2016-12-15T13:18:48 test/coverage.txt: Add some tests for higher code coverage.
Martin Mitas a38c79db 2016-12-15T11:29:31 md_build_attr_append_substr: Fix leak on an error path (CID 1389262).
Martin Mitas a725fee3 2016-12-14T16:51:24 md_enter_child_containers: Fix crash (issue #10). Calling md_push_container_bytes() may result in ending a current block which may result in removing some contents from ctx->block_bytes when removing some lines with link reference definitions. This in effect means we have to end the block explicitly before storing the offset into the ctx->block_bytes.
Martin Mitas c085ab5c 2016-12-12T23:23:51 Implement support for entities outside normal text flow (issue #5). * Change API (md4c.h) to propagate different substring type info to renderer. * Implement/refactor related code in the parser. * Adapt renderer (md2html) to the new API.
Martin Mitas ba29d007 2016-12-12T23:31:59 md_is_link_reference_definition: Fix handling of multiline label (issue #9).
Martin Mitas a4d4f463 2016-12-12T18:04:14 README.md: Improve wording.
Martin Mitas 09ae8609 2016-12-07T23:56:47 Handle images more like links. Remove MD_SPAN_IMG_DETAIL::alt. Instead, the contents of the image is propagated to the renderer via MD_RENDERER::text() callback. * This fixes handling of entities inside the image text (issue #4). * It simplifies parsing and, more importantly, it better distingusshes what is responsibility of parser or renderer respectively. * This allows more flexibility on renderers side. Renderer who do not * really support images can just output the image content as any other text. The cost is a renderer into HTML (if it wants to render image contents into the attribute ALT of the IMG tag), has to handle images with more care. Typically such renderer has to track whether it is inside an image, and if so, then render span enter/leave as an empty string.
Martin Mitas b7f37ae6 2016-12-07T23:24:17 README.md: Minor update.
Martin Mitas 6d35c73c 2016-12-07T18:29:02 Minor cleanup.
Martin Mitas f0175cfc 2016-12-07T15:08:41 md_do_normalize_string: Fix checking whether we are done.
Martin Mitas 8f754776 2016-12-07T15:00:51 md_setup_fenced_code_detail: Fix size of temp. buffer.
Martin Mitas 4405d797 2016-12-07T14:29:49 md_analyze_line: Fix prioritization of "brother" list item detection.
Martin Mitas 45a10271 2016-12-07T13:43:54 md_do_normalize_string: Fix handling of escaped backslash ("\\").
Martin Mitas 29284842 2016-12-07T13:22:16 Handle escapes in code fence info string.
Martin Mitas 75cee13e 2016-12-07T13:04:29 Handle escape sequences in link titles.
Martin Mitas 29524387 2016-12-05T23:53:30 README.md: Minor update.
Martin Mitas 864da293 2016-12-05T21:25:29 Fix typos.