]> git.donarmstrong.com Git - lilypond.git/commitdiff
*** empty log message ***
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 4 Aug 2002 16:56:18 +0000 (16:56 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 4 Aug 2002 16:56:18 +0000 (16:56 +0000)
48 files changed:
ChangeLog
Documentation/user/refman.itely
Documentation/user/tutorial.itely
flower/file-path.cc
lily/all-font-metrics.cc
lily/bar-number-engraver.cc
lily/beam-engraver.cc
lily/beam.cc
lily/clef.cc
lily/duration.cc
lily/dynamic-engraver.cc
lily/dynamic-performer.cc
lily/figured-bass-engraver.cc
lily/font-interface.cc
lily/function-documentation.cc
lily/grob-interface.cc
lily/include/lily-guile.hh
lily/lexer.ll
lily/ligature-engraver.cc
lily/lily-guile.cc
lily/lyric-phrasing-engraver.cc
lily/main.cc
lily/mark-engraver.cc
lily/multi-measure-rest-engraver.cc
lily/multi-measure-rest.cc
lily/music.cc
lily/note-head.cc
lily/note-heads-engraver.cc
lily/note-name-engraver.cc
lily/paper-column.cc
lily/paper-outputter.cc
lily/parser.yy
lily/part-combine-music-iterator.cc
lily/piano-pedal-engraver.cc
lily/piano-pedal-performer.cc
lily/pitch.cc
lily/repeat-acknowledge-engraver.cc
lily/span-bar.cc
lily/system-start-delimiter-engraver.cc
lily/system-start-delimiter.cc
lily/system.cc
lily/time-signature.cc
lily/timing-engraver.cc
lily/translator-group.cc
lily/translator.cc
lily/unfolded-repeat-iterator.cc
lily/voice-devnull-engraver.cc
tex/lilyponddefs.tex

index 6e7576c9337c33525fe64cfc5fdc59bccc7dccde..e15c768941be9acdc04496f155a3f000bdbff0f8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2002-08-04  Han-Wen  <hanwen@cs.uu.nl>
+
+       * lily/lily-guile.cc: change gh_str02scm scm_makfrom0str.
+
+2002-08-04  Werner Lemberg  <wl@gnu.org>
+
+       * tex/lilyponddefs.tex: s/filllastpage/lastpagefill/.
+       
+       * Documentation/user/refman.itely: Document it.
+
 2002-08-04  Han-Wen  <hanwen@cs.uu.nl>
 
        * lily/main.cc (sane_putenv): Oops.  Should supply a private copy
 2002-08-04  Han-Wen  <hanwen@cs.uu.nl>
 
        * lily/main.cc (sane_putenv): Oops.  Should supply a private copy
index b0b73dee1c8ecc58393ebfa5db18ba62dee618fd..9b9eeb11e2b717e0cbf48bf8e0944e4c98441d42 100644 (file)
@@ -4428,6 +4428,15 @@ that case @code{interscoreline} specifies the minimum spacing.
 @cindex @code{interscoreline}
 @cindex @code{interscorelinefill}
 
 @cindex @code{interscoreline}
 @cindex @code{interscorelinefill}
 
+If the variable @code{lastpagefill} is defined (that is, it gets any
+value assigned in the @code{\paper} block), systems are evenly
+distributed vertically on the last page.  This might produce ugly results
+in case there are not enough systems on the last page.  Note that
+@command{lilypond-book} ignores @code{lastpagefill}.  See
+@ref{Merging text and music with lilypond-book} for more information.
+
+@cindex @code{lastpagefill}
+
 Page breaks are normally computed by @TeX{}, so they are not under
 direct control of LilyPond.  However, you can insert a commands into
 the @file{.tex} output to instruct @TeX{} where to break pages. You
 Page breaks are normally computed by @TeX{}, so they are not under
 direct control of LilyPond.  However, you can insert a commands into
 the @file{.tex} output to instruct @TeX{} where to break pages. You
index cdc4d0ef51c2f3f0e635eb6a780348656e780cc6..735200a1d06545a138cb85b81be09ee22b35afea 100644 (file)
@@ -25,9 +25,9 @@
 @end menu
 
 Operating lilypond is done through text files: to print a piece of
 @end menu
 
 Operating lilypond is done through text files: to print a piece of
-music, you enter the music in a file.  When you run lilypond, that
-file is read, and after some computations, the program produces a file
-containing the sheet music that you can print or view.
+music, you enter the music in a file.  When you run lilypond on that
+file, the program produces another file which contains sheet music that
+you can print or view.
 
 This tutorial starts with a small introduction to the LilyPond music
 language.  After this first contact, we will show you how to run
 
 This tutorial starts with a small introduction to the LilyPond music
 language.  After this first contact, we will show you how to run
@@ -38,8 +38,8 @@ complex examples.
 @node First steps
 @section First steps
 
 @node First steps
 @section First steps
 
-We tsart off with showing how very simple music is entered in
-LilyPond:  you get a simple note by typing its note name, from
+We start off by showing how very simple music is entered in
+LilyPond:  you get a note simply by typing its note name, from
 @code{a} through @code{g}. So if you enter
 @quotation
 @example
 @code{a} through @code{g}. So if you enter
 @quotation
 @example
@@ -99,7 +99,9 @@ s16_" "
 @separate
 
 A sharp (@texisharp{}) is made by adding ``@code{is}'', a flat
 @separate
 
 A sharp (@texisharp{}) is made by adding ``@code{is}'', a flat
-(@texiflat{}) by adding ``@code{es}'':
+(@texiflat{}) by adding ``@code{es}''.  As you would expect, a
+double-sharp or double-flat is made by adding ``@code{isis}'' or
+``@code{eses}'':
 
 @quotation
 @example
 
 @quotation
 @example
@@ -159,9 +161,10 @@ The clef can be set using the ``@code{\clef}'' command:
 
 @c what is more common name treble or violin?
 @c in Dutch, its violin.
 
 @c what is more common name treble or violin?
 @c in Dutch, its violin.
+@c in English its definately treble.
 @quotation
 @example
 @quotation
 @example
-\clef violin
+\clef treble
 \clef bass
 \clef alto
 \clef tenor
 \clef bass
 \clef alto
 \clef tenor
@@ -182,9 +185,12 @@ s16_" "
 @end quotation
 @separate
 
 @end quotation
 @separate
 
-From these commands and notes, a piece of music can be formed.  A piece
-of music is made by enclosing it in ``@code{\notes @{ ... @}}''.
-LilyPond then knows that music follows (and not lyrics, for example):
+@c From these commands and notes, a piece of music can be formed.  A piece
+@c of music is made by enclosing it in ``@code{\notes @{ ... @}}''.
+@c     rephrased:
+With these commands you can now write a piece of music.  The next step
+is to enclose your music inside ``@code{\notes @{ .. @}}''.
+This lets LilyPond know that music (and not lyrics, for example) follows:
 
 @quotation
 @example
 
 @quotation
 @example
@@ -198,11 +204,11 @@ LilyPond then knows that music follows (and not lyrics, for example):
 @end quotation
 @separate
 
 @end quotation
 @separate
 
-At this point, the piece of music is ready to be printed.  This is done
-by combining the music with a printing command.
+Now the piece of music is almost ready to be printed.  The final step is to
+combine the music with a printing command.
 
 
-The printing command is the so-called ``@code{\paper}'' block.  You
-will see later that the @code{\paper} block is necessary to customize
+The printing command is the so-called ``@code{\paper}'' block.  Later on
+you will see that the @code{\paper} block is used to customize
 printing specifics.  The music and the @code{\paper} block are combined by
 enclosing them in ``@code{\score @{ ... @}}''.  This is what a full
 LilyPond source file looks like:
 printing specifics.  The music and the @code{\paper} block are combined by
 enclosing them in ``@code{\score @{ ... @}}''.  This is what a full
 LilyPond source file looks like:
@@ -238,18 +244,19 @@ LilyPond source file looks like:
 @node Running LilyPond
 @section Running LilyPond
 
 @node Running LilyPond
 @section Running LilyPond
 
-In the last section, we explained what kind of things you could enter
-in a lilypond file.  In this section we explain how to run LilyPond,
+In the last section we explained what kind of things you could enter
+in a lilypond file.  In this section we explain how to run LilyPond 
 and how view or print the output.  If you have not used LilyPond
 and how view or print the output.  If you have not used LilyPond
-before, want to test your setup of LilyPond, or try to run an example
-file yourself, then read this section.  The instructions that follow
+before, want to test your setup of LilyPond, or want to run an example
+file yourself, read this section.  Most of the instructions that follow
 are for running LilyPond on Unix-like systems.  Some additional
 instructions for running LilyPond on Windows are given at the end of
 this section.
 
 are for running LilyPond on Unix-like systems.  Some additional
 instructions for running LilyPond on Windows are given at the end of
 this section.
 
-You begin with opening a terminal window, and start up a text editor.
-For example, open an xterm and execute @code{joe}.  In your text editor,
-enter the following input, and save the file as @file{test.ly}:
+Begin by opening a terminal window and starting a text editor.
+For example, you could open an xterm and execute @code{joe}.  In your
+text editor, enter the following input and save the file as
+@file{test.ly}:
 
 @quotation
 @example
 
 @quotation
 @example
@@ -281,7 +288,7 @@ You will see the following on your screen:
 
 @quotation
 @example
 
 @quotation
 @example
-GNU LilyPond 1.4.0
+GNU LilyPond 1.6.0
 Now processing: `/home/fred/ly/test.ly'
 Parsing...
 Interpreting music...[1]
 Now processing: `/home/fred/ly/test.ly'
 Parsing...
 Interpreting music...[1]
@@ -308,16 +315,15 @@ produce a window with some music notation on your screen:
   kghostview test.ps
 @end example
 @end quotation
   kghostview test.ps
 @end example
 @end quotation
-If you are satisfied with the looks of the music displayed on your
-screen, you can print the PS file by clicking File/Print inside
-ghostview.
+If the music on your screen looks good, you can print it by clicking
+File/Print inside ghostview.
 
 The DVI file (@file{test.dvi}) contains the same sheet music in a
 different format. DVI files are more easily processed by the computer,
 
 The DVI file (@file{test.dvi}) contains the same sheet music in a
 different format. DVI files are more easily processed by the computer,
-so viewing them usually is quicker.  Execute @code{xdvi test.dvi} or
+so viewing them usually is quicker.  You can run @code{xdvi test.dvi} or
 @code{kdvi test.dvi} to view the DVI file. In Xdvi, the mouse buttons
 @code{kdvi test.dvi} to view the DVI file. In Xdvi, the mouse buttons
-activate magnifying glasses.  Unfortunately, variable symbolssuch as
-beams and slurs won't show up in these.
+activate magnifying glasses.  Unfortunately, variable symbols (such as
+beams and slurs) are not displayed in the magnifying glasses.
 
 If your DVI viewer does not have a "Print" button, you can print the
 file by executing @code{lpr test.ps}.
 
 If your DVI viewer does not have a "Print" button, you can print the
 file by executing @code{lpr test.ps}.
@@ -334,25 +340,25 @@ GhostScript's website at @uref{http://www.ghostscript.com}.
 @cindex PostScript
 @cindex PDF
 
 @cindex PostScript
 @cindex PDF
 
-A final option, is to use the popular PDF format. You can get a PDF
-file by running @code{ly2dvi --pdf test.ly}. With the @code{--pdf},
-you will get a DVI, PS and PDF file. The viewers for the PS files also
+A final option is to use the popular PDF format.  You can get a PDF
+file by running @code{ly2dvi --pdf test.ly}.  With @code{--pdf}
+you will get DVI, PS and PDF files.  Viewers for PS files also
 accept PDF files, but there are also many other applications for
 viewing PDF files.
 
 accept PDF files, but there are also many other applications for
 viewing PDF files.
 
-If you are familiar with @TeX{}, then one warning is in place: do not
-use other DVI drivers like @code{dvilj}. The @TeX{} coming out of
-LilyPond uses embedded PostScript code, and will not render correctly
-if you use anything different than @code{dvips}.
+If you are familiar with @TeX{}, be warned: do not use other
+DVI drivers like @code{dvilj}. The @TeX{} coming out of LilyPond
+uses embedded PostScript code and will not render correctly if
+you use anything other than @code{dvips}.
 
 @cindex dvips
 @cindex dvilj
 @cindex DVI driver
 
 @unnumberedsubsec Windows users
 
 @cindex dvips
 @cindex dvilj
 @cindex DVI driver
 
 @unnumberedsubsec Windows users
-Windows users start the terminal by clicking on the LilyPond or Cygwin
-icon.  Notepad is sufficient for editing the LilyPond file.  Viewing
-the PS file can be done with:
+Windows users can start the terminal by clicking on the LilyPond or
+Cygwin icons.  You can use any text editor (such as Notepad) to edit
+the LilyPond file.  Viewing the PS file can be done with:
 @quotation
 @example
 @code{gsview32 test.ps}
 @quotation
 @example
 @code{gsview32 test.ps}
@@ -368,10 +374,10 @@ You can also print from the command line by executing:
 
 @strong{SUMMARY}
 
 
 @strong{SUMMARY}
 
-To run LilyPond, enter a file, and run the command @code{ly2dvi} on
-that file. The resulting files are either DVI or PostScript, and can
+To run LilyPond, input a text file, then run the command @code{ly2dvi} on
+that file.  The resulting files are either DVI or PostScript, and can
 be viewed with @code{xdvi} (unix) and ghostview (unix and windows)
 be viewed with @code{xdvi} (unix) and ghostview (unix and windows)
-respectively. The following table summarizes the constructs that were
+respectively.  The following table summarizes the constructs that were
 discussed in the previous two sections.
 
 @multitable @columnfractions  .3 .3 .4  
 discussed in the previous two sections.
 
 @multitable @columnfractions  .3 .3 .4  
@@ -463,7 +469,7 @@ s16_" "
 @c but we'd need to remove the ', from \key and tie 
 To raise a note by an octave, add a high quote @code{'} (apostrophe) to
 the note name, to lower a note one octave, add a ``low quote'' @code{,}
 @c but we'd need to remove the ', from \key and tie 
 To raise a note by an octave, add a high quote @code{'} (apostrophe) to
 the note name, to lower a note one octave, add a ``low quote'' @code{,}
-(a comma).  The central C is @code{c'}:
+(a comma).  Middle C is @code{c'}:
 
 @quotation
 @example
 
 @quotation
 @example
@@ -480,7 +486,7 @@ c'4 c'' c''' \clef bass c c,
 
 A tie is created by entering a tilde ``@code{~}'' between the notes to
 be tied.  A tie between two notes means that the second note must not be
 
 A tie is created by entering a tilde ``@code{~}'' between the notes to
 be tied.  A tie between two notes means that the second note must not be
-played separately, but just makes the first note sound longer:
+played separately; it just makes the first note sound longer:
 
 @quotation
 @lilypond[fragment,verbatim]
 
 @quotation
 @lilypond[fragment,verbatim]
@@ -561,9 +567,11 @@ and is therefore also a potential source of errors.
 The solution is to use ``relative octave'' mode.  In practice, this is
 the most convenient way to copy existing music.  To use relative mode,
 add @code{\relative} before the piece of music.  You must also give a
 The solution is to use ``relative octave'' mode.  In practice, this is
 the most convenient way to copy existing music.  To use relative mode,
 add @code{\relative} before the piece of music.  You must also give a
-note from which relative starts, in this case @code{c''}.  If you type
-no octavation quotes, relative mode chooses the note that is closest
-to the previous one, which is often just the one you need.
+note from which relative starts, in this case @code{c''}.  If you don't
+use octavation quotes (ie don't add ' or , after a note), relative mode
+chooses the note that is closest to the previous one.  Since most music
+has small intervals, you can write quite a lot in relative mode without
+using octavation quotes.
 @c don't use commas or quotes in this sentence
 For example: @code{c f} goes up; @code{c g} goes down:
 
 @c don't use commas or quotes in this sentence
 For example: @code{c f} goes up; @code{c g} goes down:
 
@@ -584,10 +592,12 @@ For example: @code{c f} goes up; @code{c g} goes down:
 @end quotation
 @separate
 
 @end quotation
 @separate
 
+
 @c needed better, maybe even redundant explanation
 @c needed better, maybe even redundant explanation
+@c   added another example below.
 @c grappig: Pa vond het heel logies, en slim toen-i eenmaal begreep.
 @c in eerste instantie drong het `relative' niet door zonder extra uitleg.
 @c grappig: Pa vond het heel logies, en slim toen-i eenmaal begreep.
 @c in eerste instantie drong het `relative' niet door zonder extra uitleg.
-You can make a large interval by adding octavation quotes.  Note that
+You can make larger intervals by adding octavation quotes.  Note that
 quotes or commas do not determine the absolute height of a note;
 the height of a note is relative to the previous one.
 @c don't use commas or quotes in this sentence
 quotes or commas do not determine the absolute height of a note;
 the height of a note is relative to the previous one.
 @c don't use commas or quotes in this sentence
@@ -612,9 +622,46 @@ For example: @code{c f,} goes down; @code{f, f} are both the same;
 @separate
 
 
 @separate
 
 
+Here's an example of the difference between relative mode and
+``normal'' (non-relative) mode:
+
+@quotation
+@example
+\relative a @{
+\clef bass
+  a d a e d c' d'
+@}
+@end example
+
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\relative a {
+\clef bass
+  a d a e d c' d'
+}
+@end lilypond
+@end quotation
+@separate
+
+@quotation
+@example
+\clef bass
+  a d a e d c' d'
+@end example
+
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\clef bass
+  a d a e d c' d'
+@end lilypond
+@end quotation
+@separate
+
 @strong{SUMMARY}
 
 @strong{SUMMARY}
 
-The following table  summarizes the syntax learned in this section.
+The following table summarizes the syntax learned so far in this section.
 
 @multitable @columnfractions .3 .3 .4  
 
 
 @multitable @columnfractions .3 .3 .4  
 
@@ -807,7 +854,7 @@ happens at the same time, like in chords, or (like in the two-staff
 example above) in a bunch of stacked staves.
 @end ignore
 
 example above) in a bunch of stacked staves.
 @end ignore
 
-Of course, you can combine beams and ties with chords.  Notice that
+You can combine beams and ties with chords.  Notice that
 beam and tie markings must be placed outside the chord markers:
 @quotation
 @lilypond[relative 0, fragment,verbatim]
 beam and tie markings must be placed outside the chord markers:
 @quotation
 @lilypond[relative 0, fragment,verbatim]
@@ -817,7 +864,8 @@ r4 [<c8 e g> <c8 f a>] ~ <c8 f a>
 
 When you want to combine chords with slurs and dynamics, technical
 detail crops up: you have type these commands next to the notes, which
 
 When you want to combine chords with slurs and dynamics, technical
 detail crops up: you have type these commands next to the notes, which
-means that they have to be inside the @code{< >}:
+means that they have to be inside the @code{< >}.  Don't get confused
+by the chord @code{< >} and the dynamic @code{\< \>}!
 
 
 @quotation
 
 
 @quotation
@@ -831,12 +879,20 @@ r4 <c8 e g \> ( > <c e g> <c e g>  < ) \! c8 f a>
 @end quotation
 @separate
 
 @end quotation
 @separate
 
-There is one golden rule that you should keep in mind when writing
-LilyPond input:
-@quotation
-@strong{DO NOT START A PIECE WITH A CHORD}
-@end quotation
-Of course, it is a allowed, but the result might not be what you expect:
+@c   this example is a bit too strongly worded -- there's nothing wrong
+@c   with starting a piece with a chord; you just have to be careful when
+@c   you do so.  I've rephrased this example below.
+@c There is one golden rule that you should keep in mind when writing
+@c LilyPond input:
+@c @quotation
+@c @strong{DO NOT START A PIECE WITH A CHORD}
+@c @end quotation
+@c Of course, it is a allowed, but the result might not be what you expect:
+
+@c   rephrased "don't start with a chord"
+There is one caution when using chords: if you use a chord at the very
+beginning of the piece, LilyPond might not understand what you want:
+
 @quotation
 @lilypond[verbatim,singleline]
 \score { \notes <c'2 e'2> }
 @quotation
 @lilypond[verbatim,singleline]
 \score { \notes <c'2 e'2> }
@@ -844,10 +900,10 @@ Of course, it is a allowed, but the result might not be what you expect:
 @end quotation
 @separate
 
 @end quotation
 @separate
 
-If you have a piece that starts with a chord, then you must explicitly
+If you have a piece that begins with a chord, you must explicitly
 state that the notes of the chord are to be put on the same staff, in
 state that the notes of the chord are to be put on the same staff, in
-the same voice.  This is done by specifying @code{\context Staff} for
-the notes:
+the same voice.  This is done by specifying @code{\context Staff} or
+@code{\context Voice} for the notes:
 
 @quotation
 @lilypond[verbatim,singleline]
 
 @quotation
 @lilypond[verbatim,singleline]
@@ -857,7 +913,6 @@ the notes:
 @separate
 
 
 @separate
 
 
-
 @strong{SUMMARY}
 
 @multitable @columnfractions .3 .3 .4  
 @strong{SUMMARY}
 
 @multitable @columnfractions .3 .3 .4  
@@ -964,14 +1019,14 @@ a\> a \!a
 
 @end multitable
 
 
 @end multitable
 
-You know the basic ingredients of a music file, so this is the right
-moment to try your at hand at doing it yourself: try to type some
+Now you know the basic ingredients of a music file, so this is the right
+moment to try your at hand at doing it yourself: try typing some
 simple examples, and experiment a little.
 
 simple examples, and experiment a little.
 
-When you're comfortable with the basics, then you might want to read
-the rest of this chapter. It also a manual in tutorial-style, but it
+When you're comfortable with the basics, you might want to read
+the rest of this chapter.  It continues in tutorial-style, but it
 is much more in-depth, dealing with more advanced topics such as
 is much more in-depth, dealing with more advanced topics such as
-lyrics, chords, orchestral scores and parts, fine tuning output,
+lyrics, chords, orchestral scores and parts, fine tuning of output,
 polyphonic music, and integrating text and music.
 
 
 polyphonic music, and integrating text and music.
 
 
index 20dc9ab874c06605d4e02e4875871e02e15f98e3..cf9ad32f965a51a47d08d9c89e47ff007ed8e2ac 100644 (file)
@@ -184,10 +184,11 @@ File_path::find (String nm) const
        continue;
 #endif
 #if !STAT_MACROS_BROKEN
        continue;
 #endif
 #if !STAT_MACROS_BROKEN
+      
       struct stat sbuf;
       if (stat (path.to_str0 (), &sbuf) != 0)
        continue;
       struct stat sbuf;
       if (stat (path.to_str0 (), &sbuf) != 0)
        continue;
-      
+
       if (S_ISDIR (sbuf.st_mode))
        continue;
 #endif
       if (S_ISDIR (sbuf.st_mode))
        continue;
 #endif
index ada8954edbd57850017c325876f3caf6c8aec07b..fad161affbdd51bc9ab33cf6882adcd04bd4cb56 100644 (file)
@@ -39,7 +39,7 @@ All_font_metrics::find_afm (String name)
 {
   SCM sname = ly_symbol2scm (name.to_str0 ());
 
 {
   SCM sname = ly_symbol2scm (name.to_str0 ());
 
-  SCM name_string = ly_str02scm (name.to_str0 ());
+  SCM name_string = scm_makfrom0str (name.to_str0 ());
 
   SCM val;
   
 
   SCM val;
   
@@ -114,7 +114,7 @@ Tex_font_metric *
 All_font_metrics::find_tfm (String name)
 {
   SCM sname = ly_symbol2scm (name.to_str0 ());
 All_font_metrics::find_tfm (String name)
 {
   SCM sname = ly_symbol2scm (name.to_str0 ());
-  SCM name_string = ly_str02scm (name.to_str0 ());
+  SCM name_string = scm_makfrom0str (name.to_str0 ());
 
   SCM val;
   if (!tfm_p_dict_->try_retrieve (sname, &val))
 
   SCM val;
   if (!tfm_p_dict_->try_retrieve (sname, &val))
index 697187003c18dae059bf35f4107e0ee7af743162..47bceef5bb1f57cfccc6da4a87b00a685bce8e40 100644 (file)
@@ -63,7 +63,7 @@ Bar_number_engraver::process_music ()
          
          // guh.
          text_->set_grob_property ("text",
          
          // guh.
          text_->set_grob_property ("text",
-                                     ly_str02scm (to_string (gh_scm2int (bn)).to_str0 ()));
+                                     scm_makfrom0str (to_string (gh_scm2int (bn)).to_str0 ()));
        }
     }
 
        }
     }
 
index 2a9f951a819ca2775c7100fa27a50c014baa65dc..85fc234a92bc13a23b3b218abbbef9b45490e152 100644 (file)
@@ -99,7 +99,7 @@ Beam_engraver::try_music (Music *m)
   if (Span_req * c = dynamic_cast<Span_req*> (m))
     {
       if (scm_equal_p (c->get_mus_property ("span-type"),
   if (Span_req * c = dynamic_cast<Span_req*> (m))
     {
       if (scm_equal_p (c->get_mus_property ("span-type"),
-                      ly_str02scm ("abort")) == SCM_BOOL_T)
+                      scm_makfrom0str ("abort")) == SCM_BOOL_T)
        {
          reqs_drul_[START] = 0;
          reqs_drul_[STOP] = 0;
        {
          reqs_drul_[START] = 0;
          reqs_drul_[STOP] = 0;
@@ -108,7 +108,7 @@ Beam_engraver::try_music (Music *m)
          beam_ = 0;
        }
       else if (scm_equal_p (c->get_mus_property ("span-type"),
          beam_ = 0;
        }
       else if (scm_equal_p (c->get_mus_property ("span-type"),
-                           ly_str02scm ("beam")) == SCM_BOOL_T)
+                           scm_makfrom0str ("beam")) == SCM_BOOL_T)
        {
          Direction d =c->get_span_dir ();
 
        {
          Direction d =c->get_span_dir ();
 
index 43c7d7a9cab4e9a02fb123b92b7e03fcd2755ded..9d86ab4157465744370258bf1b9c7c9b16227cf2 100644 (file)
@@ -472,7 +472,7 @@ Beam::brew_molecule (SCM grob)
       SCM properties = Font_interface::font_alist_chain (me);
 
       
       SCM properties = Font_interface::font_alist_chain (me);
 
       
-      Molecule tm = Text_item::text2molecule (me, ly_str02scm (str.to_str0 ()), properties);
+      Molecule tm = Text_item::text2molecule (me, scm_makfrom0str (str.to_str0 ()), properties);
       the_beam.add_at_edge (Y_AXIS, UP, tm, 5.0);
     }
 #endif
       the_beam.add_at_edge (Y_AXIS, UP, tm, 5.0);
     }
 #endif
index 96ffec7e9677986c799f222d2eb3afd60bb72e9b..9a2eec2e3a68d043f88f7a34a835b7fb07091e93 100644 (file)
@@ -32,7 +32,7 @@ Clef::before_line_breaking (SCM smob)
          && !to_boolean (s->get_grob_property ("full-size-change")))
        {
          str += "_change";
          && !to_boolean (s->get_grob_property ("full-size-change")))
        {
          str += "_change";
-         s->set_grob_property ("glyph-name", ly_str02scm (str.to_str0 ()));      
+         s->set_grob_property ("glyph-name", scm_makfrom0str (str.to_str0 ()));          
        }
     }
   else
        }
     }
   else
index bda828854a728988e17e9c4d7a1056ba112cbaed..a036c55f5247a1728e8a15dc6a0b2a9331dea16d 100644 (file)
@@ -102,7 +102,7 @@ Duration::print_smob (SCM s, SCM port, scm_print_state *)
   Duration  *r = (Duration *) ly_cdr (s);
      
   scm_puts ("#<Duration ", port);
   Duration  *r = (Duration *) ly_cdr (s);
      
   scm_puts ("#<Duration ", port);
-  scm_display (ly_str02scm (r->string ().to_str0 ()), port);
+  scm_display (scm_makfrom0str (r->string ().to_str0 ()), port);
   scm_puts (" >", port);
   
   return 1;
   scm_puts (" >", port);
   
   return 1;
index 194a86b2b0ac562aa5b9edfde4142c4f741a74d4..d0d79edab98578e759de67ff184d3a809629a5cc 100644 (file)
@@ -254,7 +254,7 @@ Dynamic_engraver::process_music ()
              if (gh_string_p (s) || gh_pair_p (s))
                {
                  cresc_->set_grob_property ("edge-text",
              if (gh_string_p (s) || gh_pair_p (s))
                {
                  cresc_->set_grob_property ("edge-text",
-                                              gh_cons (s, ly_str02scm ("")));
+                                              gh_cons (s, scm_makfrom0str ("")));
                  daddy_trans_->set_property ((start_type + "Text").to_str0 (),
                                                SCM_EOL);
                }
                  daddy_trans_->set_property ((start_type + "Text").to_str0 (),
                                                SCM_EOL);
                }
index 28e3dbf9fe6ba1a45469777594f787a06dd6b830..e76f07cd62fb66641ad919d00db4699f456a8e16 100644 (file)
@@ -84,7 +84,7 @@ Dynamic_performer::create_audio_elements ()
            s = get_property ("instrument");
          
          if (!gh_string_p (s))
            s = get_property ("instrument");
          
          if (!gh_string_p (s))
-           s = ly_str02scm ("piano");
+           s = scm_makfrom0str ("piano");
          
          
          SCM eq = get_property ("instrumentEqualizer");
          
          
          SCM eq = get_property ("instrumentEqualizer");
index c725f77f488e15eb9f98e0924cd2f7bb44df2a3c..4efd7644e9242793c8c3e4528c6862f55a199342 100644 (file)
@@ -61,7 +61,7 @@ Figured_bass_engraver::process_music ()
     {
       figure_ = new Item (get_property ("BassFigure"));
       announce_grob(figure_, rest_req_->self_scm()); // todo
     {
       figure_ = new Item (get_property ("BassFigure"));
       announce_grob(figure_, rest_req_->self_scm()); // todo
-      figure_->set_grob_property ("text" , ly_str02scm ("-"));
+      figure_->set_grob_property ("text" , scm_makfrom0str ("-"));
     }
   else if (figures_.size ())
     {
     }
   else if (figures_.size ())
     {
index 7c1fb26bd8aecec2660c2a178935d9fcb9c35aed..74e8ac1b35af40b133e658677fec3a2724972941 100644 (file)
@@ -239,7 +239,7 @@ Font_interface::properties_to_font_name (SCM fonts, SCM alist_chain)
   scm_write (scm_list_n (point_str0, shape, series , family, rel_str0, SCM_UNDEFINED), scm_current_error_port ());
   scm_flush (scm_current_error_port ());
  
   scm_write (scm_list_n (point_str0, shape, series , family, rel_str0, SCM_UNDEFINED), scm_current_error_port ());
   scm_flush (scm_current_error_port ());
  
-  return ly_str02scm ("cmr10");
+  return scm_makfrom0str ("cmr10");
   
 }
 
   
 }
 
index 571777bde42cb734d803d750d9856dbfda1ede0b..62740cdd1a42ffa2358f58ec5b23e517ad1695cd 100644 (file)
@@ -11,7 +11,7 @@ void ly_add_function_documentation (char const * fname,
     doc_hash_table = scm_make_vector (gh_int2scm (59), SCM_EOL);
 
 
     doc_hash_table = scm_make_vector (gh_int2scm (59), SCM_EOL);
 
 
-  SCM entry = gh_cons (ly_str02scm (varlist), ly_str02scm (doc));
+  SCM entry = gh_cons (scm_makfrom0str (varlist), scm_makfrom0str (doc));
   scm_hashq_set_x (doc_hash_table, ly_symbol2scm (fname), entry);
 }
 
   scm_hashq_set_x (doc_hash_table, ly_symbol2scm (fname), entry);
 }
 
index 09786eb36fa4da1a9de8ae97b38e21da899bd2f4..8d0d394c02ce7bf997a050d4c4ee870bd9f9e3b1 100644 (file)
@@ -11,7 +11,7 @@ void add_interface (const char * symbol,
                    const char * vars)
 {
   SCM s = ly_symbol2scm (symbol);
                    const char * vars)
 {
   SCM s = ly_symbol2scm (symbol);
-  SCM d = ly_str02scm (descr);
+  SCM d = scm_makfrom0str (descr);
   SCM l = parse_symbol_list (vars);
 
 
   SCM l = parse_symbol_list (vars);
 
 
index bd8cb9ad4cdfcc50087b641aa6d2762d7824212c..0abbedf613b0dd555bd3e3ddafe3da142bae363b 100644 (file)
@@ -113,13 +113,6 @@ SCM ly_truncate_list (int k, SCM l );
 #endif
 
 
 #endif
 
 
-/*
-  We don't use gh_symbol2scm directly, since it has const-correctness
-  problems in GUILE 1.3.4
-  
- */
-SCM my_gh_symbol2scm (const char* x);
-
 #ifdef CACHE_SYMBOLS
 
 
 #ifdef CACHE_SYMBOLS
 
 
@@ -141,7 +134,7 @@ SCM my_gh_symbol2scm (const char* x);
   value = gh_symbol2scm ((char*) (x)); \
   value; })
 #else
   value = gh_symbol2scm ((char*) (x)); \
   value; })
 #else
