Skip to content

Commit 4dc0e97

Browse files
Revert "merge in changes from cmark-gfm 0.29.0.gfm.11"
1 parent 5ccf7dc commit 4dc0e97

27 files changed

+224
-406
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ project(cmark-gfm)
44
set(PROJECT_VERSION_MAJOR 0)
55
set(PROJECT_VERSION_MINOR 29)
66
set(PROJECT_VERSION_PATCH 0)
7-
set(PROJECT_VERSION_GFM 11)
7+
set(PROJECT_VERSION_GFM 6)
88
set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.gfm.${PROJECT_VERSION_GFM})
99

1010
include("FindAsan.cmake")

api_test/main.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1575,7 +1575,6 @@ int main() {
15751575
int retval;
15761576
test_batch_runner *runner = test_batch_runner_new();
15771577

1578-
cmark_enable_safety_checks(true);
15791578
version(runner);
15801579
constructor(runner);
15811580
accessors(runner);

changelog.txt

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,3 @@
1-
[0.29.0.gfm.11]
2-
3-
* Improved fixes for polynomial time complexity issues per
4-
https://github.com/github/cmark-gfm/security/advisories/GHSA-66g8-4hjf-77xh
5-
(#323, #324)
6-
* Added fuzzing target for bracketed patterns (#318)
7-
* Fixed bug in list numbering introduced in
8-
763587e8775350b8cb4a2aa0f4cec3685aa96e8b (#322) which caused list numbers
9-
to increment by 2
10-
* Fixed strict prototype clang warning (#310)
11-
* Fixed regression test (#312)
12-
* Added additional output formats to quadratic fuzzer (#327)
13-
* Fixed buffer overflow in fuzzing harness (#326)
14-
15-
Note: these changes may lead to minor changes in expected output on plaintext
16-
rendering of list items. Notably, blank lines may no longer delineate the start
17-
of a list when rendering to plaintext due to changes in how the tight list status
18-
is calculated.
19-
20-
[0.29.0.gfm.10]
21-
22-
* Fixed polynomial time complexity issue per
23-
https://github.com/github/cmark-gfm/security/advisories/GHSA-r8vr-c48j-fcc5
24-
* Fixed polynomial time complexity issues per
25-
https://github.com/github/cmark-gfm/security/advisories/GHSA-66g8-4hjf-77xh
26-
27-
Note: these changes remove redundant bold tag nesting which may result
28-
in existing rendering tests failing, e.g. rendering "____bold____" to html
29-
will no longer yield "<p><strong><strong>bold</strong></strong></p>".
30-
31-
[0.29.0.gfm.9]
32-
33-
* Cleanup: Use of a private header was cleaned up (#248)
34-
* Cleanup: Man page was updated (#255)
35-
* Cleanup: Warnings for -Wstrict-prototypes were cleaned up (#285)
36-
* Cleanup: We avoid header duplication (#289)
37-
38-
* We now store positioning info for url_match (#201)
39-
* We now expose cmark_parent_footnote_def for non-C renderers (#254)
40-
* Footnote aria-label text now reference the specific footnote backref, and we include a data-footnote-backref-idx attribute so the label can be internationalized in a downstream filter (#307)
41-
421
[0.29.0.gfm.8]
432

443
* We restored backwards compatibility by deprecating the `cmark_init_standard_node_flags()` requirement, which is now a noop (#305)

extensions/CMakeLists.txt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ include_directories(
1717
${PROJECT_BINARY_DIR}/src
1818
)
1919

20+
include (GenerateExportHeader)
21+
2022
include_directories(include ${CMAKE_CURRENT_BINARY_DIR})
2123

2224
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE} -pg")
@@ -27,7 +29,6 @@ if (CMARK_SHARED)
2729

2830
set_target_properties(${LIBRARY} PROPERTIES
2931
OUTPUT_NAME "cmark-gfm-extensions"
30-
DEFINE_SYMBOL "cmark-gfm"
3132
SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.gfm.${PROJECT_VERSION_GFM}
3233
VERSION ${PROJECT_VERSION})
3334

@@ -37,6 +38,9 @@ if (CMARK_SHARED)
3738
# Avoid name clash between PROGRAM and LIBRARY pdb files.
3839
set_target_properties(${LIBRARY} PROPERTIES PDB_NAME cmark-gfm-extensions_dll)
3940

41+
generate_export_header(${LIBRARY}
42+
BASE_NAME cmark-gfm-extensions)
43+
4044
list(APPEND CMARK_INSTALL ${LIBRARY})
4145
target_link_libraries(${LIBRARY} libcmark-gfm)
4246

@@ -47,7 +51,6 @@ if (CMARK_STATIC)
4751

4852
set_target_properties(${STATICLIBRARY} PROPERTIES
4953
COMPILE_FLAGS "-DCMARK_GFM_STATIC_DEFINE -DCMARK_GFM_EXTENSIONS_STATIC_DEFINE"
50-
DEFINE_SYMBOL "cmark-gfm"
5154
POSITION_INDEPENDENT_CODE ON)
5255

5356
if (MSVC)
@@ -60,6 +63,11 @@ if (CMARK_STATIC)
6063
VERSION ${PROJECT_VERSION})
6164
endif(MSVC)
6265

66+
if (NOT CMARK_SHARED)
67+
generate_export_header(${STATICLIBRARY}
68+
BASE_NAME cmark-gfm-extensions)
69+
endif()
70+
6371
list(APPEND CMARK_INSTALL ${STATICLIBRARY})
6472
endif()
6573

@@ -76,6 +84,7 @@ install(TARGETS ${CMARK_INSTALL}
7684
if (CMARK_SHARED OR CMARK_STATIC)
7785
install(FILES
7886
${CMAKE_CURRENT_SOURCE_DIR}/include/cmark-gfm-core-extensions.h
87+
${CMAKE_CURRENT_SOURCE_DIR}/include/extensions-export.h
7988
DESTINATION include
8089
)
8190

extensions/autolink.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -267,11 +267,6 @@ static cmark_node *url_match(cmark_parser *parser, cmark_node *parent,
267267
cmark_node *text = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem);
268268
text->as.literal = url;
269269
cmark_node_append_child(node, text);
270-
271-
node->start_line = text->start_line = node->end_line = text->end_line = cmark_inline_parser_get_line(inline_parser);
272-
273-
node->start_column = text->start_column = max_rewind - rewind;
274-
node->end_column = text->end_column = cmark_inline_parser_get_column(inline_parser) - 1;
275270

276271
return node;
277272
}

extensions/include/cmark-gfm-core-extensions.h

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,40 +6,40 @@ extern "C" {
66
#endif
77

88
#include "cmark-gfm-extension_api.h"
9-
#include "export.h"
10-
#include <stdbool.h>
9+
#include "extensions-export.h"
10+
#include "cmark-gfm_config.h" // for bool
1111
#include <stdint.h>
1212

13-
CMARK_GFM_EXPORT
13+
CMARK_GFM_EXTENSIONS_EXPORT
1414
void cmark_gfm_core_extensions_ensure_registered(void);
1515

16-
CMARK_GFM_EXPORT
16+
CMARK_GFM_EXTENSIONS_EXPORT
1717
uint16_t cmark_gfm_extensions_get_table_columns(cmark_node *node);
1818

1919
/** Sets the number of columns for the table, returning 1 on success and 0 on error.
2020
*/
21-
CMARK_GFM_EXPORT
21+
CMARK_GFM_EXTENSIONS_EXPORT
2222
int cmark_gfm_extensions_set_table_columns(cmark_node *node, uint16_t n_columns);
2323

24-
CMARK_GFM_EXPORT
24+
CMARK_GFM_EXTENSIONS_EXPORT
2525
uint8_t *cmark_gfm_extensions_get_table_alignments(cmark_node *node);
2626

2727
/** Sets the alignments for the table, returning 1 on success and 0 on error.
2828
*/
29-
CMARK_GFM_EXPORT
29+
CMARK_GFM_EXTENSIONS_EXPORT
3030
int cmark_gfm_extensions_set_table_alignments(cmark_node *node, uint16_t ncols, uint8_t *alignments);
3131

32-
CMARK_GFM_EXPORT
32+
CMARK_GFM_EXTENSIONS_EXPORT
3333
int cmark_gfm_extensions_get_table_row_is_header(cmark_node *node);
3434

3535
/** Sets the column span for the table cell, returning 1 on success and 0 on error.
3636
*/
37-
CMARK_GFM_EXPORT
37+
CMARK_GFM_EXTENSIONS_EXPORT
3838
int cmark_gfm_extensions_set_table_cell_colspan(cmark_node *node, unsigned colspan);
3939

4040
/** Sets the row span for the table cell, returning 1 on success and 0 on error.
4141
*/
42-
CMARK_GFM_EXPORT
42+
CMARK_GFM_EXTENSIONS_EXPORT
4343
int cmark_gfm_extensions_set_table_cell_rowspan(cmark_node *node, unsigned rowspan);
4444

4545
/**
@@ -50,7 +50,7 @@ int cmark_gfm_extensions_set_table_cell_rowspan(cmark_node *node, unsigned rowsp
5050
5151
Column span is only parsed when \c CMARK_OPT_TABLE_SPANS is set.
5252
*/
53-
CMARK_GFM_EXPORT
53+
CMARK_GFM_EXTENSIONS_EXPORT
5454
unsigned cmark_gfm_extensions_get_table_cell_colspan(cmark_node *node);
5555

5656
/**
@@ -61,22 +61,22 @@ unsigned cmark_gfm_extensions_get_table_cell_colspan(cmark_node *node);
6161
6262
Row span is only parsed when \c CMARK_OPT_TABLE_SPANS is set.
6363
*/
64-
CMARK_GFM_EXPORT
64+
CMARK_GFM_EXTENSIONS_EXPORT
6565
unsigned cmark_gfm_extensions_get_table_cell_rowspan(cmark_node *node);
6666

6767
/** Sets whether the node is a table header row, returning 1 on success and 0 on error.
6868
*/
69-
CMARK_GFM_EXPORT
69+
CMARK_GFM_EXTENSIONS_EXPORT
7070
int cmark_gfm_extensions_set_table_row_is_header(cmark_node *node, int is_header);
7171

72-
CMARK_GFM_EXPORT
72+
CMARK_GFM_EXTENSIONS_EXPORT
7373
bool cmark_gfm_extensions_get_tasklist_item_checked(cmark_node *node);
7474
/* For backwards compatibility */
7575
#define cmark_gfm_extensions_tasklist_is_checked cmark_gfm_extensions_get_tasklist_item_checked
7676

7777
/** Sets whether a tasklist item is "checked" (completed), returning 1 on success and 0 on error.
7878
*/
79-
CMARK_GFM_EXPORT
79+
CMARK_GFM_EXTENSIONS_EXPORT
8080
int cmark_gfm_extensions_set_tasklist_item_checked(cmark_node *node, bool is_checked);
8181

8282
#ifdef __cplusplus
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#ifndef CMARK_GFM_EXTENSIONS_EXPORT_H
2+
#define CMARK_GFM_EXTENSIONS_EXPORT_H
3+
4+
#ifdef CMARK_USE_CMAKE_HEADERS
5+
// if the CMake config header exists, use that instead of this Swift package prebuilt one
6+
// we need to undefine the header guard, since export.h uses the same one
7+
#undef CMARK_GFM_EXTENSIONS_EXPORT_H
8+
#include "cmark-gfm-extensions_export.h"
9+
#else
10+
11+
#ifdef CMARK_GFM_EXTENSIONS_STATIC_DEFINE
12+
# define CMARK_GFM_EXTENSIONS_EXPORT
13+
# define CMARK_GFM_EXTENSIONS_NO_EXPORT
14+
#else
15+
# if defined(_WIN32)
16+
# ifndef CMARK_GFM_EXTENSIONS_EXPORT
17+
# ifdef libcmark_gfm_extensions_EXPORTS
18+
# define CMARK_GFM_EXTENSIONS_EXPORT __declspec(dllexport)
19+
# else
20+
# define CMARK_GFM_EXTENSIONS_EXPORT __declspec(dllimport)
21+
# endif
22+
# endif
23+
24+
# ifndef CMARK_GFM_EXTENSIONS_NO_EXPORT
25+
# define CMARK_GFM_EXTENSIONS_NO_EXPORT
26+
# endif
27+
# else
28+
# ifndef CMARK_GFM_EXTENSIONS_EXPORT
29+
# ifdef libcmark_gfm_extensions_EXPORTS
30+
# define CMARK_GFM_EXTENSIONS_EXPORT __attribute__((__visibility__("default")))
31+
# else
32+
# define CMARK_GFM_EXTENSIONS_EXPORT __attribute__((__visibility__("default")))
33+
# endif
34+
# endif
35+
36+
# ifndef CMARK_GFM_EXTENSIONS_NO_EXPORT
37+
# define CMARK_GFM_EXTENSIONS_NO_EXPORT __attribute__((__visibility__("hidden")))
38+
# endif
39+
# endif
40+
#endif
41+
42+
#ifndef CMARK_GFM_EXTENSIONS_DEPRECATED
43+
# if defined(_WIN32)
44+
# define CMARK_GFM_EXTENSIONS_DEPRECATED __declspec(deprecated)
45+
# else
46+
# define CMARK_GFM_EXTENSIONS_DEPRECATED __attribute__ ((__deprecated__))
47+
# endif
48+
#endif
49+
50+
#ifndef CMARK_GFM_EXTENSIONS_DEPRECATED_EXPORT
51+
# define CMARK_GFM_EXTENSIONS_DEPRECATED_EXPORT CMARK_GFM_EXTENSIONS_EXPORT CMARK_GFM_EXTENSIONS_DEPRECATED
52+
#endif
53+
54+
#ifndef CMARK_GFM_EXTENSIONS_DEPRECATED_NO_EXPORT
55+
# define CMARK_GFM_EXTENSIONS_DEPRECATED_NO_EXPORT CMARK_GFM_EXTENSIONS_NO_EXPORT CMARK_GFM_EXTENSIONS_DEPRECATED
56+
#endif
57+
58+
#endif /* CMARK_GFM_EXTENSIONS_EXPORT_H */
59+
60+
#endif /* "cmark-gfm-extensions_export.h" */

fuzz/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,3 @@ macro(fuzzer name)
1919
endmacro()
2020

2121
fuzzer(fuzz_quadratic)
22-
fuzzer(fuzz_quadratic_brackets)

fuzz/fuzz_quadratic.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,8 @@ int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
7575

7676
cmark_parser_feed(parser, markdown, markdown_size);
7777
cmark_node *doc = cmark_parser_finish(parser);
78-
78+
7979
free(cmark_render_html(doc, fuzz_config.options, NULL));
80-
free(cmark_render_xml(doc, fuzz_config.options));
81-
free(cmark_render_man(doc, fuzz_config.options, 80));
82-
free(cmark_render_commonmark(doc, fuzz_config.options, 80));
83-
free(cmark_render_plaintext(doc, fuzz_config.options, 80));
84-
free(cmark_render_latex(doc, fuzz_config.options, 80));
8580

8681
cmark_node_free(doc);
8782
cmark_parser_free(parser);

0 commit comments

Comments
 (0)