commonmarker 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of commonmarker might be problematic. Click here for more details.

Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/ext/commonmarker/cmark/CMakeLists.txt +10 -4
  3. data/ext/commonmarker/cmark/Makefile +5 -5
  4. data/ext/commonmarker/cmark/api_test/CMakeLists.txt +1 -1
  5. data/ext/commonmarker/cmark/api_test/main.c +16 -0
  6. data/ext/commonmarker/cmark/build/CMakeCache.txt +3 -4
  7. data/ext/commonmarker/cmark/build/CMakeFiles/2.8.10.1/CMakeSystem.cmake +4 -4
  8. data/ext/commonmarker/cmark/build/CMakeFiles/CMakeError.log +12 -12
  9. data/ext/commonmarker/cmark/build/CMakeFiles/CMakeOutput.log +97 -142
  10. data/ext/commonmarker/cmark/build/CMakeFiles/Makefile.cmake +0 -1
  11. data/ext/commonmarker/cmark/build/api_test/CMakeFiles/api_test.dir/build.make +1 -1
  12. data/ext/commonmarker/cmark/build/api_test/CMakeFiles/api_test.dir/link.txt +1 -1
  13. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark.dir/DependInfo.cmake +1 -1
  14. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark.dir/build.make +23 -23
  15. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark.dir/cmake_clean.cmake +2 -2
  16. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark.dir/link.txt +1 -1
  17. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/blocks.c.o +0 -0
  18. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/buffer.c.o +0 -0
  19. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/cmark.c.o +0 -0
  20. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/commonmark.c.o +0 -0
  21. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/houdini_html_u.c.o +0 -0
  22. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/html.c.o +0 -0
  23. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/inlines.c.o +0 -0
  24. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/node.c.o +0 -0
  25. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/references.c.o +0 -0
  26. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/render.c.o +0 -0
  27. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/scanners.c.o +0 -0
  28. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/utf8.c.o +0 -0
  29. data/ext/commonmarker/cmark/build/src/CMakeFiles/libcmark_static.dir/xml.c.o +0 -0
  30. data/ext/commonmarker/cmark/build/src/cmake_install.cmake +3 -3
  31. data/ext/commonmarker/cmark/build/src/cmark_version.h +2 -2
  32. data/ext/commonmarker/cmark/build/src/config.h +6 -6
  33. data/ext/commonmarker/cmark/build/src/libcmark.a +0 -0
  34. data/ext/commonmarker/cmark/build/src/libcmark.pc +1 -1
  35. data/ext/commonmarker/cmark/build/testdir/CTestTestfile.cmake +4 -4
  36. data/ext/commonmarker/cmark/changelog.txt +46 -0
  37. data/ext/commonmarker/cmark/man/man3/cmark.3 +21 -20
  38. data/ext/commonmarker/cmark/src/CMakeLists.txt +4 -6
  39. data/ext/commonmarker/cmark/src/bench.h +8 -8
  40. data/ext/commonmarker/cmark/src/blocks.c +917 -947
  41. data/ext/commonmarker/cmark/src/buffer.c +213 -288
  42. data/ext/commonmarker/cmark/src/buffer.h +19 -21
  43. data/ext/commonmarker/cmark/src/chunk.h +78 -82
  44. data/ext/commonmarker/cmark/src/cmark.c +9 -17
  45. data/ext/commonmarker/cmark/src/cmark.h +113 -157
  46. data/ext/commonmarker/cmark/src/cmark_ctype.c +24 -35
  47. data/ext/commonmarker/cmark/src/commonmark.c +390 -425
  48. data/ext/commonmarker/cmark/src/config.h.in +6 -6
  49. data/ext/commonmarker/cmark/src/houdini.h +21 -15
  50. data/ext/commonmarker/cmark/src/houdini_href_e.c +50 -57
  51. data/ext/commonmarker/cmark/src/houdini_html_e.c +36 -51
  52. data/ext/commonmarker/cmark/src/houdini_html_u.c +119 -124
  53. data/ext/commonmarker/cmark/src/html.c +289 -307
  54. data/ext/commonmarker/cmark/src/inlines.c +976 -1030
  55. data/ext/commonmarker/cmark/src/inlines.h +4 -2
  56. data/ext/commonmarker/cmark/src/iterator.c +96 -126
  57. data/ext/commonmarker/cmark/src/iterator.h +5 -5
  58. data/ext/commonmarker/cmark/src/latex.c +379 -401
  59. data/ext/commonmarker/cmark/src/main.c +168 -175
  60. data/ext/commonmarker/cmark/src/man.c +212 -226
  61. data/ext/commonmarker/cmark/src/node.c +746 -839
  62. data/ext/commonmarker/cmark/src/node.h +47 -48
  63. data/ext/commonmarker/cmark/src/parser.h +14 -14
  64. data/ext/commonmarker/cmark/src/references.c +101 -111
  65. data/ext/commonmarker/cmark/src/references.h +10 -8
  66. data/ext/commonmarker/cmark/src/render.c +144 -167
  67. data/ext/commonmarker/cmark/src/render.h +22 -41
  68. data/ext/commonmarker/cmark/src/scanners.c +27695 -20903
  69. data/ext/commonmarker/cmark/src/scanners.h +2 -1
  70. data/ext/commonmarker/cmark/src/scanners.re +1 -1
  71. data/ext/commonmarker/cmark/src/utf8.c +276 -419
  72. data/ext/commonmarker/cmark/src/utf8.h +6 -6
  73. data/ext/commonmarker/cmark/src/xml.c +129 -144
  74. data/ext/commonmarker/cmark/test/CMakeLists.txt +4 -4
  75. data/ext/commonmarker/cmark/test/smart_punct.txt +8 -0
  76. data/ext/commonmarker/cmark/test/spec.txt +109 -47
  77. data/lib/commonmarker/version.rb +1 -1
  78. metadata +2 -2