-inline SCM ly_symbol2scm(char const* x) { return my_gh_symbol2scm((x)); }
+inline SCM ly_symbol2scm(char const* x) { return gh_symbol2scm((x)); }
 #endif 
 
 
 #endif 
 
 
index ebeba728486fa8c8ddaef8798457187602be44af..c1451847d1234a28d8e8864d37c25ae3ef47ea95 100644 (file)
@@ -227,7 +227,7 @@ HYPHEN              --
 }
 <chords,notes,figures>{RESTNAME}       {
        const char *s = YYText ();
 }
 <chords,notes,figures>{RESTNAME}       {
        const char *s = YYText ();
-       yylval.scm = ly_str02scm (s);
+       yylval.scm = scm_makfrom0str (s);
        return RESTNAME;
 }
 <chords,notes,figures>R                {
        return RESTNAME;
 }
 <chords,notes,figures>R                {
@@ -325,7 +325,7 @@ HYPHEN              --
 
                /* yylval is union. Must remember STRING before setting SCM*/
                String *sp = yylval.string;
 
                /* yylval is union. Must remember STRING before setting SCM*/
                String *sp = yylval.string;
-               yylval.scm = ly_str02scm (sp->to_str0 ());
+               yylval.scm = scm_makfrom0str (sp->to_str0 ());
                delete sp;
                return STRING;
        }
                delete sp;
                return STRING;
        }
