]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/text-metrics.cc
Run `make grand-replace'.
[lilypond.git] / lily / text-metrics.cc
index c987579e400009818b0a99360ad33b7fab4300b6..b4ebd82b7618f19f527b26efe1cfaa8b8cc21ae7 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2004 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 2004--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "dimensions.hh"
 
 static SCM text_dimension_hash_tab;
 
-
 Box
-lookup_tex_text_dimension (Font_metric *font,
-                          SCM text)
+lookup_tex_text_dimension (Font_metric *font, SCM text)
 {
   Box b;
 
+  /*
+    Actually, it's defined in framework-texstr, but let's see how long
+    it takes before we get a bugreport. HWN 13/2/2006.
+   */
   SCM limit = ly_lily_module_constant ("TEX_STRING_HASHLIMIT");
-  String key_str = ly_scm2string (font->font_file_name());
+  string key_str = ly_scm2string (font->font_file_name ());
   int hash_code = scm_to_int (scm_hash (text, limit));
-  key_str = to_string (hash_code)  + key_str;
-  
+  key_str = to_string (hash_code) + key_str;
+
   SCM val = SCM_BOOL_F;
   if (text_dimension_hash_tab)
     {
       scm_hash_ref (text_dimension_hash_tab,
-                   scm_makfrom0str (key_str.to_str0 ()),
+                   ly_string2scm (key_str),
                    SCM_BOOL_F);
     }
   if (scm_is_pair (val))
@@ -39,23 +41,22 @@ lookup_tex_text_dimension (Font_metric *font,
       val = scm_cdr (val);
       b[Y_AXIS][UP] = scm_to_double (scm_car (val)) * point_constant;
       val = scm_cdr (val);
-      b[Y_AXIS][DOWN] = scm_to_double (scm_car (val)) * point_constant; 
+      b[Y_AXIS][DOWN] = scm_to_double (scm_car (val)) * point_constant;
     }
-  
-  return b; 
-}
-
 
+  return b;
+}
 
-LY_DEFINE(ly_load_text_dimensions, "ly:load-text-dimensions",
-         1, 0, 0,
-         (SCM dimension_alist),
-         "Load dimensions from TeX in a (KEY . (W H D)) format alist")
+LY_DEFINE (ly_load_text_dimensions, "ly:load-text-dimensions",
+          1, 0, 0,
+          (SCM dimension_alist),
+          "Load dimensions from @TeX{} in a @code{(KEY . (W H D))} format"
+          " alist.")
 {
   if (!text_dimension_hash_tab)
     {
-      text_dimension_hash_tab =
-       scm_gc_protect_object (scm_make_hash_table (scm_from_int (113)));
+      text_dimension_hash_tab
+       = scm_gc_protect_object (scm_c_make_hash_table (113));
     }
 
   for (SCM s = dimension_alist;
@@ -64,27 +65,25 @@ LY_DEFINE(ly_load_text_dimensions, "ly:load-text-dimensions",
     {
       SCM key = scm_caar (s);
       SCM val = scm_cdar (s);
-      
+
       if (scm_hash_ref (text_dimension_hash_tab, key, SCM_BOOL_F)
          == SCM_BOOL_F)
-       {
-         scm_hash_set_x (text_dimension_hash_tab, key, val);
-       }
+       scm_hash_set_x (text_dimension_hash_tab, key, val);
     }
 
   return SCM_UNSPECIFIED;
 }
 
 void
-try_load_text_metrics (String basename)
+try_load_text_metrics (string basename)
 {
-  String path =  global_path.find (basename +  ".textmetrics");
+  string path = global_path.find (basename + ".textmetrics");
   if (path != "")
     {
-      String contents (gulp_file_to_string (path, true));
-      contents = "(quote (" +  contents + "))";
+      string contents (gulp_file_to_string (path, true, -1));
+      contents = "(quote (" + contents + "))";
 
-      SCM lst = scm_c_eval_string (contents.to_str0 ());
+      SCM lst = scm_c_eval_string (contents.c_str ());
       ly_load_text_dimensions (lst);
     }
 }