From 777fd3054be0e0ba18f2fda18ccc7eeeee82db92 Mon Sep 17 00:00:00 2001 From: Bas Alberts Date: Thu, 15 Sep 2022 09:48:28 -0400 Subject: [PATCH 1/2] Update cmark-upstream to https://github.com/github/cmark-gfm/commit/9d57d8a23142b316282bdfc954cb0ecda40a8655 --- ext/commonmarker/cmark-gfm_version.h | 4 ++-- ext/commonmarker/cmark-upstream | 2 +- ext/commonmarker/inlines.c | 33 ++++++++++++++++++++++++---- 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/ext/commonmarker/cmark-gfm_version.h b/ext/commonmarker/cmark-gfm_version.h index f487687d..e2bbfbbb 100644 --- a/ext/commonmarker/cmark-gfm_version.h +++ b/ext/commonmarker/cmark-gfm_version.h @@ -1,7 +1,7 @@ #ifndef CMARK_GFM_VERSION_H #define CMARK_GFM_VERSION_H -#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 5) -#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.5" +#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 6) +#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.6" #endif diff --git a/ext/commonmarker/cmark-upstream b/ext/commonmarker/cmark-upstream index 0578e1e4..9d57d8a2 160000 --- a/ext/commonmarker/cmark-upstream +++ b/ext/commonmarker/cmark-upstream @@ -1 +1 @@ -Subproject commit 0578e1e4fedde487a3c763139e80d445b40ebd6d +Subproject commit 9d57d8a23142b316282bdfc954cb0ecda40a8655 diff --git a/ext/commonmarker/inlines.c b/ext/commonmarker/inlines.c index 4a118a63..3cd3bc3d 100644 --- a/ext/commonmarker/inlines.c +++ b/ext/commonmarker/inlines.c @@ -41,6 +41,8 @@ typedef struct bracket { bool image; bool active; bool bracket_after; + bool in_bracket_image0; + bool in_bracket_image1; } bracket; typedef struct subject{ @@ -516,6 +518,8 @@ static void push_bracket(subject *subj, bool image, cmark_node *inl_text) { bracket *b = (bracket *)subj->mem->calloc(1, sizeof(bracket)); if (subj->last_bracket != NULL) { subj->last_bracket->bracket_after = true; + b->in_bracket_image0 = subj->last_bracket->in_bracket_image0; + b->in_bracket_image1 = subj->last_bracket->in_bracket_image1; } b->image = image; b->active = true; @@ -524,6 +528,11 @@ static void push_bracket(subject *subj, bool image, cmark_node *inl_text) { b->previous_delimiter = subj->last_delim; b->position = subj->pos; b->bracket_after = false; + if (image) { + b->in_bracket_image1 = true; + } else { + b->in_bracket_image0 = true; + } subj->last_bracket = b; } @@ -1254,6 +1263,17 @@ static cmark_node *handle_close_bracket(cmark_parser *parser, subject *subj) { } opener = opener->previous; } + bool in_bracket_image1 = false; + if (opener) { + in_bracket_image1 = opener->in_bracket_image1; + } + bracket *opener2 = subj->last_bracket; + while (opener2 != opener) { + if (opener2->image) { + opener2->in_bracket_image1 = in_bracket_image1; + } + opener2 = opener2->previous; + } } return NULL; @@ -1662,10 +1682,15 @@ cmark_chunk *cmark_inline_parser_get_chunk(cmark_inline_parser *parser) { } int cmark_inline_parser_in_bracket(cmark_inline_parser *parser, int image) { - for (bracket *b = parser->last_bracket; b; b = b->previous) - if (b->active && b->image == (image != 0)) - return 1; - return 0; + bracket *b = parser->last_bracket; + if (!b) { + return 0; + } + if (image != 0) { + return b->in_bracket_image1; + } else { + return b->in_bracket_image0; + } } void cmark_node_unput(cmark_node *node, int n) { From ac916346314aef3015a713f92f7b46a8c34e98ed Mon Sep 17 00:00:00 2001 From: Phill MV Date: Wed, 21 Sep 2022 11:21:49 -0400 Subject: [PATCH 2/2] :gem: release 0.23.6 --- lib/commonmarker/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/commonmarker/version.rb b/lib/commonmarker/version.rb index 7b7fb291..1b3ab6cc 100644 --- a/lib/commonmarker/version.rb +++ b/lib/commonmarker/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module CommonMarker - VERSION = "0.23.5" + VERSION = "0.23.6" end