X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Flily-lexer.cc;h=8b61e6c3cbd8493cc390215a099dc89fb9f360a4;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=8d70783cb5989da22c5eede795ac94bcf6f72cc3;hpb=9e69cb84d6ee5b0a861cd97869b10e3bdf0c833c;p=lilypond.git diff --git a/lily/lily-lexer.cc b/lily/lily-lexer.cc index 8d70783cb5..8b61e6c3cb 100644 --- a/lily/lily-lexer.cc +++ b/lily/lily-lexer.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2006 Han-Wen Nienhuys + (c) 1997--2008 Han-Wen Nienhuys */ #include "lily-lexer.hh" @@ -31,6 +31,7 @@ static Keyword_ent the_key_tab[] {"alias", ALIAS}, {"alternative", ALTERNATIVE}, {"book", BOOK}, + {"bookpart", BOOKPART}, {"change", CHANGE}, {"chordmode", CHORDMODE}, {"chords", CHORDS}, @@ -53,6 +54,7 @@ static Keyword_ent the_key_tab[] {"lyricsto", LYRICSTO}, {"mark", MARK}, {"markup", MARKUP}, + {"markuplines", MARKUPLINES}, {"midi", MIDI}, {"name", NAME}, {"new", NEWCONTEXT}, @@ -193,11 +195,11 @@ Lily_lexer::keyword_list () const SCM *tail = &l; for (vsize i = 0; i < keytable_->table_.size (); i++) { - *tail = scm_acons (scm_makfrom0str (keytable_->table_[i].name_), + *tail = scm_acons (scm_from_locale_string (keytable_->table_[i].name_), scm_from_int (keytable_->table_[i].tokcode_), SCM_EOL); - tail = SCM_CDRLOC(*tail); + tail = SCM_CDRLOC (*tail); } return l; @@ -231,12 +233,27 @@ Lily_lexer::start_main_input () new_input (main_input_name_, sources_); - /* Do not allow \include in --safe-mode */ - allow_includes_b_ = allow_includes_b_ && !be_safe_global; - scm_module_define (scm_car (scopes_), ly_symbol2scm ("input-file-name"), - scm_makfrom0str (main_input_name_.c_str ())); + ly_string2scm (main_input_name_)); +} + +void +Lily_lexer::new_input (string str, string d, Sources *ss) +{ + Includable_lexer::new_input (str, d, ss); +} + +void +Lily_lexer::new_input (string str, Sources *ss) +{ + if (is_main_input_ && be_safe_global) + { + LexerError (_ ("include files are not allowed in safe mode").c_str ()); + return; + } + + Includable_lexer::new_input (str, ss); } void @@ -326,7 +343,7 @@ IMPLEMENT_DEFAULT_EQUAL_P (Lily_lexer); SCM Lily_lexer::mark_smob (SCM s) { - ASSERT_LIVE_IS_ALLOWED(); + ASSERT_LIVE_IS_ALLOWED (); Lily_lexer *lexer = (Lily_lexer *) SCM_CELL_WORD_1 (s);