From: Han-Wen Nienhuys <hanwen@xs4all.nl>
Date: Wed, 22 Sep 2004 22:04:20 +0000 (+0000)
Subject: 	* lily/dynamic-engraver.cc (acknowledge_grob): attach hairpin
X-Git-Tag: release/2.3.19~24
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=ad8959e79687e3000919f4a4bc6072b1b45eae8d;p=lilypond.git

	* lily/dynamic-engraver.cc (acknowledge_grob): attach hairpin
	start to note-column.

	* lily/hairpin.cc (print): check text-interface, to attach to
	dynamic texts.

	* lily/include/text-item.hh (class Text_interface): rename
	Text_item -> Text_interface

	* lily/piano-pedal-bracket.cc (print): robustify.
---

diff --git a/lily/balloon.cc b/lily/balloon.cc
index bda3fa20cb..272be12b7f 100644
--- a/lily/balloon.cc
+++ b/lily/balloon.cc
@@ -60,7 +60,7 @@ Balloon_interface::print (SCM smob)
   SCM chain = Font_interface::text_font_alist_chain (me);
   chain = scm_cons (me->get_property ("balloon-text-props"), chain);
 
-  SCM text = Text_item::interpret_markup (me->get_paper ()->self_scm (),
+  SCM text = Text_interface::interpret_markup (me->get_paper ()->self_scm (),
 					  chain, bt);
 
   Stencil *text_stil = unsmob_stencil (text);
diff --git a/lily/beam.cc b/lily/beam.cc
index 949d3ae65b..3fa06ebc76 100644
--- a/lily/beam.cc
+++ b/lily/beam.cc
@@ -522,7 +522,7 @@ Beam::print (SCM grob)
 
       Direction stem_dir = stems.size() ? to_dir (stems[0]->get_property ("direction")) : UP;
     
-      Stencil tm = *unsmob_stencil (Text_item::interpret_markup
+      Stencil tm = *unsmob_stencil (Text_interface::interpret_markup
 	 (me->get_paper ()->self_scm (), properties, quant_score));
       the_beam.add_at_edge (Y_AXIS, stem_dir, tm, 1.0, 0);
     }
diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc
index 71dfcce857..18997be2a5 100644
--- a/lily/dynamic-engraver.cc
+++ b/lily/dynamic-engraver.cc
@@ -136,7 +136,6 @@ Dynamic_engraver::process_music ()
     Note: line-spanner must always have at least same duration
     as (de)crecsendo, b.o. line-breaking.
   */
-
   
 
   /*
@@ -267,13 +266,13 @@ Dynamic_engraver::process_music ()
 		}
 	    }
 
-	  cresc_->set_bound (LEFT, script_
-			     ? script_
-			     : unsmob_grob (get_property ("currentMusicalColumn")));
-
+	  if (script_)
+	    {
+	      cresc_->set_bound (LEFT, script_);
+	      add_bound_item (line_spanner_, cresc_->get_bound (LEFT));
+	    }
+	  
 	  Axis_group_interface::add_element (line_spanner_, cresc_);
-
-	  add_bound_item (line_spanner_, cresc_->get_bound (LEFT));
 	}
     }
 }
@@ -284,12 +283,17 @@ Dynamic_engraver::stop_translation_timestep ()
   typeset_all ();
   if (!current_cresc_ev_)
     {
-      
       finished_line_spanner_ = line_spanner_;
       line_spanner_ = 0;
       typeset_all ();
     }
 
+  if (cresc_ && !cresc_->get_bound (LEFT))
+    {
+      cresc_->set_bound (LEFT, unsmob_grob (get_property ("currentMusicalColumn")));
+      add_bound_item (line_spanner_, cresc_->get_bound (LEFT));
+    }
+  
   script_ev_ = 0;
   accepted_spanreqs_drul_[START] = 0;
   accepted_spanreqs_drul_[STOP] = 0;
@@ -396,6 +400,15 @@ Dynamic_engraver::acknowledge_grob (Grob_info info)
 	  if (ly_c_pair_p (head))
 	    script_->set_parent (unsmob_grob (ly_car (head)),  X_AXIS);
 	}
+
+
+
+      if (cresc_ && !cresc_->get_bound (LEFT))
+	{
+	  cresc_->set_bound (LEFT, info.grob_);
+	  add_bound_item (line_spanner_, cresc_->get_bound (LEFT));
+	}
+        
     }
   else if (Script_interface::has_interface (info.grob_) && script_)
     {
diff --git a/lily/dynamic-text-spanner.cc b/lily/dynamic-text-spanner.cc
index 19963fe458..3e78516c15 100644
--- a/lily/dynamic-text-spanner.cc
+++ b/lily/dynamic-text-spanner.cc
@@ -110,8 +110,8 @@ Dynamic_text_spanner::print (SCM smob)
 	  
 	  SCM text = index_get_cell (edge_text, d);
 
-	  if (Text_item::markup_p (text)) 
-	    edge[d] = *unsmob_stencil (Text_item::interpret_markup (paper->self_scm (), properties, text));
+	  if (Text_interface::markup_p (text)) 
+	    edge[d] = *unsmob_stencil (Text_interface::interpret_markup (paper->self_scm (), properties, text));
 	  
 	  if (!edge[d].is_empty ())
 	    edge[d].align_to (Y_AXIS, CENTER);
diff --git a/lily/hairpin.cc b/lily/hairpin.cc
index 828bb6ec52..83505966da 100644
--- a/lily/hairpin.cc
+++ b/lily/hairpin.cc
@@ -17,6 +17,7 @@
 #include "warn.hh"
 #include "paper-column.hh"
 #include "lookup.hh"
+#include "text-item.hh"
 
 MAKE_SCHEME_CALLBACK (Hairpin, print, 1);
 
@@ -61,16 +62,22 @@ Hairpin::print (SCM smob)
 	}
       else
 	{
-	  if (dynamic_cast<Paper_column*> (b))
+	  if (Text_interface::has_interface (b))
+	    {
+	      Interval e = b->extent (common, X_AXIS);
+	      if (!e.is_empty ())
+		x_points[d] = e[-d] - d*padding;
+	    }
+	  else
 	    {
 	      bool neighbor_found = false;
 	      for (SCM  adj = me->get_property ("adjacent-hairpins");
 		   ly_c_pair_p (adj); adj = ly_cdr (adj))
 		{
 		  /*
-		   FIXME: this will fuck up in case of polyphonic
-		   notes in other voices. Need to look at note-columns
-		   in the current staff/voice.
+		    FIXME: this will fuck up in case of polyphonic
+		    notes in other voices. Need to look at note-columns
+		    in the current staff/voice.
 		  */
 		  
 		  Spanner *pin = unsmob_spanner (ly_car (adj));
@@ -89,12 +96,7 @@ Hairpin::print (SCM smob)
 	      x_points[d] =
 		neighbor_found ? e.center() - d * padding / 3 : e[d];
 	    }
