From ae1a02bf99b8c91edf6a91b799328c45c6e15ebd Mon Sep 17 00:00:00 2001
From: Han-Wen Nienhuys <hanwen@xs4all.nl>
Date: Sun, 20 Jun 2004 20:43:52 +0000
Subject: [PATCH] * lily/my-lily-parser.cc (parse_string): init parser variable
 when lexer_ is set, ie. in parse_string and parse_file.

* scm/lily.scm (collect-scores-for-book): new function.

* lily/my-lily-parser.cc (LY_DEFINE): define parser in parser
scope, not in lily module.
---
 ChangeLog              |  3 +++
 lily/my-lily-parser.cc | 10 +++++++---
 scm/lily.scm           | 13 +++++++------
 scm/safe-lily.scm      |  1 -
 4 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 60ac76a11f..e220bc8905 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2004-06-20  Han-Wen Nienhuys   <hanwen@xs4all.nl>
 
+	* lily/my-lily-parser.cc (parse_string): init parser variable when
+	lexer_ is set, ie. in parse_string and parse_file.
+
 	* lily/book.cc (LY_DEFINE): new function. ly:make-book. Supercedes
 	ly:score-bookify.
 
diff --git a/lily/my-lily-parser.cc b/lily/my-lily-parser.cc
index 1abe0fe85a..100b2c4771 100644
--- a/lily/my-lily-parser.cc
+++ b/lily/my-lily-parser.cc
@@ -85,6 +85,9 @@ void
 My_lily_parser::parse_file (String init, String name, String out_name)
 {
   lexer_ = new My_lily_lexer (sources_);
+  // TODO: use $parser 
+  lexer_->set_identifier (ly_symbol2scm ("parser"),
+			  self_scm ());
   output_basename_ = out_name;
   
   lexer_->main_input_name_ = name;
@@ -117,6 +120,10 @@ My_lily_parser::parse_string (String ly_code)
   lexer_ = (parent == 0 ? new My_lily_lexer (sources_)
 	    : new My_lily_lexer (*parent));
 
+  // TODO: use $parser 
+  lexer_->set_identifier (ly_symbol2scm ("parser"),
+			  self_scm ());
+  
   lexer_->main_input_name_ = "<string>";
   lexer_->main_input_b_ = true;
 
@@ -280,9 +287,6 @@ LY_DEFINE (ly_parse_file, "ly:parse-file",
 
       My_lily_parser *parser = new My_lily_parser (&sources);
 
-      // TODO: use $parser 
-      parser->lexer_->set_identifier (ly_symbol2scm ("parser"),
-				      parser->self_scm ());
       parser->parse_file (init, file_name, out_file);
 
       bool error = parser->error_level_;
diff --git a/scm/lily.scm b/scm/lily.scm
index ecd29e3876..57a5f337c7 100644
--- a/scm/lily.scm
+++ b/scm/lily.scm
@@ -94,21 +94,22 @@
 
 ;; parser stuff.
 (define-public (print-music-as-book parser music)
-  (let* (
-	 (head  (ly:parser-lookup parser '$globalheader))
-	 (book (ly:score-bookify score head)))
+  (let* ((head  (ly:parser-lookup parser '$globalheader))
+	 (book (ly:make-book (ly:parser-lookup parser $defaultbookpaper)
+			     head score)))
     (ly:parser-print-book parser book)))
 
 (define-public (print-score-as-book parser score)
   (let*
       ((head  (ly:parser-lookup parser '$globalheader))
-       (book (ly:score-bookify score head)))
-    
+       (book (ly:make-book (ly:parser-lookup parser $defaultbookpaper)
+			   head score)))
     (ly:parser-print-book parser book)))
 
 (define-public (print-score parser score)
   (let* ((head  (ly:parser-lookup parser '$globalheader))
-	(book (ly:score-bookify score head)))
+	 (book (ly:make-book (ly:parser-lookup parser $defaultbookpaper)
+			     head score)))
     (ly:parser-print-score parser book)))
 		
 (define-public (collect-scores-for-book  parser score)
diff --git a/scm/safe-lily.scm b/scm/safe-lily.scm
index 47752e3bed..5a9cbe0348 100644
--- a/scm/safe-lily.scm
+++ b/scm/safe-lily.scm
@@ -122,7 +122,6 @@
      ly:round-filled-box
      ly:run-translator
      ly:set-option
-     ly:score-bookify
      ly:set-point-and-click
      ly:spanner-broken-into
      ly:spanner-get-bound
-- 
2.39.5