Skip to content

Commit 9b32d08

Browse files
fix: code review fixes
1 parent e15ac36 commit 9b32d08

2 files changed

Lines changed: 10 additions & 13 deletions

File tree

cpp/parser/GumboNormalizer.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -563,9 +563,10 @@ static bool is_whitespace_only(const char *data, size_t len) {
563563
* spaces between block tags in pretty-printed HTML) is discarded so it does
564564
* not become empty paragraphs that later serialize as extra <br>s.
565565
*/
566-
static void flush_inline_p(buffer_t *ib, buffer_t *out,
566+
static bool flush_inline_p(buffer_t *ib, buffer_t *out,
567567
GumboElement *align_el) {
568-
if (ib->len > 0 && !is_whitespace_only(ib->data, ib->len)) {
568+
bool emitted = ib->len > 0 && !is_whitespace_only(ib->data, ib->len);
569+
if (emitted) {
569570
buffer_append_str(out, "<p");
570571
if (align_el)
571572
emit_alignment(align_el, "p", out);
@@ -574,6 +575,7 @@ static void flush_inline_p(buffer_t *ib, buffer_t *out,
574575
buffer_append_str(out, "</p>");
575576
}
576577
buffer_clear(ib);
578+
return emitted;
577579
}
578580

579581
static void flatten_bq_children(GumboNode *node, buffer_t *ib, buffer_t *out) {
@@ -746,12 +748,8 @@ static void walk_children(GumboNode *node, buffer_t *out) {
746748
child = children->data[i];
747749
if (is_br_node(child)) {
748750
/* Whitespace-only buffer is layout noise; treat like empty → <br> */
749-
if (ib.len > 0 && !is_whitespace_only(ib.data, ib.len))
750-
flush_inline_p(&ib, out, NULL);
751-
else {
752-
buffer_clear(&ib);
751+
if (!flush_inline_p(&ib, out, NULL))
753752
buffer_append_str(out, "<br>");
754-
}
755753
i++;
756754
continue;
757755
}

src/web/normalization/htmlNormalizer.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -370,11 +370,13 @@ function flushInlineP(
370370
ib: { buf: string },
371371
out: { buf: string },
372372
attrs = ''
373-
): void {
374-
if (ib.buf.length > 0 && !isWhitespaceOnly(ib.buf)) {
373+
): boolean {
374+
const emitted = ib.buf.length > 0 && !isWhitespaceOnly(ib.buf);
375+
if (emitted) {
375376
out.buf += `<p${attrs}>${ib.buf}</p>`;
376377
}
377378
ib.buf = '';
379+
return emitted;
378380
}
379381

380382
function flattenBqChildren(
@@ -542,10 +544,7 @@ function walkChildren(node: Element, out: { buf: string }): void {
542544
}
543545
if (isElement(cur) && isBrNode(cur)) {
544546
// Whitespace-only buffer is layout noise; treat like empty → <br>
545-
if (ib.buf.length > 0 && !isWhitespaceOnly(ib.buf)) {
546-
flushInlineP(ib, out);
547-
} else {
548-
ib.buf = '';
547+
if (!flushInlineP(ib, out)) {
549548
out.buf += '<br>';
550549
}
551550
i++;

0 commit comments

Comments
 (0)