-	  else
-	    {
-	      Interval e = b->extent (common, X_AXIS);
-	      if (!e.is_empty ())
-		x_points[d] = e[-d] - d*padding;
-	    }
+	  
 	}
     }
   while (flip (&d) != LEFT);
diff --git a/lily/hyphen-engraver.cc b/lily/hyphen-engraver.cc
index 727a657606..94f2ae76cf 100644
--- a/lily/hyphen-engraver.cc
+++ b/lily/hyphen-engraver.cc
@@ -45,7 +45,7 @@ void
 Hyphen_engraver::acknowledge_grob (Grob_info i)
 {
   Item * item =  dynamic_cast<Item*> (i.grob_);
-  // -> text_item
+  // -> Text_item
   if (item && item->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface")))
     {
       if (hyphen_)
diff --git a/lily/include/text-item.hh b/lily/include/text-item.hh
index 3ae5cda3fb..6f5425de47 100644
--- a/lily/include/text-item.hh
+++ b/lily/include/text-item.hh
@@ -15,7 +15,7 @@
 #include "lily-guile.hh"
 #include "stencil.hh"
 
-class Text_item
+class Text_interface
 {
 public:
   DECLARE_SCHEME_CALLBACK (print, (SCM));
@@ -23,11 +23,6 @@ public:
   DECLARE_SCHEME_CALLBACK (interpret_string, (SCM, SCM, SCM, SCM));
   static bool has_interface (Grob*);
   static bool markup_p (SCM) ;
-
 };
 
-
-  
-
-
 #endif /* TEXT_ITEM */
diff --git a/lily/mark-engraver.cc b/lily/mark-engraver.cc
index b43212a08d..bd79403806 100644
--- a/lily/mark-engraver.cc
+++ b/lily/mark-engraver.cc
@@ -110,7 +110,7 @@ Mark_engraver::process_music ()
       
       SCM m = mark_ev_->get_property ("label");
       SCM proc = get_property ("markFormatter");
-      if (!Text_item::markup_p (m) &&
+      if (!Text_interface::markup_p (m) &&
 	  ly_c_procedure_p (proc))
 	{
 	  if (!scm_is_number (m)) 
@@ -131,7 +131,7 @@ Mark_engraver::process_music ()
 	    warning ("rehearsalMark does not have integer value.");
 	}
 
-      if (Text_item::markup_p (m))
+      if (Text_interface::markup_p (m))
 	text_->set_property ("text", m);
       else
 	warning ("Mark label should be markup object.");
diff --git a/lily/ottava-bracket.cc b/lily/ottava-bracket.cc
index 01b452d933..3c9c34f487 100644
--- a/lily/ottava-bracket.cc
+++ b/lily/ottava-bracket.cc
@@ -72,8 +72,8 @@ Ottava_bracket::print (SCM smob)
   SCM properties = Font_interface::text_font_alist_chain (me);
   SCM markup = me->get_property ("text");
   Stencil text;
-  if (Text_item::markup_p (markup)) 
-    text = *unsmob_stencil (Text_item::interpret_markup (paper->self_scm (), properties, markup));
+  if (Text_interface::markup_p (markup)) 
+    text = *unsmob_stencil (Text_interface::interpret_markup (paper->self_scm (), properties, markup));
 
 
   Drul_array<Real> shorten = robust_scm2interval (me->get_property ("shorten-pair"),
diff --git a/lily/paper-column.cc b/lily/paper-column.cc
index 9eb5f1c3dd..22bc32a774 100644
--- a/lily/paper-column.cc
+++ b/lily/paper-column.cc
@@ -117,7 +117,7 @@ Paper_column::print (SCM p)
   String r = to_string (Paper_column::get_rank (me));
   SCM properties = Font_interface::text_font_alist_chain (me);
 
-  SCM scm_mol = Text_item::interpret_markup (me->get_paper ()->self_scm (),
+  SCM scm_mol = Text_interface::interpret_markup (me->get_paper ()->self_scm (),
 					     properties,
 					     scm_makfrom0str (r.to_str0 ()));
   Stencil t = *unsmob_stencil (scm_mol);
diff --git a/lily/parser.yy b/lily/parser.yy
index 4cdfa95838..0ab0b2f65c 100644
--- a/lily/parser.yy
+++ b/lily/parser.yy
@@ -2563,7 +2563,7 @@ Lily_lexer::try_special_identifiers (SCM *destination, SCM sid)
 
 		*destination = p->self_scm ();
 		return OUTPUT_DEF_IDENTIFIER;
-	} else if (Text_item::markup_p (sid)) {
+	} else if (Text_interface::markup_p (sid)) {
 		*destination = sid;
 		return MARKUP_IDENTIFIER;
 	}
diff --git a/lily/part-combine-engraver.cc b/lily/part-combine-engraver.cc
index 122f4cd974..f0a340c363 100644
--- a/lily/part-combine-engraver.cc
+++ b/lily/part-combine-engraver.cc
@@ -59,7 +59,7 @@ Part_combine_engraver::process_music ()
       else if (what == ly_symbol2scm ("unisono"))
 	text = get_property ("aDueText");
 
-      if (Text_item::markup_p (text))
+      if (Text_interface::markup_p (text))
 	{
 	  text_ =  make_item ("CombineTextScript", event_->self_scm () );
 	  text_->set_property ("text", text);
diff --git a/lily/slur.cc b/lily/slur.cc
index 83c181efe2..7be89976d8 100644
--- a/lily/slur.cc
+++ b/lily/slur.cc
@@ -87,7 +87,7 @@ Slur::print (SCM smob)
       String str;
       SCM properties = Font_interface::text_font_alist_chain (me);
 
-      Stencil tm = *unsmob_stencil (Text_item::interpret_markup
+      Stencil tm = *unsmob_stencil (Text_interface::interpret_markup
 				    (me->get_paper ()->self_scm (), properties,
 				     quant_score));
       a.add_at_edge (Y_AXIS, get_grob_direction (me), tm, 1.0, 0);
diff --git a/lily/text-item.cc b/lily/text-item.cc
index b3c14fd3e4..4f565f53f9 100644
--- a/lily/text-item.cc
+++ b/lily/text-item.cc
@@ -1,5 +1,5 @@
 /*   
-  text-item.cc -- implement Text_item
+  text-item.cc -- implement Text_interface
 
   source file of the GNU LilyPond music typesetter
   
@@ -18,9 +18,9 @@
 #include "modified-font-metric.hh"
 #include "ly-module.hh"
 
-MAKE_SCHEME_CALLBACK (Text_item, interpret_string, 4)
+MAKE_SCHEME_CALLBACK (Text_interface, interpret_string, 4)
 SCM
-Text_item::interpret_string (SCM paper_smob,
+Text_interface::interpret_string (SCM paper_smob,
 			     SCM props, SCM input_encoding, SCM markup)
 {
   Output_def *paper = unsmob_output_def (paper_smob);
@@ -65,9 +65,9 @@ Text_item::interpret_string (SCM paper_smob,
 }
 
 
-MAKE_SCHEME_CALLBACK (Text_item, interpret_markup, 3)
+MAKE_SCHEME_CALLBACK (Text_interface, interpret_markup, 3)
 SCM
-Text_item::interpret_markup (SCM paper_smob, SCM props, SCM markup)
+Text_interface::interpret_markup (SCM paper_smob, SCM props, SCM markup)
 {
   if (scm_is_string (markup))
     return interpret_string (paper_smob, props, SCM_EOL, markup);
@@ -83,9 +83,9 @@ Text_item::interpret_markup (SCM paper_smob, SCM props, SCM markup)
   return SCM_EOL;
 }
 
-MAKE_SCHEME_CALLBACK (Text_item,print,1);
+MAKE_SCHEME_CALLBACK (Text_interface,print,1);
 SCM
-Text_item::print (SCM grob)
+Text_interface::print (SCM grob)
 {
   Grob *me = unsmob_grob (grob);
   
@@ -96,7 +96,7 @@ Text_item::print (SCM grob)
 
 /* Ugh. Duplicated from Scheme.  */
 bool
-Text_item::markup_p (SCM x)
+Text_interface::markup_p (SCM x)
 {
   return (scm_is_string (x)
 	  || (ly_c_pair_p (x)
@@ -105,7 +105,7 @@ Text_item::markup_p (SCM x)
 				      ly_symbol2scm ("markup-signature"))));
 }
 
-ADD_INTERFACE (Text_item,"text-interface",
+ADD_INTERFACE (Text_interface,"text-interface",
 	       "A scheme markup text, see @usermanref{Text-markup}.",
 	       "text baseline-skip word-space");
 
diff --git a/lily/text-spanner.cc b/lily/text-spanner.cc
index 5e43a0880b..930fe499e0 100644
--- a/lily/text-spanner.cc
+++ b/lily/text-spanner.cc
@@ -93,8 +93,8 @@ Text_spanner::print (SCM smob)
 	  
 	  SCM text = index_get_cell (edge_text, d);
 
-	  if (Text_item::markup_p (text)) 
-	    edge[d] = *unsmob_stencil (Text_item::interpret_markup (paper->self_scm (), properties, text));
+	  if (Text_interface::markup_p (text)) 
+	    edge[d] = *unsmob_stencil (Text_interface::interpret_markup (paper->self_scm (), properties, text));
 	  
 	  if (!edge[d].is_empty ())
 	    edge[d].align_to (Y_AXIS, CENTER);
diff --git a/lily/time-signature.cc b/lily/time-signature.cc
index ea1993a155..66a57b54a8 100644
--- a/lily/time-signature.cc
+++ b/lily/time-signature.cc
@@ -101,9 +101,9 @@ Time_signature::numbered_time_signature (Grob*me,int num, int den)
 					 ly_symbol2scm ("fetaNumber"))),
 		    chain);
 				
-  SCM sn = Text_item::interpret_markup (me->get_paper ()->self_scm (), chain,
+  SCM sn = Text_interface::interpret_markup (me->get_paper ()->self_scm (), chain,
 					scm_makfrom0str (to_string (num).to_str0 ()));
-  SCM sd = Text_item::interpret_markup (me->get_paper ()->self_scm (), chain,
+  SCM sd = Text_interface::interpret_markup (me->get_paper ()->self_scm (), chain,
 					scm_makfrom0str (to_string (den).to_str0 ()));
 
   Stencil n = *unsmob_stencil (sn);
diff --git a/lily/tuplet-bracket.cc b/lily/tuplet-bracket.cc
index 0260b2a1ce..46bf85d6b6 100644
--- a/lily/tuplet-bracket.cc
+++ b/lily/tuplet-bracket.cc
@@ -173,7 +173,7 @@ Tuplet_bracket::print (SCM smob)
  if (scm_is_string (number) && number_visibility)
     {
       SCM properties = Font_interface::text_font_alist_chain (me);
-      SCM snum = Text_item::interpret_markup (pap->self_scm (), properties, number);
+      SCM snum = Text_interface::interpret_markup (pap->self_scm (), properties, number);
       num = *unsmob_stencil (snum);
       num.align_to (X_AXIS, CENTER);
       num.translate_axis (w/2, X_AXIS);
diff --git a/lily/volta-bracket.cc b/lily/volta-bracket.cc
index 22abe4babc..94b331bc1b 100644
--- a/lily/volta-bracket.cc
+++ b/lily/volta-bracket.cc
@@ -100,7 +100,7 @@ Volta_bracket_interface::print (SCM smob)
     {
       SCM text = me->get_property ("text");
       SCM properties = me->get_property_alist_chain (SCM_EOL);
-      SCM snum  = Text_item::interpret_markup (paper->self_scm (), properties, text);
+      SCM snum  = Text_interface::interpret_markup (paper->self_scm (), properties, text);
       Stencil num = *unsmob_stencil (snum);
 
       mol.add_at_edge (X_AXIS, LEFT, num, - num.extent (X_AXIS).length ()
diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm
index 74a018010b..454d051816 100644
--- a/scm/define-grobs.scm
+++ b/scm/define-grobs.scm
@@ -136,7 +136,7 @@
     
     (BarNumber
      . (
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(breakable . #t)
 	(break-visibility . ,begin-of-line-visible)
 	(padding . 1.0)
@@ -159,7 +159,7 @@
 
     (BassFigure
      . (
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(Y-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
 	(direction . 1)
 	(font-family . number)
@@ -267,7 +267,7 @@
 			(first-note . (fixed-space . 1.0)) ;huh? 
 			(right-edge . (extra-space . 0.1))
 			))
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(text . ,(make-musicglyph-markup "scripts-rcomma"))
 	(Y-offset-callbacks . (,Breathing_sign::offset_callback))
 	(break-visibility . ,begin-of-line-invisible)
@@ -314,7 +314,7 @@
 
     (ChordName
      . (
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(after-line-breaking-callback . ,Chord_name::after_line_breaking)
 	(word-space . 0.0)
 	(font-family . sans)
@@ -376,7 +376,7 @@
     (DynamicText
      . (
 	(Y-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(X-offset-callbacks . (,Self_alignment_interface::aligned_on_self
 			       ,Self_alignment_interface::centered_on_parent))
 	(self-alignment-X . 0)
@@ -442,7 +442,7 @@
 
     (Fingering
      . (
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 
 	; sync with TextScript (?)
 	(padding . 0.5)
@@ -510,7 +510,7 @@
 			))
 
 	(self-alignment-Y . 0)
-	(print-function . ,Text_item::print)		
+	(print-function . ,Text_interface::print)		
 	(break-align-symbol . instrument-name)
 	(break-visibility . ,begin-of-line-visible)
 	(baseline-skip . 2)
@@ -525,7 +525,7 @@
 	(space-alist . ((left-edge . (extra-space . 1.0))
 			))
 	(break-align-symbol . instrument-name)
-	(print-function . ,Text_item::print)		
+	(print-function . ,Text_interface::print)		
 	(break-align-symbol . clef)
 	(break-visibility . ,begin-of-line-visible)
 	(baseline-skip . 2)
@@ -616,7 +616,7 @@
 	))
 
     (LyricText
-     . ((print-function . ,Text_item::print)
+     . ((print-function . ,Text_interface::print)
 	(X-offset-callbacks . (,Self_alignment_interface::aligned_on_parent))
 	(self-alignment-X . 0)
 	(word-space . 0.6)
@@ -636,7 +636,7 @@
 
     (RehearsalMark
      . (
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(X-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
 	(Y-offset-callbacks . (,Side_position_interface::aligned_side))
 	(after-line-breaking-callback . ,shift-right-at-line-begin)
@@ -653,7 +653,7 @@
 	))
      (MetronomeMark
      . (
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(Y-offset-callbacks . (,Side_position_interface::aligned_side))	
 	(direction . 1)
 	(padding . 0.8)
@@ -687,7 +687,7 @@
     
     (MultiMeasureRestNumber
      . (
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(X-offset-callbacks . (,Self_alignment_interface::aligned_on_self
 			       ,Self_alignment_interface::centered_on_other_axis_parent))
 	(Y-offset-callbacks . (,Side_position_interface::aligned_side))
@@ -700,7 +700,7 @@
 	))
     (MultiMeasureRestText
      . (
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(X-offset-callbacks . (,Self_alignment_interface::aligned_on_self
 			       ,Self_alignment_interface::centered_on_other_axis_parent))
 	(Y-offset-callbacks . (,Side_position_interface::aligned_side))
@@ -767,7 +767,7 @@
 
     (NoteName
      . (
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(meta . ((interfaces . (note-name-interface
 				text-interface font-interface item-interface ))))
 	))
@@ -778,7 +778,7 @@
 	(break-visibility . ,begin-of-line-visible)
 	(X-offset-callbacks . (,Self_alignment_interface::centered_on_parent ,Self_alignment_interface::aligned_on_self))
 	(Y-offset-callbacks . (,Side_position_interface::aligned_side))
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 
 	;; no Y dimensions, because of lyrics under tenor clef.
 	(Y-extent . (0 . 0))
@@ -958,7 +958,7 @@
 	))
 
     (StanzaNumber
-     . ((print-function . ,Text_item::print)		
+     . ((print-function . ,Text_interface::print)		
 	(font-series . bold)
 	(padding . 1.0)
 	(X-offset-callbacks . (,Side_position_interface::aligned_side))
@@ -976,7 +976,7 @@
 
     (SostenutoPedal
      . (
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(direction . 1)
 	(X-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
 	(no-spacing-rods . #t)
@@ -1147,7 +1147,7 @@
 
     (TextScript
      . (
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(no-spacing-rods . #t)
 	(X-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
 	(direction . -1)
@@ -1161,7 +1161,7 @@
 	))
     (CombineTextScript
      . (
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(no-spacing-rods . #t)
 	(Y-offset-callbacks . (,Side_position_interface::aligned_side))
 	(X-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
@@ -1219,7 +1219,7 @@
     (TabNoteHead
      . (
 	(style . default)
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(Y-offset-callbacks  . (,Staff_symbol_referencer::callback))
 	(extra-offset . (0 . -0.65)) ;; UGH! TODO: Clean this up!
 	(stem-attachment-function . ,tablature-stem-attachment-function)
@@ -1255,7 +1255,7 @@
     (TimeSignature
      . (
 	(print-function . ,Time_signature::print)
-;	(print-function . ,Text_item::print)	
+;	(print-function . ,Text_interface::print)	
 	(break-align-symbol . time-signature)
 	(break-visibility . ,all-visible)
 	(space-alist . (
@@ -1287,7 +1287,7 @@
 
     (UnaCordaPedal
      . (
-	(print-function . ,Text_item::print)
+	(print-function . ,Text_interface::print)
 	(font-shape . italic)
 	(no-spacing-rods . #t)
 	(self-alignment-X . 0)
diff --git a/scm/define-markup-commands.scm b/scm/define-markup-commands.scm
index efae9192a8..cf55fb61ab 100644
--- a/scm/define-markup-commands.scm
+++ b/scm/define-markup-commands.scm
@@ -39,7 +39,7 @@
 (def-markup-command (encoded-simple paper props sym str) (symbol? string?)
   "A text string, encoded with encoding @var{sym}. See
 @usermanref{Text encoding} for more information."
-  (Text_item::interpret_string paper
+  (Text_interface::interpret_string paper
 			       props sym str))
 
 
@@ -622,7 +622,7 @@ around the markup."
   
   "Create a box of the same height as the space in the current font."
   
-  (let ((m (Text_item::interpret_markup paper props " ")))
+  (let ((m (Text_interface::interpret_markup paper props " ")))
     (ly:stencil-set-extent! m X '(1000 . -1000))
     m))
 
@@ -651,7 +651,7 @@ around the markup."
    "Make a markup letter for @var{num}.  The letters start with A to Z
  (skipping I), and continues with double letters."
  
-   (Text_item::interpret_markup paper props (number->markletter-string num)))
+   (Text_interface::interpret_markup paper props (number->markletter-string num)))
 
 
 
diff --git a/scm/new-markup.scm b/scm/new-markup.scm
index 44067bae69..6eb87cf7ae 100644
--- a/scm/new-markup.scm
+++ b/scm/new-markup.scm
@@ -406,8 +406,8 @@ Also set markup-signature and markup-keyword object properties."
       (make-line-markup (list-insert-separator markups sep))
       empty-markup))
 
-(define-public brew-new-markup-stencil Text_item::print)
-(define-public interpret-markup Text_item::interpret_markup)
+(define-public brew-new-markup-stencil Text_interface::print)
+(define-public interpret-markup Text_interface::interpret_markup)
 (define-public (prepend-alist-chain key val chain)
   (cons (acons key val (car chain)) (cdr chain)))
 
diff --git a/scm/safe-lily.scm b/scm/safe-lily.scm
index 1c33c06ba3..974cf6fc9e 100644
--- a/scm/safe-lily.scm
+++ b/scm/safe-lily.scm
@@ -275,7 +275,7 @@
      Sustain_pedal::print
      System_start_delimiter::after_line_breaking
      System_start_delimiter::print
-     Text_item::print
+     Text_interface::print
      Text_spanner::print
      Tie::print
      Tie_column::after_line_breaking
diff --git a/scripts/convert-ly.py b/scripts/convert-ly.py
index f24a79bd7d..8260618457 100644
--- a/scripts/convert-ly.py
+++ b/scripts/convert-ly.py
@@ -2212,7 +2212,8 @@ def conv (str):
 	str = re.sub (r'Text_item', 'Text_interface', str)
 	return str
 
-conversions.append (((2, 3, 18), conv,
+conversions.append (((2, 3, 18),
+		     conv,
 		     '''Text_item -> Text_interface''' )
 
 ################################