X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fsource-file.cc;h=7667b2f810d21973e8ed757522ddf06bb3cbe794;hb=a9e8ac82c2881781ef5f58ffab9a763796f1c4d5;hp=bb38ffdb0994879a5ad11ab1c9a9362445ec023d;hpb=3ab4e005bd56e9265aa3870c5458a6caebdbcfa9;p=lilypond.git diff --git a/lily/source-file.cc b/lily/source-file.cc index bb38ffdb09..7667b2f810 100644 --- a/lily/source-file.cc +++ b/lily/source-file.cc @@ -3,19 +3,24 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2006 Jan Nieuwenhuizen + (c) 1997--2007 Jan Nieuwenhuizen Han-Wen Nienhuys */ +#if GCC_MAJOR < 4 +#define _GLIBCXX_HAVE_MBSTATE_T +#include +#endif /* GCC_MAJOR < 4 */ + #include "source-file.hh" #include "config.hh" #if HAVE_UTF8_WCHAR_H #include /* mbrtowc */ -#else +#else /* !HAVE_UTF8_WCHAR_H */ #include /* mbrtowc */ -#endif +#endif /* HAVE_UTF8_WCHAR_H */ #include @@ -51,7 +56,7 @@ gulp_file (string filename, int desired_size) FILE *f = fopen (filename.c_str (), "rb"); if (!f) { - warning (_f ("can't open file: `%s'", filename.c_str ())); + warning (_f ("cannot open file: `%s'", filename.c_str ())); vector cxx_arr; return cxx_arr; @@ -138,9 +143,9 @@ Source_file::Source_file (string filename_string) void Source_file::init_port () { - SCM str = scm_makfrom0str (c_str ()); + SCM str = scm_from_locale_string (c_str ()); str_port_ = scm_mkstrport (SCM_INUM0, str, SCM_OPN | SCM_RDNG, __FUNCTION__); - scm_set_port_filename_x (str_port_, scm_makfrom0str (name_.c_str ())); + scm_set_port_filename_x (str_port_, ly_string2scm (name_)); } @@ -188,7 +193,7 @@ Source_file::quote_input (char const *pos_str0) const string context = line.substr (0, ch) + to_string ('\n') + to_string (' ', col) - + line.substr (ch, line.length()-ch); + + line.substr (ch, line.length ()-ch); return context; } @@ -277,16 +282,14 @@ Source_file::get_counts (char const *pos_str0, while (left > 0) { - wchar_t multibyte[2]; - /* FIXME, this is apparently locale dependent. */ #if HAVE_MBRTOWC + wchar_t multibyte[2]; size_t thislen = mbrtowc (multibyte, line_chars, left, &state); #else size_t thislen = 1; - (void) multibyte; #endif /* !HAVE_MBRTOWC */ /* Stop converting at invalid character; @@ -367,9 +370,9 @@ Source_file::get_port () const #include "ly-smobs.icc" -IMPLEMENT_SMOBS(Source_file); -IMPLEMENT_DEFAULT_EQUAL_P(Source_file); -IMPLEMENT_TYPE_P(Source_file, "ly:source-file?"); +IMPLEMENT_SMOBS (Source_file); +IMPLEMENT_DEFAULT_EQUAL_P (Source_file); +IMPLEMENT_TYPE_P (Source_file, "ly:source-file?"); SCM Source_file::mark_smob (SCM smob)