]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.5.35
authorfred <fred>
Wed, 27 Mar 2002 02:06:05 +0000 (02:06 +0000)
committerfred <fred>
Wed, 27 Mar 2002 02:06:05 +0000 (02:06 +0000)
lily/include/lily-guile.hh
lily/lily-guile.cc

index 69eda94276cfc3dca33b9bb6c765f670642238d2..f957616d8bd838457a56de1eb9ad8fda6df09997 100644 (file)
@@ -148,6 +148,7 @@ SCM ly_parse_scm (char const* s, int* n);
 SCM ly_quote_scm (SCM s);
 SCM ly_type (SCM);
 bool type_check_assignment (SCM val, SCM sym,  SCM type_symbol) ;
+String print_scm_val (SCM val);
 SCM ly_number2string (SCM s);
 
 SCM parse_symbol_list (char const *);
index 12b925a56725b2eadd3b5ca2e77c53f4bdc11ac3..cf15fbd9628ab5f790a346e3e84138c401d4e73f 100644 (file)
@@ -607,6 +607,15 @@ SCM my_gh_symbol2scm (const char* x)
   return gh_symbol2scm ((char*)x);
 }
 
+String
+print_scm_val (SCM val)
+{
+  String realval = ly_scm2string (ly_write2scm (val));
+  if (realval.length_i () > 200)
+    realval = realval.left_str (100) + "\n :\n :\n" + realval.right_str (100);
+  
+  return realval;       
+}
 
 bool
 type_check_assignment (SCM sym, SCM val,  SCM type_symbol) 
@@ -647,14 +656,10 @@ type_check_assignment (SCM sym, SCM val,  SCM type_symbol)
          SCM typefunc = scm_primitive_eval (ly_symbol2scm ("type-name"));
          SCM type_name = gh_call1 (typefunc, type_p);
 
-         String realval = ly_scm2string (ly_write2scm (val));
-         if (realval.length_i () > 200)
-           realval = realval.left_str (100) + "\n :\n :\n" + realval.right_str (100);
-           
-         
+        
          scm_puts (_f ("Type check for `%s' failed; value `%s' must be of type `%s'",
                        ly_symbol2string (sym).ch_C (),
-                       realval.ch_C (),
+                       print_scm_val (val),
                        ly_scm2string (type_name).ch_C ()).ch_C (),
                    errport);
          scm_puts ("\n", errport);