@@ -362,7 +362,7 @@ HYPHEN              --
                if (c == '{' ||  c == '}') // brace open is for not confusing dumb tools.
                        here_input ().warning (
                                _ ("Brace found at end of lyric. Did you forget a space?"));
                if (c == '{' ||  c == '}') // brace open is for not confusing dumb tools.
                        here_input ().warning (
                                _ ("Brace found at end of lyric. Did you forget a space?"));
-               yylval.scm = ly_str02scm (s.to_str0 ());
+               yylval.scm = scm_makfrom0str (s.to_str0 ());
 
 
                return STRING;
 
 
                return STRING;
@@ -566,7 +566,7 @@ My_lily_lexer::scan_escaped_word (String str)
        String msg (_f ("unknown escaped string: `\\%s'", str));        
        LexerError (msg.to_str0 ());
 
        String msg (_f ("unknown escaped string: `\\%s'", str));        
        LexerError (msg.to_str0 ());
 
-       yylval.scm = ly_str02scm (str.to_str0 ());
+       yylval.scm = scm_makfrom0str (str.to_str0 ());
 
        return STRING;
 }
 
        return STRING;
 }
@@ -587,7 +587,7 @@ My_lily_lexer::scan_bare_word (String str)
                }
        }
 
                }
        }
 
