+}
+
+void
+Figured_bass_engraver::center_repeated_continuations ()
+{
+ vector<Spanner*> consecutive_lines;
+ for (vsize i = 0; i <= groups_.size (); i++)
+ {
+ if (i < groups_.size ()
+ && groups_[i].continuation_line_
+ && (consecutive_lines.empty ()
+ || (consecutive_lines[0]->get_bound (LEFT)->get_column ()
+ == groups_[i].continuation_line_->get_bound (LEFT)->get_column ()
+ && consecutive_lines[0]->get_bound (RIGHT)->get_column ()
+ == groups_[i].continuation_line_->get_bound (RIGHT)->get_column ())))
+ consecutive_lines.push_back (groups_[i].continuation_line_);
+ else
+ {
+ center_continuations (consecutive_lines);
+ consecutive_lines.clear ();
+ }
+ }
+}
+
+void
+Figured_bass_engraver::clear_spanners ()
+{
+ if (!alignment_)
+ return;
+
+ if (alignment_)
+ {
+ announce_end_grob (alignment_, SCM_EOL);
+ alignment_ = 0;
+ }
+
+ if (to_boolean (get_property ("figuredBassCenterContinuations")))
+ center_repeated_continuations ();
+
+ for (vsize i = 0; i < groups_.size (); i++)
+ {
+ if (groups_[i].group_)
+ {
+ announce_end_grob (groups_[i].group_ , SCM_EOL);
+ groups_[i].group_ = 0;
+ }
+
+ if (groups_[i].continuation_line_)
+ {
+ announce_end_grob (groups_[i].continuation_line_ , SCM_EOL);
+ groups_[i].continuation_line_ = 0;
+ }
+ }
+
+ /* Check me, groups_.clear () ? */
+}
+
+void
+Figured_bass_engraver::add_brackets ()
+{
+ vector<Grob*> encompass;
+ bool inside = false;
+ for (vsize i = 0; i < groups_.size (); i ++)