+ /* we set a distance for the line-starter column even if its non-broken counterpart
+ doesn't touch the right column. */
+ if (lb)
+ Separation_item::set_distance (lb, r_col, padding);
+
+ if (touches || j == i-1)
+ dist = Separation_item::set_distance (l, r_col, padding);
+
+ if (j == i-1 && d == LEFT)
+ distances.push_back (dist);
+
+ if (j == i-1)
+ cur_dist[d] = distances[j];
+
+ cur_dist[d] = max (cur_dist[d], dist);
+ done = done && !touches;
+ }
+ while (flip (&d) != LEFT && rb);
+
+ /* we need the empty check for gregorian notation, where there are a lot of
+ extraneous paper-columns that we need to skip over */
+ if (done && !Separation_item::is_empty (l))
+ break;
+ }