-       yylval.scm = ly_str02scm (str.to_str0 ());
+       yylval.scm = scm_makfrom0str (str.to_str0 ());
        return STRING;
 }
 
        return STRING;
 }
 
index 2afaad21921f3944028e4f0b6275e1dd7ffce7fb..899c3585cd977fb877bf0761817b64e9ee42f9e3 100644 (file)
@@ -47,7 +47,7 @@ Ligature_engraver::try_music (Music *m)
   if (Span_req *req_ = dynamic_cast<Span_req*> (m))
     {
       if (scm_equal_p (req_->get_mus_property ("span-type"),
   if (Span_req *req_ = dynamic_cast<Span_req*> (m))
     {
       if (scm_equal_p (req_->get_mus_property ("span-type"),
-                      ly_str02scm ("abort")) == SCM_BOOL_T)
+                      scm_makfrom0str ("abort")) == SCM_BOOL_T)
        {
          reqs_drul_[START] = 0;
          reqs_drul_[STOP] = 0;
        {
          reqs_drul_[START] = 0;
          reqs_drul_[STOP] = 0;
@@ -56,7 +56,7 @@ Ligature_engraver::try_music (Music *m)
          ligature_ = 0;
        }
       else if (scm_equal_p (req_->get_mus_property ("span-type"),
          ligature_ = 0;
        }
       else if (scm_equal_p (req_->get_mus_property ("span-type"),
-                           ly_str02scm ("ligature")) == SCM_BOOL_T)
+                           scm_makfrom0str ("ligature")) == SCM_BOOL_T)
        {
          Direction d = req_->get_span_dir ();
          reqs_drul_[d] = req_;
        {
          Direction d = req_->get_span_dir ();
          reqs_drul_[d] = req_;
index fd87823f56b8b696b0e14444b4c866ced767b1b8..6688d5bef86652c5ccd418e09450511f9abc0679 100644 (file)
@@ -56,13 +56,6 @@ ly_last (SCM list)
   return ly_car (scm_last_pair (list));
 }
 
   return ly_car (scm_last_pair (list));
 }
 
-SCM
-ly_str02scm (char const*c)
-{
-  // this all really sucks, guile should take char const* arguments!
-  return gh_str02scm ((char*)c);
-}
-
 
 SCM
 ly_write2scm (SCM s)
 
 SCM
 ly_write2scm (SCM s)
@@ -125,23 +118,10 @@ file is looked up using the lilypond search path.
 
 ")
 {
 
 ")
 {
-  return ly_str02scm (gulp_file_to_string (ly_scm2string (name)).to_str0 ());
+  return scm_makfrom0str (gulp_file_to_string (ly_scm2string (name)).to_str0 ());
 }
 
 
 }
 
 
-/**
-   Read a file, and shove it down GUILE.  GUILE also has file read
-   functions, but you can't fiddle with the path of those.
-
-
-   TODO: JUNKME.
-*/
-void
-read_lily_scm_file (String fn)
-{
-  gh_eval_str ((char *) gulp_file_to_string (fn).to_str0 ());
-}
-
 extern "C" {
   // maybe gdb 5.0 becomes quicker if it doesn't do fancy C++ typing?
 void
 extern "C" {
   // maybe gdb 5.0 becomes quicker if it doesn't do fancy C++ typing?
 void
@@ -233,7 +213,9 @@ ly_init_guile ()
 
   if (verbose_global_b)
     progress_indication ("\n");
 
   if (verbose_global_b)
     progress_indication ("\n");
-  read_lily_scm_file ("lily.scm");
+
+
+  scm_primitive_load_path (scm_makfrom0str ("lily.scm"));
 
   scm_set_current_module (last_mod);
 }
 
   scm_set_current_module (last_mod);
 }
@@ -359,7 +341,7 @@ ly_type (SCM exp)
       cp = "list";
     }
 
       cp = "list";
     }
 