@@ -8,9 +8,11 @@ extern "C" {
8
8
  cmark_chunk cmark_clean_url(cmark_chunk *url);
9
9
  cmark_chunk cmark_clean_title(cmark_chunk *title);
10
10
 
11
- void cmark_parse_inlines(cmark_node* parent, cmark_reference_map *refmap, int options);
11
+ void cmark_parse_inlines(cmark_node *parent, cmark_reference_map *refmap,
12
+ int options);
12
13
 
13
- bufsize_t cmark_parse_reference_inline(cmark_strbuf *input, cmark_reference_map *refmap);
14
+ bufsize_t cmark_parse_reference_inline(cmark_strbuf *input,
15
+ cmark_reference_map *refmap);
14
16
 
15
17
  #ifdef __cplusplus
16
18
  }
@@ -7,142 +7,112 @@
7
7
  #include "iterator.h"
8
8
 
9
9
  static const int S_leaf_mask =
10
- (1 << CMARK_NODE_HTML) |
11
- (1 << CMARK_NODE_HRULE) |
12
- (1 << CMARK_NODE_CODE_BLOCK) |
13
- (1 << CMARK_NODE_TEXT) |
14
- (1 << CMARK_NODE_SOFTBREAK) |
15
- (1 << CMARK_NODE_LINEBREAK) |
16
- (1 << CMARK_NODE_CODE) |
17
- (1 << CMARK_NODE_INLINE_HTML);
18
-
19
- cmark_iter*
20
- cmark_iter_new(cmark_node *root)
21
- {
22
- if (root == NULL) {
23
- return NULL;
24
- }
25
- cmark_iter *iter = (cmark_iter*)malloc(sizeof(cmark_iter));
26
- if (iter == NULL) {
27
- return NULL;
28
- }
29
- iter->root = root;
30
- iter->cur.ev_type = CMARK_EVENT_NONE;
31
- iter->cur.node = NULL;
32
- iter->next.ev_type = CMARK_EVENT_ENTER;
33
- iter->next.node = root;
34
- return iter;
10
+ (1 << CMARK_NODE_HTML) | (1 << CMARK_NODE_HRULE) |
11
+ (1 << CMARK_NODE_CODE_BLOCK) | (1 << CMARK_NODE_TEXT) |
12
+ (1 << CMARK_NODE_SOFTBREAK) | (1 << CMARK_NODE_LINEBREAK) |
13
+ (1 << CMARK_NODE_CODE) | (1 << CMARK_NODE_INLINE_HTML);
14
+
15
+ cmark_iter *cmark_iter_new(cmark_node *root) {
16
+ if (root == NULL) {
17
+ return NULL;
18
+ }
19
+ cmark_iter *iter = (cmark_iter *)malloc(sizeof(cmark_iter));
20
+ if (iter == NULL) {
21
+ return NULL;
22
+ }
23
+ iter->root = root;
24
+ iter->cur.ev_type = CMARK_EVENT_NONE;
25
+ iter->cur.node = NULL;
26
+ iter->next.ev_type = CMARK_EVENT_ENTER;
27
+ iter->next.node = root;
28
+ return iter;
35
29
  }
36
30
 
37
- void
38
- cmark_iter_free(cmark_iter *iter)
39
- {
40
- free(iter);
41
- }
31
+ void cmark_iter_free(cmark_iter *iter) { free(iter); }
42
32
 
43
- static bool
44
- S_is_leaf(cmark_node *node)
45
- {
46
- return (1 << node->type) & S_leaf_mask;
33
+ static bool S_is_leaf(cmark_node *node) {
34
+ return ((1 << node->type) & S_leaf_mask) != 0;
47
35
  }
48
36
 
49
- cmark_event_type
50
- cmark_iter_next(cmark_iter *iter)
51
- {
52
- cmark_event_type ev_type = iter->next.ev_type;
53
- cmark_node *node = iter->next.node;
54
-
55
- iter->cur.ev_type = ev_type;
56
- iter->cur.node = node;
57
-
58
- if (ev_type == CMARK_EVENT_DONE) {
59
- return ev_type;
60
- }
61
-
62
- /* roll forward to next item, setting both fields */
63
- if (ev_type == CMARK_EVENT_ENTER && !S_is_leaf(node)) {
64
- if (node->first_child == NULL) {
65
- /* stay on this node but exit */
66
- iter->next.ev_type = CMARK_EVENT_EXIT;
67
- } else {
68
- iter->next.ev_type = CMARK_EVENT_ENTER;
69
- iter->next.node = node->first_child;
70
- }
71
- } else if (node == iter->root) {
72
- /* don't move past root */
73
- iter->next.ev_type = CMARK_EVENT_DONE;
74
- iter->next.node = NULL;
75
- } else if (node->next) {
76
- iter->next.ev_type = CMARK_EVENT_ENTER;
77
- iter->next.node = node->next;
78
- } else if (node->parent) {
79
- iter->next.ev_type = CMARK_EVENT_EXIT;
80
- iter->next.node = node->parent;
81
- } else {
82
- assert(false);
83
- iter->next.ev_type = CMARK_EVENT_DONE;
84
- iter->next.node = NULL;
85
- }
86
-
87
- return ev_type;
37
+ cmark_event_type cmark_iter_next(cmark_iter *iter) {
38
+ cmark_event_type ev_type = iter->next.ev_type;
39
+ cmark_node *node = iter->next.node;
40
+
41
+ iter->cur.ev_type = ev_type;
42
+ iter->cur.node = node;
43
+
44
+ if (ev_type == CMARK_EVENT_DONE) {
45
+ return ev_type;
46
+ }
47
+
48
+ /* roll forward to next item, setting both fields */
49
+ if (ev_type == CMARK_EVENT_ENTER && !S_is_leaf(node)) {
50
+ if (node->first_child == NULL) {
51
+ /* stay on this node but exit */
52
+ iter->next.ev_type = CMARK_EVENT_EXIT;
53
+ } else {
54
+ iter->next.ev_type = CMARK_EVENT_ENTER;
55
+ iter->next.node = node->first_child;
56
+ }
57
+ } else if (node == iter->root) {
58
+ /* don't move past root */
59
+ iter->next.ev_type = CMARK_EVENT_DONE;
60
+ iter->next.node = NULL;
61
+ } else if (node->next) {
62
+ iter->next.ev_type = CMARK_EVENT_ENTER;
63
+ iter->next.node = node->next;
64
+ } else if (node->parent) {
65
+ iter->next.ev_type = CMARK_EVENT_EXIT;
66
+ iter->next.node = node->parent;
67
+ } else {
68
+ assert(false);
69
+ iter->next.ev_type = CMARK_EVENT_DONE;
70
+ iter->next.node = NULL;
71
+ }
72
+
73
+ return ev_type;
88
74
  }
89
75
 
90
- void
91
- cmark_iter_reset(cmark_iter *iter, cmark_node *current,
92
- cmark_event_type event_type)
93
- {
94
- iter->next.ev_type = event_type;
95
- iter->next.node = current;
96
- cmark_iter_next(iter);
76
+ void cmark_iter_reset(cmark_iter *iter, cmark_node *current,
77
+ cmark_event_type event_type) {
78
+ iter->next.ev_type = event_type;
79
+ iter->next.node = current;
80
+ cmark_iter_next(iter);
97
81
  }
98
82
 
99
- cmark_node*
100
- cmark_iter_get_node(cmark_iter *iter)
101
- {
102
- return iter->cur.node;
103
- }
83
+ cmark_node *cmark_iter_get_node(cmark_iter *iter) { return iter->cur.node; }
104
84
 
105
- cmark_event_type
106
- cmark_iter_get_event_type(cmark_iter *iter)
107
- {
108
- return iter->cur.ev_type;
85
+ cmark_event_type cmark_iter_get_event_type(cmark_iter *iter) {
86
+ return iter->cur.ev_type;
109
87
  }
110
88
 
111
- cmark_node*
112
- cmark_iter_get_root(cmark_iter *iter)
113
- {
114
- return iter->root;
115
- }
116
-
117
-
118
- void cmark_consolidate_text_nodes(cmark_node *root)
119
- {
120
- cmark_iter *iter = cmark_iter_new(root);
121
- cmark_strbuf buf = GH_BUF_INIT;
122
- cmark_event_type ev_type;
123
- cmark_node *cur, *tmp, *next;
124
-
125
- while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
126
- cur = cmark_iter_get_node(iter);
127
- if (ev_type == CMARK_EVENT_ENTER &&
128
- cur->type == CMARK_NODE_TEXT &&
129
- cur->next &&
130
- cur->next->type == CMARK_NODE_TEXT) {
131
- cmark_strbuf_clear(&buf);
132
- cmark_strbuf_put(&buf, cur->as.literal.data, cur->as.literal.len);
133
- tmp = cur->next;
134
- while (tmp && tmp->type == CMARK_NODE_TEXT) {
135
- cmark_iter_next(iter); // advance pointer
136
- cmark_strbuf_put(&buf, tmp->as.literal.data, tmp->as.literal.len);
137
- next = tmp->next;
138
- cmark_node_free(tmp);
139
- tmp = next;
140
- }
141
- cmark_chunk_free(&cur->as.literal);
142
- cur->as.literal = cmark_chunk_buf_detach(&buf);
143
- }
144
- }
145
-
146
- cmark_strbuf_free(&buf);
147
- cmark_iter_free(iter);
89
+ cmark_node *cmark_iter_get_root(cmark_iter *iter) { return iter->root; }
90
+
91
+ void cmark_consolidate_text_nodes(cmark_node *root) {
92
+ cmark_iter *iter = cmark_iter_new(root);
93
+ cmark_strbuf buf = GH_BUF_INIT;
94
+ cmark_event_type ev_type;
95
+ cmark_node *cur, *tmp, *next;
96
+
97
+ while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
98
+ cur = cmark_iter_get_node(iter);
99
+ if (ev_type == CMARK_EVENT_ENTER && cur->type == CMARK_NODE_TEXT &&
100
+ cur->next && cur->next->type == CMARK_NODE_TEXT) {
101
+ cmark_strbuf_clear(&buf);
102
+ cmark_strbuf_put(&buf, cur->as.literal.data, cur->as.literal.len);
103
+ tmp = cur->next;
104
+ while (tmp && tmp->type == CMARK_NODE_TEXT) {
105
+ cmark_iter_next(iter); // advance pointer
106
+ cmark_strbuf_put(&buf, tmp->as.literal.data, tmp->as.literal.len);
107
+ next = tmp->next;
108
+ cmark_node_free(tmp);
109
+ tmp = next;
110
+ }
111
+ cmark_chunk_free(&cur->as.literal);
112
+ cur->as.literal = cmark_chunk_buf_detach(&buf);
113
+ }
114
+ }
115
+
116
+ cmark_strbuf_free(&buf);
117
+ cmark_iter_free(iter);
148
118
  }
@@ -8,14 +8,14 @@ extern "C" {
8
8
  #include "cmark.h"
9
9
 
10
10
  typedef struct {
11
- cmark_event_type ev_type;
12
- cmark_node *node;
11
+ cmark_event_type ev_type;
12
+ cmark_node *node;
13
13
  } cmark_iter_state;
14
14
 
15
15
  struct cmark_iter {
16
- cmark_node *root;
17
- cmark_iter_state cur;
18
- cmark_iter_state next;
16
+ cmark_node *root;
17
+ cmark_iter_state cur;
18
+ cmark_iter_state next;
19
19
  };
20
20
 
21
21
  #ifdef __cplusplus