X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fgeneral-scheme.cc;h=a74826c8ac7984821315bc6cb023edc2358e6ed8;hb=73b3cc9a021e7c2751eb00a9571f8c5d7b63a273;hp=dc236aa34ff60c001b860b383757a3e61cd958d8;hpb=f63b7e7f12fa7757efbf89925afa39b1a2738f68;p=lilypond.git diff --git a/lily/general-scheme.cc b/lily/general-scheme.cc index dc236aa34f..a74826c8ac 100644 --- a/lily/general-scheme.cc +++ b/lily/general-scheme.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1998--2006 Jan Nieuwenhuizen + (c) 1998--2007 Jan Nieuwenhuizen Han-Wen Nienhuys */ @@ -23,6 +23,7 @@ using namespace std; #include "main.hh" #include "file-path.hh" #include "relocate.hh" +#include "file-name.hh" LY_DEFINE (ly_find_file, "ly:find-file", 1, 0, 0, (SCM name), @@ -293,19 +294,21 @@ LY_DEFINE (ly_chain_assoc_get, "ly:chain-assoc-get", return dfault == SCM_UNDEFINED ? SCM_BOOL_F : dfault; } + LY_DEFINE (ly_stderr_redirect, "ly:stderr-redirect", 1, 1, 0, (SCM file_name, SCM mode), "Redirect stderr to FILE-NAME, opened with MODE.") { SCM_ASSERT_TYPE (scm_is_string (file_name), file_name, SCM_ARG1, __FUNCTION__, "file_name"); - char const *m = "w"; + + string m = "w"; if (mode != SCM_UNDEFINED && scm_string_p (mode)) - m = ly_scm2newstr (mode, 0); + m = ly_scm2string (mode); /* dup2 and (fileno (current-error-port)) do not work with mingw'c gcc -mwindows. */ fflush (stderr); - freopen (ly_scm2newstr (file_name, 0), m, stderr); + freopen (ly_scm2string (file_name).c_str (), m.c_str (), stderr); return SCM_UNSPECIFIED; }