From 5dcb40f39b76d3699983fa833b0c50f9be7eee9b Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 10 Mar 2013 22:49:42 +0100 Subject: Loose ends for hyphenation --- src/wrap.c | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/wrap.c b/src/wrap.c index ec187a7..0343f11 100644 --- a/src/wrap.c +++ b/src/wrap.c @@ -448,12 +448,32 @@ static void distribute_spaces(struct wrap_line *l, double w) for ( i=0; in_boxes-1; i++ ) { l->boxes[i].sp = sp; - printf("Calculated space %f\n", pango_units_to_double(sp)); } l->boxes[l->n_boxes-1].sp = 0.0; } + +static void output_line(int q, int s, struct frame *fr, struct wrap_line *boxes) +{ + struct wrap_line *l; + int j; + + l = &fr->lines[fr->n_lines]; + fr->n_lines++; + initialise_line(l); + + l->max_boxes = s-q; + alloc_boxes(l); + for ( j=q; jboxes[l->n_boxes++] = boxes->boxes[j]; + } + + distribute_spaces(l, fr->w); + calc_line_geometry(l); +} + + static void output(int a, int i, int *p, struct frame *fr, struct wrap_line *boxes) { @@ -476,26 +496,13 @@ static void output(int a, int i, int *p, struct frame *fr, while ( q != i ) { - struct wrap_line *l; - int j; - - l = &fr->lines[fr->n_lines]; - fr->n_lines++; - initialise_line(l); - - l->max_boxes = s-q; - alloc_boxes(l); - for ( j=q; jboxes[l->n_boxes++] = boxes->boxes[j]; - } - - distribute_spaces(l, fr->w); - calc_line_geometry(l); + output_line(q, s, fr, boxes); q = s; s = p[q]; } + } @@ -668,6 +675,7 @@ static void knuth_suboptimal_fit(struct wrap_line *boxes, double line_length, /* End */ /* Begin */ + output_line(i, k-1, fr, boxes); /* End */ /* End */ -- cgit v1.2.3