-  return ly_str02scm (cp);
+  return scm_makfrom0str (cp);
 }
 
 /*
 }
 
 /*
@@ -394,7 +376,7 @@ leaves a space at the end.
       sprintf (str, "%d ", gh_scm2int (s));
     }
 
       sprintf (str, "%d ", gh_scm2int (s));
     }
 
-  return ly_str02scm (str);
+  return scm_makfrom0str (str);
 }
 
 /*
 }
 
 /*
@@ -434,7 +416,7 @@ LY_DEFINE(ly_version,  "ly-version", 0, 0, 0, (),
 LY_DEFINE(ly_unit,  "ly-unit", 0, 0, 0, (),
          "Return the unit used for lengths as a string.")
 {
 LY_DEFINE(ly_unit,  "ly-unit", 0, 0, 0, (),
          "Return the unit used for lengths as a string.")
 {
-  return ly_str02scm (INTERNAL_UNIT);
+  return scm_makfrom0str (INTERNAL_UNIT);
 }
 
 LY_DEFINE(ly_verbose,  "ly-verbose", 0, 0, 0, (),
 }
 
 LY_DEFINE(ly_verbose,  "ly-verbose", 0, 0, 0, (),
@@ -588,10 +570,6 @@ ly_truncate_list (int k, SCM l )
   return l;
 }
 
   return l;
 }
 
-SCM my_gh_symbol2scm (const char* x)
-{
-  return gh_symbol2scm ((char*)x);
-}
 
 String
 print_scm_val (SCM val)
 
 String
 print_scm_val (SCM val)
index 5db329f4793115ff21d08ee320e16a6461961887..4f7a3c0d11750c87fe5c0ff7401f51cae0a4ee7e 100644 (file)
@@ -103,7 +103,7 @@ Lyric_phrasing_engraver::finalize ()
 Syllable_group * 
 Lyric_phrasing_engraver::lookup_context_id (const String &context_id)
 {
 Syllable_group * 
 Lyric_phrasing_engraver::lookup_context_id (const String &context_id)
 {
-  SCM key = ly_str02scm (context_id.to_str0 ());
+  SCM key = scm_makfrom0str (context_id.to_str0 ());
   if (! gh_null_p (voice_alist_))
     {
       SCM s = scm_assoc (key, voice_alist_);
   if (! gh_null_p (voice_alist_))
     {
       SCM s = scm_assoc (key, voice_alist_);
@@ -155,7 +155,7 @@ Lyric_phrasing_engraver::record_lyric (const String &context_id, Grob * lyric)
 void 
 Lyric_phrasing_engraver::record_extender (const String &context_id, Grob * extender)
 {
 void 
 Lyric_phrasing_engraver::record_extender (const String &context_id, Grob * extender)
 {
-  SCM key = ly_str02scm (context_id.to_str0 ());
+  SCM key = scm_makfrom0str (context_id.to_str0 ());
   if (! gh_null_p (voice_alist_))
     {
       SCM s = scm_assoc (key, voice_alist_);
   if (! gh_null_p (voice_alist_))
     {
       SCM s = scm_assoc (key, voice_alist_);
index 11de9e3fb1b9c44c00f58095526cb8e4b962c421..14fe9a452ccb46d8de9de112b94abbec49f33934 100644 (file)
@@ -404,7 +404,7 @@ sane_putenv (char const* key, char const* value, bool overwrite)
     {
       String combine = String (key) + "=" + String (value);
       char * s = strdup(combine.to_str0 ());
     {
       String combine = String (key) + "=" + String (value);
       char * s = strdup(combine.to_str0 ());
-      //      return putenv (s);
+      return putenv (s);
     }
   return -1;
 }
     }
   return -1;
 }
@@ -414,17 +414,15 @@ main (int argc, char **argv)
 {
   setup_paths ();
 
 {
   setup_paths ();
 
-  /* Prepare GUILE for heavy memory usage.  If you have plenty memory,
-     this may speed up GUILE a bit.  If you're short on memory, these
-     settings
+  /*
     
     
-        export GUILE_INIT_SEGMENT_SIZE_1=36000
-         export GUILE_MAX_SEGMENT_SIZE=576000
+    These settings hopefully prepare lily for a lot of memory usage.
 
 
-     may considerably decrease memory footprint (~*0.85), with a small
-     execution time penalty (~*1.10).  However, if this 15% gain in memory
-     usage prevents swapping, the execution time falls drastically. */
-  
+    In practice the effect on GC times is barely measurable -- larger
+    segments cost slighly less time for the conservative marking. (but
+    not impressively much)
+    
+  */
   sane_putenv ("GUILE_INIT_SEGMENT_SIZE_1", "4194304", false);
   sane_putenv ("GUILE_MAX_SEGMENT_SIZE", "8388608", false);
 
   sane_putenv ("GUILE_INIT_SEGMENT_SIZE_1", "4194304", false);
   sane_putenv ("GUILE_MAX_SEGMENT_SIZE", "8388608", false);
 
index 4bbda428240109ac6f86c5e0c8387a81cab4bcf8..2aa1de4ae873ee6dc45d33a14fac11f5e0ff11b2 100644 (file)
@@ -159,7 +159,7 @@ Mark_engraver::process_music ()
                  c++;
                  next = to_string (c);
                }
                  c++;
                  next = to_string (c);
                }
