diff --git a/render/box.c b/render/box.c index dc745f6be..ebe69c34f 100644 --- a/render/box.c +++ b/render/box.c @@ -132,7 +132,7 @@ struct box * box_create(css_select_results *styles, css_computed_style *style, box->type = BOX_INLINE; box->flags = 0; - box->flags = style_owned ? box->flags | STYLE_OWNED : box->flags; + box->flags = style_owned ? (box->flags | STYLE_OWNED) : box->flags; box->styles = styles; box->style = style; box->x = box->y = 0; @@ -150,7 +150,6 @@ struct box * box_create(css_select_results *styles, css_computed_style *style, box->length = 0; box->space = 0; box->clone = 0; - box->strip_leading_newline = 0; box->href = href; box->target = target; box->title = title; diff --git a/render/box.h b/render/box.h index 3d00db98e..441e3d9f7 100644 --- a/render/box.h +++ b/render/box.h @@ -120,7 +120,8 @@ typedef enum { typedef enum { NEW_LINE = 1 << 0, /* first inline on a new line */ STYLE_OWNED = 1 << 1, /* style is owned by this box */ - PRINTED = 1 << 2 /* box has already been printed */ + PRINTED = 1 << 2, /* box has already been printed */ + PRE_STRIP = 1 << 3 /* PRE tag needing leading newline stripped */ } box_flags; /* Sides of a box */ @@ -205,10 +206,6 @@ struct box { /** This box is a continuation of the previous box (eg from line * breaking). */ unsigned int clone : 1; - /** This box represents a
tag which has not yet had its white - * space stripped if possible - */ - unsigned int strip_leading_newline : 1; char *href; /**< Link, or 0. */ const char *target; /**< Link target, or 0. */ diff --git a/render/box_construct.c b/render/box_construct.c index 092edb3ba..d99e5deec 100644 --- a/render/box_construct.c +++ b/render/box_construct.c @@ -302,10 +302,10 @@ bool box_construct_element(xmlNode *n, struct content *content, gui_multitask(); /* In case the parent is a pre block, we clear the - * strip_leading_newline flag since it is not used if we + * PRE_STRIP flag since it is not used if we * follow the pre with a tag */ - parent->strip_leading_newline = 0; + parent->flags &= ~PRE_STRIP; styles = box_get_style(content, parent_style, n); if (!styles) @@ -824,7 +824,7 @@ bool box_construct_text(xmlNode *n, struct content *content, current = text; /* swallow a single leading new line */ - if (parent->strip_leading_newline) { + if (parent->flags & PRE_STRIP) { switch (*current) { case '\n': current++; break; @@ -833,7 +833,7 @@ bool box_construct_text(xmlNode *n, struct content *content, if (*current == '\n') current++; break; } - parent->strip_leading_newline = 0; + parent->flags &= ~PRE_STRIP; } do { @@ -1079,7 +1079,7 @@ bool box_br(BOX_SPECIAL_PARAMS) bool box_pre(BOX_SPECIAL_PARAMS) { - box->strip_leading_newline = 1; + box->flags |= PRE_STRIP; return true; }