]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lily-guile.cc
* flower/file-path.cc (find): try to open directly as well, so we
[lilypond.git] / lily / lily-guile.cc
index ad54d7f664f88e0665aa9c89174a53e7fc3b4bfb..a5cd70e2e9f92ebacd1b3642e9438d121af5b3b8 100644 (file)
@@ -111,7 +111,7 @@ gulp_file_to_string (String fn, bool must_exist)
 
   int n;
   char *str = gulp_file (s, &n);
-  String result (str);
+  String result ((Byte*) str, n);
   delete[] str;
   
   if (verbose_global_b)
@@ -126,9 +126,8 @@ LY_DEFINE (ly_gulp_file, "ly:gulp-file",
           "The file is looked up using the search path.")
 {
   SCM_ASSERT_TYPE (scm_is_string (name), name, SCM_ARG1, __FUNCTION__, "string");
-  return scm_makfrom0str (gulp_file_to_string (ly_scm2string (name),
-                                              true).to_str0 ());
-                                              
+  String contents = gulp_file_to_string (ly_scm2string (name), true);
+  return scm_from_locale_stringn (contents.get_str0 (), contents.length ());
 }
 
 
@@ -447,11 +446,23 @@ ly_deep_copy (SCM src)
   return src;
 }
 
-
-
+SCM
+ly_chain_assoc_get (SCM key, SCM achain, SCM dfault)
+{
+  if (scm_is_pair (achain))
+    {
+      SCM handle = scm_assoc (key, scm_car (achain));
+      if (scm_is_pair (handle))
+       return scm_cdr (handle);
+      else
+       return ly_chain_assoc (key, scm_cdr (achain));
+    }
+  else
+    return dfault;
+}
 
 SCM
-ly_assoc_chain (SCM key, SCM achain)
+ly_chain_assoc (SCM key, SCM achain)
 {
   if (scm_is_pair (achain))
     {
@@ -459,7 +470,7 @@ ly_assoc_chain (SCM key, SCM achain)
       if (scm_is_pair (handle))
        return handle;
       else
-       return ly_assoc_chain (key, scm_cdr (achain));
+       return ly_chain_assoc (key, scm_cdr (achain));
     }
   else
     return SCM_BOOL_F;
@@ -823,7 +834,6 @@ alist_to_hashq (SCM alist)
   return tab; 
 }
 
-#if 1
 /*
   Debugging mem leaks:
  */
@@ -833,24 +843,6 @@ LY_DEFINE (ly_protects, "ly:protects",
 {
   return scm_protects;
 }
-#endif
-
-
-#if HAVE_PANGO_FC_FONT_MAP_ADD_DECODER_FIND_FUNC
-
-#include "pangofc-afm-decoder.hh"
-
-LY_DEFINE (ly_pango_add_afm_decoder, "ly:pango-add-afm-decoder",
-          1, 0, 0, (SCM font_family),
-          "Add pango afm decoder for FONT-FAMILY.")
-{
-  SCM_ASSERT_TYPE (scm_is_string (font_family), font_family, SCM_ARG1,
-                  __FUNCTION__, "font_family");
-  pango_fc_afm_add_decoder (ly_scm2newstr (font_family, 0));
-  return SCM_UNSPECIFIED;
-}
-
-#endif
 
 LY_DEFINE (ly_gettext, "ly:gettext",
           1, 0, 0, (SCM string),