-             m = ly_str02scm (next.to_str0 ());
+             m = scm_makfrom0str (next.to_str0 ());
            }
          else
            {
            }
          else
            {
@@ -169,7 +169,7 @@ Mark_engraver::process_music ()
          daddy_trans_->set_property ("rehearsalMark", m);
          
          text_->set_grob_property ("text",
          daddy_trans_->set_property ("rehearsalMark", m);
          
          text_->set_grob_property ("text",
-                                     ly_str02scm (t.to_str0 ()));
+                                     scm_makfrom0str (t.to_str0 ()));
 
          String style = "mark-number";
          for (int i=0; i < t.length (); i++)
 
          String style = "mark-number";
          for (int i=0; i < t.length (); i++)
index 38318d19b952e5109b72739b5413fe7bf9f60f8a..23c0c0007a9d57a26bc19e190dd550cce559535c 100644 (file)
@@ -59,7 +59,7 @@ Multi_measure_rest_engraver::try_music (Music* req)
     {
       
       if (scm_equal_p (sp->get_mus_property ("span-type"),
     {
       
       if (scm_equal_p (sp->get_mus_property ("span-type"),
-                      ly_str02scm ("rest")) == SCM_BOOL_T)
+                      scm_makfrom0str ("rest")) == SCM_BOOL_T)
        {
          if (sp->get_span_dir () == STOP)
            {
        {
          if (sp->get_span_dir () == STOP)
            {
index dee5de1135d2364ec3fa253b09f3aecd45735491..69d9ec64feee7bded5785d550a45d4450717d427 100644 (file)
@@ -116,7 +116,7 @@ Multi_measure_rest::brew_molecule (SCM smob)
   if (measures > gh_scm2int (s))
     {
       Molecule s = Text_item::text2molecule (me,
   if (measures > gh_scm2int (s))
     {
       Molecule s = Text_item::text2molecule (me,
-                                            ly_str02scm (to_string (measures).to_str0 ()),
+                                            scm_makfrom0str (to_string (measures).to_str0 ()),
                                             alist_chain);
 
       s.align_to (X_AXIS, CENTER);
                                             alist_chain);
 
       s.align_to (X_AXIS, CENTER);
index e10507230498b89c27001ab17717b2033e4bcf1a..313f2c56f3d8576f62654c94f39653ca9c304088 100644 (file)
@@ -274,7 +274,7 @@ LY_DEFINE(ly_music_name, "ly-music-name", 1, 0, 0,
   SCM_ASSERT_TYPE(m, mus, SCM_ARG1, __FUNCTION__ ,"music");
   
   const char * nm = classname (m);
   SCM_ASSERT_TYPE(m, mus, SCM_ARG1, __FUNCTION__ ,"music");
   
   const char * nm = classname (m);
-  return ly_str02scm (nm);
+  return scm_makfrom0str (nm);
 }
 
 LY_DEFINE(ly_music_list_p,"music-list?", 1, 0, 0, 
 }
 
 LY_DEFINE(ly_music_list_p,"music-list?", 1, 0, 0, 
index cd9bc3729c4fd2a5614d67a71c02ff1a9e8f57f5..2cc60c17b691860bd1dd6227b57c14afdbba191d 100644 (file)
@@ -209,7 +209,7 @@ Note_head::brew_ez_molecule (SCM smob)
   s[0] = (pit->notename_ + 2)%7 + 'a';
   s[0] = toupper (s[0]);
   
   s[0] = (pit->notename_ + 2)%7 + 'a';
   s[0] = toupper (s[0]);
   
-  SCM charstr = ly_str02scm (s);
+  SCM charstr = scm_makfrom0str (s);
   
   SCM at = scm_list_n (ly_symbol2scm ("ez-ball"),
                       charstr,
   
   SCM at = scm_list_n (ly_symbol2scm ("ez-ball"),
                       charstr,
index 4bad6447d884732662f53a49b4f7823e27109e37..97a8b973916672a099570ddab40d1873ea86821d 100644 (file)
@@ -59,12 +59,12 @@ Note_heads_engraver::try_music (Music *m)
   else if (Span_req *req_ = dynamic_cast<Span_req*> (m))
     {
       if (scm_equal_p (req_->get_mus_property ("span-type"),
   else if (Span_req *req_ = dynamic_cast<Span_req*> (m))
     {
       if (scm_equal_p (req_->get_mus_property ("span-type"),
-                      ly_str02scm ("abort")) == SCM_BOOL_T)
+                      scm_makfrom0str ("abort")) == SCM_BOOL_T)
        {
          in_ligature = 0;
        }
       else if (scm_equal_p (req_->get_mus_property ("span-type"),
        {
          in_ligature = 0;
        }
       else if (scm_equal_p (req_->get_mus_property ("span-type"),
-                           ly_str02scm ("ligature")) == SCM_BOOL_T)
+                           scm_makfrom0str ("ligature")) == SCM_BOOL_T)
        {
          in_ligature = (req_->get_span_dir () == START);
        }
        {
          in_ligature = (req_->get_span_dir () == START);
        }
index 37133e5e3b293a20eed82491bb6f1ebafe85ef81..1e7806e676b9bd05c48d773df02fd97192bf5b00 100644 (file)
@@ -49,7 +49,7 @@ Note_name_engraver::process_acknowledged_grobs ()
   if (s.length ())
     {
       Item * t = new Item (get_property ("NoteName"));
   if (s.length ())
     {
       Item * t = new Item (get_property ("NoteName"));
-      t->set_grob_property ("text", ly_str02scm (s.to_str0 ()));
+      t->set_grob_property ("text", scm_makfrom0str (s.to_str0 ()));
       announce_grob(t, reqs_[0]->self_scm());
       texts_.push (t);
     }
       announce_grob(t, reqs_[0]->self_scm());
       texts_.push (t);
     }
index 5373d06f341796d28e7d4d29265da292361d207c..bfb71a0272d6c44e0ef6dea30f235e14db897567 100644 (file)
@@ -121,7 +121,7 @@ Paper_column::brew_molecule (SCM p)
   String r = to_string (Paper_column::get_rank (me));
   SCM properties = Font_interface::font_alist_chain (me);
   
   String r = to_string (Paper_column::get_rank (me));
   SCM properties = Font_interface::font_alist_chain (me);
   
-  Molecule t = Text_item::text2molecule (me, ly_str02scm (r.to_str0 ()),
+  Molecule t = Text_item::text2molecule (me, scm_makfrom0str (r.to_str0 ()),
                                         properties);
   t.align_to (X_AXIS, CENTER);
   t.align_to (Y_AXIS, DOWN);
                                         properties);
   t.align_to (X_AXIS, CENTER);
   t.align_to (Y_AXIS, DOWN);
index 9cbce394f695ed3f71770972ededd727d778678a..74cd96acc5ef763f00b2d6cf154006c188c9dedb 100644 (file)
@@ -35,11 +35,11 @@ Paper_outputter::Paper_outputter (String name)
       gh_define ("security-paranoia", SCM_BOOL_T);      
     }
   
       gh_define ("security-paranoia", SCM_BOOL_T);      
     }
   
-  file_ = scm_open_file (ly_str02scm (name.to_str0 ()),
-                           ly_str02scm ("w"));
+  file_ = scm_open_file (scm_makfrom0str (name.to_str0 ()),
+                           scm_makfrom0str ("w"));
   
   SCM exp = scm_list_n (ly_symbol2scm ("find-dumper"),
   
   SCM exp = scm_list_n (ly_symbol2scm ("find-dumper"),
-                       ly_str02scm (output_format_global.to_str0 ()),
+                       scm_makfrom0str (output_format_global.to_str0 ()),
                        SCM_UNDEFINED);
 
   output_func_  = scm_primitive_eval (exp);
                        SCM_UNDEFINED);
 
   output_func_  = scm_primitive_eval (exp);
@@ -65,8 +65,8 @@ Paper_outputter::output_header ()
   generate = generate + to_string (' ' * (120 - generate.length ())>? 0)  ;
   String creator = "lelie";
   
   generate = generate + to_string (' ' * (120 - generate.length ())>? 0)  ;
   String creator = "lelie";
   
-  SCM args_scm = scm_list_n (ly_str02scm (creator.to_str0 ()),
-                            ly_str02scm (generate.to_str0 ()), SCM_UNDEFINED);
+  SCM args_scm = scm_list_n (scm_makfrom0str (creator.to_str0 ()),
+                            scm_makfrom0str (generate.to_str0 ()), SCM_UNDEFINED);
 
 
   SCM scm = gh_cons (ly_symbol2scm ("header"), args_scm);
 
 
   SCM scm = gh_cons (ly_symbol2scm ("header"), args_scm);
@@ -80,7 +80,7 @@ void
 Paper_outputter::output_comment (String str)
 {
   output_scheme (scm_list_n (ly_symbol2scm ("comment"),
 Paper_outputter::output_comment (String str)
 {
   output_scheme (scm_list_n (ly_symbol2scm ("comment"),
-                         ly_str02scm ((char*)str.to_str0 ()),
+                         scm_makfrom0str ((char*)str.to_str0 ()),
                          SCM_UNDEFINED)
                 );
 }
                          SCM_UNDEFINED)
                 );
 }
@@ -133,8 +133,8 @@ Paper_outputter::output_Real_def (String k, Real v)
 {
   
   SCM scm = scm_list_n (ly_symbol2scm ("lily-def"),
 {
   
   SCM scm = scm_list_n (ly_symbol2scm ("lily-def"),
-                       ly_str02scm (k.get_str0 ()),
-                       ly_str02scm (to_string (v).get_str0 ()),
+                       scm_makfrom0str (k.get_str0 ()),
+                       scm_makfrom0str (to_string (v).get_str0 ()),
                        SCM_UNDEFINED);
   output_scheme (scm);
 }
                        SCM_UNDEFINED);
   output_scheme (scm);
 }
@@ -144,8 +144,8 @@ Paper_outputter::output_String_def (String k, String v)
 {
   
   SCM scm = scm_list_n (ly_symbol2scm ("lily-def"),
 {
   
   SCM scm = scm_list_n (ly_symbol2scm ("lily-def"),
-                    ly_str02scm (k.get_str0 ()),
-                    ly_str02scm (v.get_str0 ()),
+                    scm_makfrom0str (k.get_str0 ()),
+                    scm_makfrom0str (v.get_str0 ()),
                     SCM_UNDEFINED);
   output_scheme (scm);
 }
                     SCM_UNDEFINED);
   output_scheme (scm);
 }
@@ -154,8 +154,8 @@ void
 Paper_outputter::output_int_def (String k, int v)
 {
   SCM scm = scm_list_n (ly_symbol2scm ("lily-def"),
 Paper_outputter::output_int_def (String k, int v)
 {
   SCM scm = scm_list_n (ly_symbol2scm ("lily-def"),
-                    ly_str02scm (k.get_str0 ()),
-                    ly_str02scm (to_string (v).get_str0 ()),
+                    scm_makfrom0str (k.get_str0 ()),
+                    scm_makfrom0str (to_string (v).get_str0 ()),
                     SCM_UNDEFINED);
   output_scheme (scm);
 }
                     SCM_UNDEFINED);
   output_scheme (scm);
 }
@@ -164,7 +164,7 @@ void
 Paper_outputter::write_header_field_to_file (String filename, SCM key, SCM value)
 {
   output_scheme (scm_list_n (ly_symbol2scm ("header-to-file"),
 Paper_outputter::write_header_field_to_file (String filename, SCM key, SCM value)
 {
   output_scheme (scm_list_n (ly_symbol2scm ("header-to-file"),
-                            ly_str02scm (filename.to_str0 ()),
+                            scm_makfrom0str (filename.to_str0 ()),
                             ly_quote_scm (key), value,
                             SCM_UNDEFINED));
 }
                             ly_quote_scm (key), value,
                             SCM_UNDEFINED));
 }
index 5564083b80e78417b7f8cdb520b53f4d35930aa0..5e4e1b6ebffab77880e861a182cd1c1e69cc4b7c 100644 (file)
@@ -360,9 +360,9 @@ toplevel_expression:
        }
        | output_def {
                if (dynamic_cast<Paper_def*> ($1))
        }
        | output_def {
                if (dynamic_cast<Paper_def*> ($1))
-                       THIS->lexer_->set_identifier (gh_str02scm ("$defaultpaper"), $1->self_scm ());
+                       THIS->lexer_->set_identifier (scm_makfrom0str ("$defaultpaper"), $1->self_scm ());
                else if (dynamic_cast<Midi_def*> ($1))
                else if (dynamic_cast<Midi_def*> ($1))
-                       THIS->lexer_->set_identifier (gh_str02scm ("$defaultmidi"), $1->self_scm ());
+                       THIS->lexer_->set_identifier (scm_makfrom0str ("$defaultmidi"), $1->self_scm ());
        }
        | embedded_scm {
                // junk value
        }
        | embedded_scm {
                // junk value
@@ -745,7 +745,7 @@ Repeated_music:
                SCM func = scm_primitive_eval (ly_symbol2scm ("repeat-name-to-ctor"));
                SCM result = gh_call1 (func, $2);
 
                SCM func = scm_primitive_eval (ly_symbol2scm ("repeat-name-to-ctor"));
                SCM result = gh_call1 (func, $2);
 
-               if (gh_equal_p ($2, ly_str02scm ("tremolo")))
+               if (gh_equal_p ($2, scm_makfrom0str ("tremolo")))
                {
                /*
                we can not get durations and other stuff correct down the line, so we have to
                {
                /*
                we can not get durations and other stuff correct down the line, so we have to
@@ -832,7 +832,7 @@ Composite_music:
                scm_gc_unprotect_object ($3->self_scm ());
 
                csm->set_mus_property ("context-type",$2);
                scm_gc_unprotect_object ($3->self_scm ());
 
                csm->set_mus_property ("context-type",$2);
-               csm->set_mus_property ("context-id", ly_str02scm (""));
+               csm->set_mus_property ("context-id", scm_makfrom0str (""));
 
                $$ = csm;
        }
 
                $$ = csm;
        }
@@ -1156,7 +1156,7 @@ command_element:
        | E_LEFTSQUARE {
                Span_req *l = new Span_req;
                l->set_span_dir (START);
        | E_LEFTSQUARE {
                Span_req *l = new Span_req;
                l->set_span_dir (START);
-               l->set_mus_property ("span-type", ly_str02scm ("ligature"));
+               l->set_mus_property ("span-type", scm_makfrom0str ("ligature"));
                l->set_spot (THIS->here_input ());
 
                $$ = new Request_chord (SCM_EOL);
                l->set_spot (THIS->here_input ());
 
                $$ = new Request_chord (SCM_EOL);
@@ -1167,7 +1167,7 @@ command_element:
        | E_RIGHTSQUARE {
                Span_req *l = new Span_req;
                l->set_span_dir (STOP);
        | E_RIGHTSQUARE {
                Span_req *l = new Span_req;
                l->set_span_dir (STOP);
-               l->set_mus_property ("span-type", ly_str02scm ("ligature"));
+               l->set_mus_property ("span-type", scm_makfrom0str ("ligature"));
                l->set_spot (THIS->here_input ());
 
                $$ = new Request_chord (SCM_EOL);
                l->set_spot (THIS->here_input ());
 
                $$ = new Request_chord (SCM_EOL);
@@ -1196,7 +1196,7 @@ command_element:
                $$ = csm;
                $$->set_spot (THIS->here_input ());
 
                $$ = csm;
                $$->set_spot (THIS->here_input ());
 
-               csm->set_mus_property ("context-type", ly_str02scm ("Score"));
+               csm->set_mus_property ("context-type", scm_makfrom0str ("Score"));
        }
        | PARTIAL duration_length       {
                Moment m = - unsmob_duration ($2)->length_mom ();
        }
        | PARTIAL duration_length       {
                Moment m = - unsmob_duration ($2)->length_mom ();
@@ -1207,7 +1207,7 @@ command_element:
                scm_gc_unprotect_object (p->self_scm ());
 
                $$ =sp ;
                scm_gc_unprotect_object (p->self_scm ());
 
                $$ =sp ;
-               sp-> set_mus_property ("context-type", ly_str02scm ( "Score"));
+               sp-> set_mus_property ("context-type", scm_makfrom0str ( "Score"));
        }
        | CLEF STRING  {
                SCM func = scm_primitive_eval (ly_symbol2scm ("clef-name-to-properties"));
        }
        | CLEF STRING  {
                SCM func = scm_primitive_eval (ly_symbol2scm ("clef-name-to-properties"));
@@ -1228,7 +1228,7 @@ command_element:
                scm_gc_unprotect_object (seq->self_scm ());
 
                $$ =sp ;
                scm_gc_unprotect_object (seq->self_scm ());
 
                $$ =sp ;
-               sp-> set_mus_property ("context-type", ly_str02scm ("Staff"));
+               sp-> set_mus_property ("context-type", scm_makfrom0str ("Staff"));
        }
        | TIME_T fraction  {
                Music * p1 = set_property_music (ly_symbol2scm ( "timeSignatureFraction"), $2);
        }
        | TIME_T fraction  {
                Music * p1 = set_property_music (ly_symbol2scm ( "timeSignatureFraction"), $2);
@@ -1264,7 +1264,7 @@ command_element:
  TODO: should make alias TimingContext for Score
 */
 
  TODO: should make alias TimingContext for Score
 */
 
-               sp-> set_mus_property ("context-type", ly_str02scm ( "Score"));
+               sp-> set_mus_property ("context-type", scm_makfrom0str ( "Score"));
        }
        ;
 
        }
        ;
 
@@ -1286,7 +1286,7 @@ shorthand_command_req:
        | '['           {
                Span_req*b= new Span_req;
                b->set_span_dir (START);
        | '['           {
                Span_req*b= new Span_req;
                b->set_span_dir (START);
-               b->set_mus_property ("span-type", ly_str02scm ("beam"));
+               b->set_mus_property ("span-type", scm_makfrom0str ("beam"));
                $$ =b;
 
 
                $$ =b;
 
 
@@ -1295,7 +1295,7 @@ shorthand_command_req:
        | ']'           {
                Span_req*b= new Span_req;
                b->set_span_dir ( STOP);
        | ']'           {
                Span_req*b= new Span_req;
                b->set_span_dir ( STOP);
-               b->set_mus_property ("span-type", ly_str02scm ("beam"));
+               b->set_mus_property ("span-type", scm_makfrom0str ("beam"));
                $$ = b;
        }
        | BREATHE {
                $$ = b;
        }
        | BREATHE {
@@ -1560,25 +1560,25 @@ close_request_parens:
        '('     {
                Span_req* s= new Span_req;
                $$ = s;
        '('     {
                Span_req* s= new Span_req;
                $$ = s;
-               s->set_mus_property ("span-type", ly_str02scm ( "slur"));
+               s->set_mus_property ("span-type", scm_makfrom0str ( "slur"));
                s->set_spot (THIS->here_input());
        }
        | E_OPEN        {
                Span_req* s= new Span_req;
                $$ = s;
                s->set_spot (THIS->here_input());
        }
        | E_OPEN        {
                Span_req* s= new Span_req;
                $$ = s;
-               s->set_mus_property ("span-type", ly_str02scm ( "phrasing-slur"));
+               s->set_mus_property ("span-type", scm_makfrom0str ( "phrasing-slur"));
                s->set_spot (THIS->here_input());
        }
        | E_SMALLER {
                Span_req*s =new Span_req;
                $$ = s;
                s->set_spot (THIS->here_input());
        }
        | E_SMALLER {
                Span_req*s =new Span_req;
                $$ = s;
-               s->set_mus_property ("span-type", ly_str02scm ( "crescendo"));
+               s->set_mus_property ("span-type", scm_makfrom0str ( "crescendo"));
                s->set_spot (THIS->here_input());
        }
        | E_BIGGER {
                Span_req*s =new Span_req;
                $$ = s;
                s->set_spot (THIS->here_input());
        }
        | E_BIGGER {
                Span_req*s =new Span_req;
                $$ = s;
-               s->set_mus_property ("span-type", ly_str02scm ("decrescendo"));
+               s->set_mus_property ("span-type", scm_makfrom0str ("decrescendo"));
                s->set_spot (THIS->here_input());
        }
        ;
                s->set_spot (THIS->here_input());
        }
        ;
@@ -1594,7 +1594,7 @@ open_request:
 open_request_parens:
        E_EXCLAMATION   {
                Span_req *s =  new Span_req;
 open_request_parens:
        E_EXCLAMATION   {
                Span_req *s =  new Span_req;
-               s->set_mus_property ("span-type", ly_str02scm ( "crescendo"));
+               s->set_mus_property ("span-type", scm_makfrom0str ( "crescendo"));
                s->set_spot (THIS->here_input());
 
                $$ = s;
                s->set_spot (THIS->here_input());
 
                $$ = s;
@@ -1602,14 +1602,14 @@ open_request_parens:
        | ')'   {
                Span_req* s= new Span_req;
                $$ = s;
        | ')'   {
                Span_req* s= new Span_req;
                $$ = s;
-               s->set_mus_property ("span-type", ly_str02scm ( "slur"));
+               s->set_mus_property ("span-type", scm_makfrom0str ( "slur"));
                s->set_spot (THIS->here_input());
 
        }
        | E_CLOSE       {
                Span_req* s= new Span_req;
                $$ = s;
                s->set_spot (THIS->here_input());
 
        }
        | E_CLOSE       {
                Span_req* s= new Span_req;
                $$ = s;
-               s->set_mus_property ("span-type", ly_str02scm ( "phrasing-slur"));
+               s->set_mus_property ("span-type", scm_makfrom0str ( "phrasing-slur"));
                s->set_spot (THIS->here_input());
        }
        ;
                s->set_spot (THIS->here_input());
        }
        ;
@@ -1631,7 +1631,7 @@ gen_text_def:
                String ds = to_string ($1);
                Text_script_req* t = new Text_script_req;
                SCM finger = ly_symbol2scm ("finger");
                String ds = to_string ($1);
                Text_script_req* t = new Text_script_req;
                SCM finger = ly_symbol2scm ("finger");
-               t->set_mus_property ("text",  ly_str02scm (ds.to_str0 ()));
+               t->set_mus_property ("text",  scm_makfrom0str (ds.to_str0 ()));
                t->set_mus_property ("text-type" , finger);
                t->set_spot (THIS->here_input ());
                $$ = t;
                t->set_mus_property ("text-type" , finger);
                t->set_spot (THIS->here_input ());
                $$ = t;
@@ -1640,22 +1640,22 @@ gen_text_def:
 
 script_abbreviation:
        '^'             {
 
 script_abbreviation:
        '^'             {
-               $$ = gh_str02scm ("Hat");
+               $$ = scm_makfrom0str ("Hat");
        }
        | '+'           {
        }
        | '+'           {
-               $$ = gh_str02scm ("Plus");
+               $$ = scm_makfrom0str ("Plus");
        }
        | '-'           {
        }
        | '-'           {
-               $$ = gh_str02scm ("Dash");
+               $$ = scm_makfrom0str ("Dash");
        }
        | '|'           {
        }
        | '|'           {
-               $$ = gh_str02scm ("Bar");
+               $$ = scm_makfrom0str ("Bar");
        }
        | '>'           {
        }
        | '>'           {
-               $$ = gh_str02scm ("Larger");
+               $$ = scm_makfrom0str ("Larger");
        }
        | '.'           {
        }
        | '.'           {
-               $$ = gh_str02scm ("Dot");
+               $$ = scm_makfrom0str ("Dot");
        }
        ;
 
        }
        ;
 
@@ -1919,7 +1919,7 @@ simple_element:
                Span_req *sp2 = new Span_req;
                sp1-> set_span_dir ( START);
                sp2-> set_span_dir ( STOP);
                Span_req *sp2 = new Span_req;
                sp1-> set_span_dir ( START);
                sp2-> set_span_dir ( STOP);
-               SCM r = ly_str02scm ("rest");
+               SCM r = scm_makfrom0str ("rest");
                sp1->set_mus_property ("span-type", r);
                sp2->set_mus_property ("span-type", r);
 
                sp1->set_mus_property ("span-type", r);
                sp2->set_mus_property ("span-type", r);
 
index 7a9c5b254e5985c61b452c8a623667bc1220f3ca..7a871bc815a26035d39eefeac5c344405d65a513 100644 (file)
@@ -369,7 +369,7 @@ Part_combine_music_iterator::process (Moment m)
   if (!abort_req)
     {
       abort_req = new Span_req;
   if (!abort_req)
     {
       abort_req = new Span_req;
-      abort_req->set_mus_property ("span-type", ly_str02scm ("abort"));
+      abort_req->set_mus_property ("span-type", scm_makfrom0str ("abort"));
     }
   
   if (combine_b && combine_b != previously_combined_b)
     }
   
   if (combine_b && combine_b != previously_combined_b)
index ee9e6e6dd83904339a275e8fa8d95becb2f337e5..4cbe1feb622388fff502f756fd30bb77159d1ecf 100644 (file)
@@ -164,7 +164,7 @@ Piano_pedal_engraver::try_music (Music *m)
              p->bracket_ = 0;
            }  
          if (scm_equal_p (s->get_mus_property ("span-type"),
              p->bracket_ = 0;
            }  
          if (scm_equal_p (s->get_mus_property ("span-type"),
-                          ly_str02scm (p->name_))==SCM_BOOL_T)
+                          scm_makfrom0str (p->name_))==SCM_BOOL_T)
            {
              p->req_l_drul_[s->get_span_dir ()] = s;
              return true;
            {
              p->req_l_drul_[s->get_span_dir ()] = s;
              return true;
index 675ed9140d1628f509bad4a3a846cd6b61185f9a..59ed0a4469bc130154b227ce972d8278ade908d4 100644 (file)
@@ -130,7 +130,7 @@ Piano_pedal_performer::try_music (Music* r)
       for (Pedal_info*p = info_alist_; p->name_; p ++)
        {
          if (scm_equal_p (s->get_mus_property ("span-type"),
       for (Pedal_info*p = info_alist_; p->name_; p ++)
        {
          if (scm_equal_p (s->get_mus_property ("span-type"),
-                          ly_str02scm (p->name_)) == SCM_BOOL_T)
+                          scm_makfrom0str (p->name_)) == SCM_BOOL_T)
            {
              p->req_l_drul_[s->get_span_dir ()] = s;
              return true;
            {
              p->req_l_drul_[s->get_span_dir ()] = s;
              return true;
index 3be10e21533ce66aedf59998258be325ad3590ea..09ebadf66012029478de41253975424c767e24c6 100644 (file)
@@ -255,7 +255,7 @@ Pitch::print_smob (SCM s, SCM port, scm_print_state *)
   Pitch  *r = (Pitch *) ly_cdr (s);
      
   scm_puts ("#<Pitch ", port);
   Pitch  *r = (Pitch *) ly_cdr (s);
      
   scm_puts ("#<Pitch ", port);
-  scm_display (ly_str02scm (r->string ().to_str0 ()), port);
+  scm_display (scm_makfrom0str (r->string ().to_str0 ()), port);
   scm_puts (" >", port);
   
   return 1;
   scm_puts (" >", port);
   
   return 1;
index 8a95a7ba329b6f1c15efda2c0be960124380c1c1..1b7d91104f2a7bcc70c9abda724796d0bbe420b4 100644 (file)
@@ -105,7 +105,7 @@ Repeat_acknowledge_engraver::process_music ()
     {
       if (s != "" || (volta_found && !gh_string_p (wb)))
        {
     {
       if (s != "" || (volta_found && !gh_string_p (wb)))
        {
-         daddy_trans_->set_property ("whichBar", ly_str02scm (s.to_str0 ()));
+         daddy_trans_->set_property ("whichBar", scm_makfrom0str (s.to_str0 ()));
        }
     }
 }
        }
     }
 }
index 45cfa80e15f6c3a815bfe262ff8499956dc97c2a..4820be55c6bf98c94fba4726af4737b3b4c9dffb 100644 (file)
@@ -218,7 +218,7 @@ Span_bar::evaluate_glyph (Grob*me)
       type = ".|.";
     }
 
       type = ".|.";
     }
 
-  gl = ly_str02scm (type.to_str0 ());
+  gl = scm_makfrom0str (type.to_str0 ());
   if (scm_equal_p (me->internal_get_grob_property (glyph_symbol), gl) != SCM_BOOL_T)
     me->internal_set_grob_property (glyph_symbol, gl);
 }
   if (scm_equal_p (me->internal_get_grob_property (glyph_symbol), gl) != SCM_BOOL_T)
     me->internal_set_grob_property (glyph_symbol, gl);
 }
index 0a577fd27d68999a73079da979464fa7de4151d5..88646057f179036777e561962b9f2e67d258ff14 100644 (file)
@@ -48,11 +48,11 @@ System_start_delimiter_engraver::acknowledge_grob (Grob_info inf)
       /*
        UGH UGH
        */
       /*
        UGH UGH
        */
-      if (gh_string_p (gl) && gh_equal_p (gl, ly_str02scm  ("brace"))
-         && gh_string_p (my_gl) && gh_equal_p (my_gl, ly_str02scm  ("bracket")))
+      if (gh_string_p (gl) && gh_equal_p (gl, scm_makfrom0str  ("brace"))
+         && gh_string_p (my_gl) && gh_equal_p (my_gl, scm_makfrom0str  ("bracket")))
        inf.grob_->translate_axis (-0.8, X_AXIS); // ugh
        inf.grob_->translate_axis (-0.8, X_AXIS); // ugh
-      else if (gh_string_p (gl) && gh_equal_p (gl, ly_str02scm  ("bracket"))
-              && gh_string_p (my_gl) && gh_equal_p (my_gl, ly_str02scm  ("bracket")))
+      else if (gh_string_p (gl) && gh_equal_p (gl, scm_makfrom0str  ("bracket"))
+              && gh_string_p (my_gl) && gh_equal_p (my_gl, scm_makfrom0str  ("bracket")))
        {
          inf.grob_->translate_axis ( -0.8, X_AXIS); // ugh
          inf.grob_->set_grob_property ("arch-height",
        {
          inf.grob_->translate_axis ( -0.8, X_AXIS); // ugh
          inf.grob_->set_grob_property ("arch-height",
index c3a7db4b146aca2d4d56569c5e18f5f4827780ae..38f0dc7100ab9ad6533478b97479a9dc247d243e 100644 (file)
@@ -76,7 +76,7 @@ System_start_delimiter::after_line_breaking (SCM smob)
   SCM   gl = me->get_grob_property ("glyph");
 
   if (scm_ilength (me->get_grob_property ("elements")) <=  1
   SCM   gl = me->get_grob_property ("glyph");
 
   if (scm_ilength (me->get_grob_property ("elements")) <=  1
-      && gh_equal_p (gl,ly_str02scm ("bar-line")))
+      && gh_equal_p (gl,scm_makfrom0str ("bar-line")))
     {
       me->suicide ();
     }
     {
       me->suicide ();
     }
index 94ca07ebe32c63946fd69a2791ea5fef6e59610a..6731500db600efec6be0adda4488b8d824e389ea 100644 (file)
@@ -292,7 +292,7 @@ System::output_molecule (SCM expr, Offset o)
       
 
          pscore_->outputter_->output_scheme (scm_list_n (ly_symbol2scm ("define-origin"),
       
 
          pscore_->outputter_->output_scheme (scm_list_n (ly_symbol2scm ("define-origin"),
-                                                          ly_str02scm (ip->file_string ().to_str0 ()),
+                                                          scm_makfrom0str (ip->file_string ().to_str0 ()),
                                                           gh_int2scm (ip->line_number ()),
                                                           gh_int2scm (ip->column_number ()),
                                                           SCM_UNDEFINED));
                                                           gh_int2scm (ip->line_number ()),
                                                           gh_int2scm (ip->column_number ()),
                                                           SCM_UNDEFINED));
index d3f496b6113a04da022acd936dd4e81d64a8c5e8..e360f810338d36c95d797b6d220a65d26f0db9b9 100644 (file)
@@ -102,10 +102,10 @@ Time_signature::time_signature (Grob*me,int num, int den)
   SCM chain = Font_interface::font_alist_chain (me);
 
   Molecule n = Text_item::text2molecule (me,
   SCM chain = Font_interface::font_alist_chain (me);
 
   Molecule n = Text_item::text2molecule (me,
-                                        ly_str02scm (to_string (num).to_str0 ()),
+                                        scm_makfrom0str (to_string (num).to_str0 ()),
                                         chain);
   Molecule d = Text_item::text2molecule (me,
                                         chain);
   Molecule d = Text_item::text2molecule (me,
-                                        ly_str02scm (to_string (den).to_str0 ()),
+                                        scm_makfrom0str (to_string (den).to_str0 ()),
                                         chain);
   n.align_to (X_AXIS, CENTER);
   d.align_to (X_AXIS, CENTER);
                                         chain);
   n.align_to (X_AXIS, CENTER);
   d.align_to (X_AXIS, CENTER);
index db7693c1b30eaec7f4c06d2632a0b060cde77ec6..dfdf4d51d02a5cf646379f95d122012db2d1601a 100644 (file)
@@ -54,7 +54,7 @@ Timing_engraver::start_translation_timestep ()
   if (!gh_string_p (which))
     which
       = (now.main_part_ || now.main_part_ == last_moment_.main_part_)
   if (!gh_string_p (which))
     which
       = (now.main_part_ || now.main_part_ == last_moment_.main_part_)
-      ? SCM_EOL : ly_str02scm ("|");
+      ? SCM_EOL : scm_makfrom0str ("|");
 
   Moment mp = measure_position ();
   bool start_of_measure = (last_moment_.main_part_ != now.main_part_&& !mp.main_part_  );
 
   Moment mp = measure_position ();
   bool start_of_measure = (last_moment_.main_part_ != now.main_part_&& !mp.main_part_  );
index 629d75c6f88b08df3f6b6d9f497fb1b5f5453f98..6768de18c70143865e4660a4ca99119159f5d6ee 100644 (file)
@@ -131,7 +131,7 @@ Translator_group::find_create_translator (String n, String id)
     return existing;
 
   Link_array<Translator_def> path
     return existing;
 
   Link_array<Translator_def> path
-    = unsmob_translator_def (definition_)->path_to_acceptable_translator (ly_str02scm ((char*)n.to_str0 ()), get_output_def ());
+    = unsmob_translator_def (definition_)->path_to_acceptable_translator (scm_makfrom0str ((char*)n.to_str0 ()), get_output_def ());
 
   if (path.size ())
     {
 
   if (path.size ())
     {
index 2c1100d4e8fcdd073517bd277f7b707f41562fcd..3b233d7f05124983cede24922a2857e601fbe50f 100644 (file)
@@ -141,7 +141,7 @@ LY_DEFINE(ly_translator_name,
   SCM_ASSERT_TYPE(tr, trans, SCM_ARG1, __FUNCTION__, "Context");
 
   char const* nm = classname (tr);
   SCM_ASSERT_TYPE(tr, trans, SCM_ARG1, __FUNCTION__, "Context");
 
   char const* nm = classname (tr);
-  return ly_str02scm (nm);
+  return scm_makfrom0str (nm);
 }
 
 LY_DEFINE(ly_translator_description,
 }
 
 LY_DEFINE(ly_translator_description,
index ff5cf9603d7ede3bae925250e723bb6da8de2d23..69bc3fbdc74bcc879fa43a9098812b804dbf4b07 100644 (file)
@@ -146,7 +146,7 @@ Volta_repeat_iterator::next_element (bool side_effect)
 
          if (done_count_ <= alt_count_)
            add_repeat_command (scm_list_n (ly_symbol2scm ("volta"),
 
          if (done_count_ <= alt_count_)
            add_repeat_command (scm_list_n (ly_symbol2scm ("volta"),
-                                           ly_str02scm (repstr.to_str0 ()), SCM_UNDEFINED));
+                                           scm_makfrom0str (repstr.to_str0 ()), SCM_UNDEFINED));
        }
       else
        {
        }
       else
        {
index eb47ba180b62ece70bbacdf1d97c2a6fa4f7de51..de4988d7f39b31ee19eb1f4c7649b9801b555cad 100644 (file)
@@ -55,7 +55,7 @@ Voice_devnull_engraver::try_music (Music *m)
         
          for (char const **p = eat_spanners; *p; p++)
            {
         
          for (char const **p = eat_spanners; *p; p++)
            {
-             if (t == ly_str02scm (*p))
+             if (t == scm_makfrom0str (*p))
                return true;
            }
        }
                return true;
            }
        }
index 5509e7b2ecd41ff8f109820fc21f58efd65cbb64..ccf820e122aaa5298763b43639d59965d0a68296 100644 (file)
@@ -74,7 +74,7 @@
 \fi
 
 \def\EndLilyPondOutput{%
 \fi
 
 \def\EndLilyPondOutput{%
-\ifundefined{lilypondpaperfilllastpage}%
+\ifundefined{lilypondpaperlastpagefill}%
   \vskip 0pt plus \lilypondpaperinterscorelinefill00 fill
 \fi
 \csname bye\endcsname}
   \vskip 0pt plus \lilypondpaperinterscorelinefill00 fill
 \fi
 \csname bye\endcsname}