summaryrefslogtreecommitdiff
path: root/render/layout.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2015-05-28 16:08:46 +0100
committerVincent Sanders <vince@kyllikki.org>2015-05-28 16:08:46 +0100
commitc105738fa36bb2400adc47399c5b878d252d1c86 (patch)
tree138eeb449e1bf51ee1726b5f820740aada0ccd0b /render/layout.c
parent20f2c86a511f7913cf858e7bd3668b0b59663ba0 (diff)
downloadnetsurf-c105738fa36bb2400adc47399c5b878d252d1c86.tar.gz
netsurf-c105738fa36bb2400adc47399c5b878d252d1c86.tar.bz2
Change LOG() macro to be varadic
This changes the LOG macro to be varadic removing the need for all callsites to have double bracketing and allows for future improvement on how we use the logging macros. The callsites were changed with coccinelle and the changes checked by hand. Compile tested for several frontends but not all. A formatting annotation has also been added which allows the compiler to check the parameters and types passed to the logging.
Diffstat (limited to 'render/layout.c')
-rw-r--r--render/layout.c113
1 files changed, 41 insertions, 72 deletions
diff --git a/render/layout.c b/render/layout.c
index 9b479da17..4539867d0 100644
--- a/render/layout.c
+++ b/render/layout.c
@@ -475,7 +475,7 @@ bool layout_block_context(struct box *block, int viewport_height,
}
#ifdef LAYOUT_DEBUG
- LOG(("box %p, cx %i, cy %i", box, cx, cy));
+ LOG("box %p, cx %i, cy %i", box, cx, cy);
#endif
/* Layout (except tables). */
@@ -1021,8 +1021,7 @@ bool layout_block_object(struct box *block)
assert(block->object);
#ifdef LAYOUT_DEBUG
- LOG(("block %p, object %s, width %i", block,
- hlcache_handle_get_url(block->object), block->width));
+ LOG("block %p, object %s, width %i", block, hlcache_handle_get_url(block->object), block->width);
#endif
if (content_get_type(block->object) == CONTENT_HTML) {
@@ -2058,7 +2057,7 @@ void find_sides(struct box *fl, int y0, int y1,
int fy0, fy1, fx0, fx1;
#ifdef LAYOUT_DEBUG
- LOG(("y0 %i, y1 %i, x0 %i, x1 %i", y0, y1, *x0, *x1));
+ LOG("y0 %i, y1 %i, x0 %i, x1 %i", y0, y1, *x0, *x1);
#endif
*left = *right = 0;
@@ -2083,7 +2082,7 @@ void find_sides(struct box *fl, int y0, int y1,
}
#ifdef LAYOUT_DEBUG
- LOG(("x0 %i, x1 %i, left %p, right %p", *x0, *x1, *left, *right));
+ LOG("x0 %i, x1 %i, left %p, right %p", *x0, *x1, *left, *right);
#endif
}
@@ -2112,8 +2111,7 @@ bool layout_inline_container(struct box *inline_container, int width,
assert(inline_container->type == BOX_INLINE_CONTAINER);
#ifdef LAYOUT_DEBUG
- LOG(("inline_container %p, width %i, cont %p, cx %i, cy %i",
- inline_container, width, cont, cx, cy));
+ LOG("inline_container %p, width %i, cont %p, cx %i, cy %i", inline_container, width, cont, cx, cy);
#endif
has_text_children = false;
@@ -2143,7 +2141,7 @@ bool layout_inline_container(struct box *inline_container, int width,
*/
for (c = inline_container->children; c; ) {
#ifdef LAYOUT_DEBUG
- LOG(("c %p", c));
+ LOG("c %p", c);
#endif
curwidth = inline_container->width;
if (!layout_line(c, &curwidth, &y, cx, cy + y, cont, first_line,
@@ -2309,12 +2307,8 @@ static bool layout_text_box_split(html_content *content,
else
c2->parent->last = c2;
#ifdef LAYOUT_DEBUG
- LOG(("split_box %p len: %u \"%.*s\"",
- split_box, split_box->length,
- split_box->length, split_box->text));
- LOG((" new_box %p len: %u \"%.*s\"",
- c2, c2->length,
- c2->length, c2->text));
+ LOG("split_box %p len: %u \"%.*s\"", split_box, split_box->length, split_box->length, split_box->text);
+ LOG(" new_box %p len: %u \"%.*s\"", c2, c2->length, c2->length, c2->text);
#endif
return true;
}
@@ -2362,9 +2356,7 @@ bool layout_line(struct box *first, int *width, int *y,
plot_font_style_t fstyle;
#ifdef LAYOUT_DEBUG
- LOG(("first %p, first->text '%.*s', width %i, y %i, cx %i, cy %i",
- first, (int) first->length, first->text, *width,
- *y, cx, cy));
+ LOG("first %p, first->text '%.*s', width %i, y %i, cx %i, cy %i", first, (int)first->length, first->text, *width, *y, cx, cy);
#endif
/* find sides at top of line */
@@ -2395,7 +2387,7 @@ bool layout_line(struct box *first, int *width, int *y,
* body executed at least once
* keep in sync with the loop in layout_minmax_line() */
#ifdef LAYOUT_DEBUG
- LOG(("x0 %i, x1 %i, x1 - x0 %i", x0, x1, x1 - x0));
+ LOG("x0 %i, x1 %i, x1 - x0 %i", x0, x1, x1 - x0);
#endif
for (x = 0, b = first; x <= x1 - x0 && b != 0; b = b->next) {
@@ -2408,7 +2400,7 @@ bool layout_line(struct box *first, int *width, int *y,
b->type == BOX_INLINE_END);
#ifdef LAYOUT_DEBUG
- LOG(("pass 1: b %p, x %i", b, x));
+ LOG("pass 1: b %p, x %i", b, x);
#endif
if (b->type == BOX_BR)
@@ -2621,12 +2613,12 @@ bool layout_line(struct box *first, int *width, int *y,
/* pass 2: place boxes in line: loop body executed at least once */
#ifdef LAYOUT_DEBUG
- LOG(("x0 %i, x1 %i, x1 - x0 %i", x0, x1, x1 - x0));
+ LOG("x0 %i, x1 %i, x1 - x0 %i", x0, x1, x1 - x0);
#endif
for (x = x_previous = 0, b = first; x <= x1 - x0 && b; b = b->next) {
#ifdef LAYOUT_DEBUG
- LOG(("pass 2: b %p, x %i", b, x));
+ LOG("pass 2: b %p, x %i", b, x);
#endif
if (b->type == BOX_INLINE_BLOCK &&
@@ -2696,7 +2688,7 @@ bool layout_line(struct box *first, int *width, int *y,
} else {
/* float */
#ifdef LAYOUT_DEBUG
- LOG(("float %p", b));
+ LOG("float %p", b);
#endif
d = b->children;
@@ -2707,8 +2699,7 @@ bool layout_line(struct box *first, int *width, int *y,
return false;
#ifdef LAYOUT_DEBUG
- LOG(("%p : %d %d", d, d->margin[TOP],
- d->border[TOP].width));
+ LOG("%p : %d %d", d, d->margin[TOP], d->border[TOP].width);
#endif
d->x = d->margin[LEFT] + d->border[LEFT].width;
@@ -2798,7 +2789,7 @@ bool layout_line(struct box *first, int *width, int *y,
}
if (cont->float_children == b) {
#ifdef LAYOUT_DEBUG
- LOG(("float %p already placed", b));
+ LOG("float %p already placed", b);
#endif
box_dump(stderr, cont, 0, true);
@@ -2842,11 +2833,7 @@ bool layout_line(struct box *first, int *width, int *y,
w = split_box->width;
#ifdef LAYOUT_DEBUG
- LOG(("splitting: split_box %p \"%.*s\", spilt %zu, w %i, "
- "left %p, right %p, inline_count %u",
- split_box, (int) split_box->length,
- split_box->text, split, w,
- left, right, inline_count));
+ LOG("splitting: split_box %p \"%.*s\", spilt %zu, w %i, ""left %p, right %p, inline_count %u", split_box, (int)split_box->length, split_box->text, split, w, left, right, inline_count);
#endif
if ((split == 0 || x1 - x0 <= x + space_before + w) &&
@@ -2866,7 +2853,7 @@ bool layout_line(struct box *first, int *width, int *y,
}
x += space_before + w;
#ifdef LAYOUT_DEBUG
- LOG(("forcing"));
+ LOG("forcing");
#endif
} else if ((split == 0 || x1 - x0 <= x + space_before + w) &&
inline_count == 1) {
@@ -2876,12 +2863,11 @@ bool layout_line(struct box *first, int *width, int *y,
used_height = 0;
if (left) {
#ifdef LAYOUT_DEBUG
- LOG(("cy %i, left->y %i, left->height %i",
- cy, left->y, left->height));
+ LOG("cy %i, left->y %i, left->height %i", cy, left->y, left->height);
#endif
used_height = left->y + left->height - cy + 1;
#ifdef LAYOUT_DEBUG
- LOG(("used_height %i", used_height));
+ LOG("used_height %i", used_height);
#endif
}
if (right && used_height <
@@ -2893,21 +2879,20 @@ bool layout_line(struct box *first, int *width, int *y,
b = split_box;
#ifdef LAYOUT_DEBUG
- LOG(("moving below float"));
+ LOG("moving below float");
#endif
} else if (split == 0 || x1 - x0 <= x + space_before + w) {
/* first word of box doesn't fit so leave box for next
* line */
b = split_box;
#ifdef LAYOUT_DEBUG
- LOG(("leaving for next line"));
+ LOG("leaving for next line");
#endif
} else {
/* fit as many words as possible */
assert(split != 0);
#ifdef LAYOUT_DEBUG
- LOG(("'%.*s' %i %zu %i", (int) split_box->length,
- split_box->text, x1 - x0, split, w));
+ LOG("'%.*s' %i %zu %i", (int)split_box->length, split_box->text, x1 - x0, split, w);
#endif
if (split != split_box->length) {
if (!layout_text_box_split(content, &fstyle,
@@ -2917,7 +2902,7 @@ bool layout_line(struct box *first, int *width, int *y,
}
x += space_before + w;
#ifdef LAYOUT_DEBUG
- LOG(("fitting words"));
+ LOG("fitting words");
#endif
}
move_y = true;
@@ -3095,7 +3080,7 @@ struct box *layout_minmax_line(struct box *first,
b->type == BOX_INLINE_END);
#ifdef LAYOUT_DEBUG
- LOG(("%p: min %i, max %i", b, min, max));
+ LOG("%p: min %i, max %i", b, min, max);
#endif
if (b->type == BOX_BR) {
@@ -3342,7 +3327,7 @@ struct box *layout_minmax_line(struct box *first,
*line_max = max;
#ifdef LAYOUT_DEBUG
- LOG(("line_min %i, line_max %i", min, max));
+ LOG("line_min %i, line_max %i", min, max);
#endif
assert(b != first);
@@ -3424,7 +3409,7 @@ void place_float_below(struct box *c, int width, int cx, int y,
struct box *right;
#ifdef LAYOUT_DEBUG
- LOG(("c %p, width %i, cx %i, y %i, cont %p", c, width, cx, y, cont));
+ LOG("c %p, width %i, cx %i, y %i, cont %p", c, width, cx, y, cont);
#endif
do {
@@ -3653,11 +3638,13 @@ bool layout_table(struct box *table, int available_width,
/* calculate width required by cells */
for (i = 0; i != columns; i++) {
#ifdef LAYOUT_DEBUG
- LOG(("table %p, column %u: type %s, width %i, min %i, max %i",
- table, i,
- ((const char *[]) {"UNKNOWN", "FIXED", "AUTO",
- "PERCENT", "RELATIVE"})[col[i].type],
- col[i].width, col[i].min, col[i].max));
+ LOG("table %p, column %u: type %s, width %i, min %i, max %i", table, i, ((const char *[]){
+ "UNKNOWN",
+ "FIXED",
+ "AUTO",
+ "PERCENT",
+ "RELATIVE"
+ })[col[i].type], col[i].width, col[i].min, col[i].max);
#endif
if (col[i].positioned) {
@@ -3677,16 +3664,14 @@ bool layout_table(struct box *table, int available_width,
required_width += col[i].min;
#ifdef LAYOUT_DEBUG
- LOG(("required_width %i", required_width));
+ LOG("required_width %i", required_width);
#endif
}
required_width += (columns + 1 - positioned_columns) *
border_spacing_h;
#ifdef LAYOUT_DEBUG
- LOG(("width %i, min %i, max %i, auto %i, required %i",
- table_width, table->min_width, table->max_width,
- auto_width, required_width));
+ LOG("width %i, min %i, max %i, auto %i, required %i", table_width, table->min_width, table->max_width, auto_width, required_width);
#endif
if (auto_width < required_width) {
@@ -4503,7 +4488,7 @@ void layout_compute_relative_offset(struct box *box, int *x, int *y)
}
#ifdef LAYOUT_DEBUG
- LOG(("left %i, right %i, top %i, bottom %i", left, right, top, bottom));
+ LOG("left %i, right %i, top %i, bottom %i", left, right, top, bottom);
#endif
*x = left;
@@ -4640,11 +4625,7 @@ bool layout_absolute(struct box *box, struct box *containing_block,
/* 10.3.7 */
#ifdef LAYOUT_DEBUG
- LOG(("%i + %i + %i + %i + %i + %i + %i + %i + %i = %i",
- left, margin[LEFT], border[LEFT].width,
- padding[LEFT], width, padding[RIGHT],
- border[RIGHT].width, margin[RIGHT], right,
- containing_block->width));
+ LOG("%i + %i + %i + %i + %i + %i + %i + %i + %i = %i", left, margin[LEFT], border[LEFT].width, padding[LEFT], width, padding[RIGHT], border[RIGHT].width, margin[RIGHT], right, containing_block->width);
#endif
if (left == AUTO && width == AUTO && right == AUTO) {
@@ -4809,11 +4790,7 @@ bool layout_absolute(struct box *box, struct box *containing_block,
}
#ifdef LAYOUT_DEBUG
- LOG(("%i + %i + %i + %i + %i + %i + %i + %i + %i = %i",
- left, margin[LEFT], border[LEFT].width, padding[LEFT],
- width, padding[RIGHT], border[RIGHT].width,
- margin[RIGHT], right,
- containing_block->width));
+ LOG("%i + %i + %i + %i + %i + %i + %i + %i + %i = %i", left, margin[LEFT], border[LEFT].width, padding[LEFT], width, padding[RIGHT], border[RIGHT].width, margin[RIGHT], right, containing_block->width);
#endif
box->x = left + margin[LEFT] + border[LEFT].width - cx;
@@ -4847,11 +4824,7 @@ bool layout_absolute(struct box *box, struct box *containing_block,
/* 10.6.4 */
#ifdef LAYOUT_DEBUG
- LOG(("%i + %i + %i + %i + %i + %i + %i + %i + %i = %i",
- top, margin[TOP], border[TOP].width, padding[TOP],
- height, padding[BOTTOM], border[BOTTOM].width,
- margin[BOTTOM], bottom,
- containing_block->height));
+ LOG("%i + %i + %i + %i + %i + %i + %i + %i + %i = %i", top, margin[TOP], border[TOP].width, padding[TOP], height, padding[BOTTOM], border[BOTTOM].width, margin[BOTTOM], bottom, containing_block->height);
#endif
if (top == AUTO && height == AUTO && bottom == AUTO) {
@@ -4939,11 +4912,7 @@ bool layout_absolute(struct box *box, struct box *containing_block,
}
#ifdef LAYOUT_DEBUG
- LOG(("%i + %i + %i + %i + %i + %i + %i + %i + %i = %i",
- top, margin[TOP], border[TOP].width, padding[TOP],
- height, padding[BOTTOM], border[BOTTOM].width,
- margin[BOTTOM], bottom,
- containing_block->height));
+ LOG("%i + %i + %i + %i + %i + %i + %i + %i + %i = %i", top, margin[TOP], border[TOP].width, padding[TOP], height, padding[BOTTOM], border[BOTTOM].width, margin[BOTTOM], bottom, containing_block->height);
#endif
box->y = top + margin[TOP] + border[TOP].width - cy;