void
Source_file::init_port ()
{
- SCM str = scm_from_locale_string (c_str ());
+ // This is somewhat icky: the string will in general be in utf8, but
+ // we do our own utf8 encoding and verification in the parser, so we
+ // use the no-conversion equivalent of latin1
+ SCM str = scm_from_latin1_string (c_str ());
str_port_ = scm_mkstrport (SCM_INUM0, str, SCM_OPN | SCM_RDNG, __FUNCTION__);
scm_set_port_filename_x (str_port_, ly_string2scm (name_));
}
/****************************************************************/
-const char Source_file::type_p_name_[] = "ly:source-file?";
+const char * const Source_file::type_p_name_ = "ly:source-file?";
SCM
-Source_file::mark_smob ()
+Source_file::mark_smob () const
{
return str_port_;
}
int
-Source_file::print_smob (SCM port, scm_print_state *)
+Source_file::print_smob (SCM port, scm_print_state *) const
{
scm_puts ("#<Source_file ", port);
scm_puts (name_.c_str (), port);