]> git.donarmstrong.com Git - lilypond.git/commitdiff
Replace C++ (in)equality checks with proper SCM syntax
authorValentin Villenave <valentin@villenave.net>
Tue, 21 Apr 2015 15:57:03 +0000 (17:57 +0200)
committerValentin Villenave <valentin@villenave.net>
Tue, 21 Apr 2015 15:57:03 +0000 (17:57 +0200)
This commit replaces the most straightforward situations
where two SCM objects are compared.  Here are the basic
replacements used:

x == y                  ------->            scm_is_eq (x,y)
x == SCM_BOOL_T         ------->            to_boolean (x)
x == SCM_BOOL_F         ------->            scm_is_false (x)
x != SCM_BOOL_T         ------->            scm_is_true (x)
x == SCM_UNDEFINED      ------->            SCM_UNBNDP (x)
x == SCM_EOL            ------->            scm_is_null (x)
(scm_exact_p (x) == SCM_BOOL_T)  ------->   ly_is_rational (x)
(scm_integer_p (x) == SCM_BOOL_T) ------->  scm_is_integer (x)
(scm_list_p (x) == SCM_BOOL_T)  ------->    ly_is_list (x)
(scm_port_p (x) == SCM_BOOL_T)  ------->    ly_is_port (x)
(scm_equal_p (x, y) == SCM_BOOL_T) -------> ly_is_equal (x,y)

Finally, I replaced (!cached) with (!SCM_UNPACK (cached)) in
lily-guile-macros.hh, as has been suggested once by David.

Please note that this commit does not handle some situations
I’m less comfortable with (namely those involving scm_c_memq,
scm_assq or scm_hashq_get_handle), and some scm_*_p checks
for which there isn’t a ly_is_* replacement yet (to wit,
scm_hash_table_p, scm_promise_p, and scm_variable_bound_p).
Those should be dealt with later (another patch is in the works).

140 files changed:
lily/accidental-engraver.cc
lily/accidental-placement.cc
lily/align-interface.cc
lily/ambitus-engraver.cc
lily/auto-beam-engraver.cc
lily/axis-group-interface.cc
lily/bar-engraver.cc
lily/bar-number-engraver.cc
lily/beam-engraver.cc
lily/beam.cc
lily/break-align-engraver.cc
lily/break-alignment-interface.cc
lily/break-substitution.cc
lily/chord-name-engraver.cc
lily/clef-engraver.cc
lily/constrained-breaking.cc
lily/context-def.cc
lily/context-mod-scheme.cc
lily/context-property.cc
lily/context-scheme.cc
lily/context.cc
lily/cue-clef-engraver.cc
lily/directional-element-interface.cc
lily/dispatcher.cc
lily/dot-column.cc
lily/double-percent-repeat-engraver.cc
lily/drum-note-engraver.cc
lily/drum-note-performer.cc
lily/duration-scheme.cc
lily/dynamic-engraver.cc
lily/engraver-group.cc
lily/engraver.cc
lily/figured-bass-engraver.cc
lily/font-interface.cc
lily/font-select.cc
lily/general-scheme.cc
lily/glissando-engraver.cc
lily/grob-interface.cc
lily/grob-property.cc
lily/grob-scheme.cc
lily/grob.cc
lily/include/lily-guile-macros.hh
lily/include/lily-guile.hh
lily/instrument-name-engraver.cc
lily/key-engraver.cc
lily/lexer.ll
lily/ligature-engraver.cc
lily/lily-guile.cc
lily/lily-lexer.cc
lily/lily-parser-scheme.cc
lily/lily-parser.cc
lily/line-interface.cc
lily/line-spanner.cc
lily/ly-module.cc
lily/mark-engraver.cc
lily/measure-grouping-spanner.cc
lily/mensural-ligature.cc
lily/metronome-engraver.cc
lily/midi-item.cc
lily/module-scheme.cc
lily/multi-measure-rest-engraver.cc
lily/multi-measure-rest.cc
lily/music.cc
lily/new-fingering-engraver.cc
lily/note-collision.cc
lily/open-type-font.cc
lily/output-def-scheme.cc
lily/output-def.cc
lily/page-breaking.cc
lily/page-layout-problem.cc
lily/page-spacing.cc
lily/page-turn-engraver.cc
lily/page-turn-page-breaking.cc
lily/pango-font.cc
lily/pango-select.cc
lily/paper-book.cc
lily/paper-column-engraver.cc
lily/paper-column.cc
lily/paper-def.cc
lily/paper-outputter.cc
lily/paper-score.cc
lily/paper-system.cc
lily/parse-scm.cc
lily/parser.yy
lily/part-combine-engraver.cc
lily/part-combine-iterator.cc
lily/percent-repeat-engraver.cc
lily/piano-pedal-engraver.cc
lily/pitched-trill-engraver.cc
lily/prob-scheme.cc
lily/prob.cc
lily/profile.cc
lily/program-option-scheme.cc
lily/quote-iterator.cc
lily/repeat-acknowledge-engraver.cc
lily/score-performer.cc
lily/score-scheme.cc
lily/score.cc
lily/script-engraver.cc
lily/script-interface.cc
lily/self-alignment-interface.cc
lily/simple-closure.cc
lily/simple-spacer-scheme.cc
lily/simple-spacer.cc
lily/skyline.cc
lily/slur-configuration.cc
lily/slur-scoring.cc
lily/slur.cc
lily/smobs.cc
lily/spaceable-grob.cc
lily/spacing-determine-loose-columns.cc
lily/spanner.cc
lily/staff-performer.cc
lily/staff-spacing.cc
lily/stem-tremolo.cc
lily/stem.cc
lily/stencil-expression.cc
lily/stencil-integral.cc
lily/stencil-interpret.cc
lily/stencil-scheme.cc
lily/stencil.cc
lily/stream-event-scheme.cc
lily/stream-event.cc
lily/system-start-delimiter-engraver.cc
lily/system-start-delimiter.cc
lily/system.cc
lily/tab-note-heads-engraver.cc
lily/text-interface.cc
lily/tie-formatting-problem.cc
lily/tie-specification.cc
lily/time-signature-engraver.cc
lily/translator-ctors.cc
lily/translator-group-ctors.cc
lily/ttf.cc
lily/tuplet-bracket.cc
lily/tuplet-number.cc
lily/vaticana-ligature-engraver.cc
lily/vaticana-ligature.cc
lily/volta-engraver.cc
lily/volta-repeat-iterator.cc

index fcc9fcb97792643723097414cbe6cbdb600ba289..4bdf59735749ade5b5ae4740c44a09ad0c535560 100644 (file)
@@ -317,7 +317,7 @@ Accidental_engraver::make_standard_accidental (Stream_event * /* note */,
   */
   for (vsize i = 0; i < left_objects_.size (); i++)
     {
-      if (left_objects_[i]->get_property ("side-axis") == scm_from_int (X_AXIS))
+      if (scm_is_eq (left_objects_[i]->get_property ("side-axis"), scm_from_int (X_AXIS)))
         Side_position_interface::add_support (left_objects_[i], a);
     }
 
@@ -332,7 +332,7 @@ Accidental_engraver::make_standard_accidental (Stream_event * /* note */,
 
   Accidental_placement::add_accidental
     (accidental_placement_, a,
-     get_property ("accidentalGrouping") == ly_symbol2scm ("voice"),
+     scm_is_eq (get_property ("accidentalGrouping"), ly_symbol2scm ("voice")),
      (long) trans);
 
   note_head->set_object ("accidental-grob", a->self_scm ());
@@ -467,7 +467,8 @@ Accidental_engraver::acknowledge_rhythmic_head (Grob_info info)
           || note->in_event_class ("trill-span-event"))
       // option to skip accidentals on string harmonics
       && (to_boolean (get_property ("harmonicAccidentals"))
-          || info.grob ()->get_property ("style") != ly_symbol2scm ("harmonic"))
+          || !scm_is_eq (info.grob ()->get_property ("style"),
+                         ly_symbol2scm ("harmonic")))
       // ignore accidentals in non-printing voices like NullVoice
       && !to_boolean (info.context ()->get_property ("nullAccidentals")))
     {
index c8c14d4bd980ce54cceba08d4c3f56eee003c937..04883f03a956ecfe6ce5ae623c0f02bc190de3bd 100644 (file)
@@ -61,7 +61,7 @@ Accidental_placement::add_accidental (Grob *me, Grob *a, bool stagger, long cont
   SCM key = scm_cons (scm_from_int (n), scm_from_long  (stagger ? context_hash : 1));
   // assoc because we're dealing with pairs
   SCM entry = scm_assoc (key, accs);
-  if (entry == SCM_BOOL_F)
+  if (scm_is_false (entry))
     entry = SCM_EOL;
   else
     entry = scm_cdr (entry);
@@ -342,7 +342,7 @@ extract_heads_and_stems (vector<Accidental_placement_entry *> const &apes)
   for (vsize i = ret.size (); i--;)
     if (Grob *s = Rhythmic_head::get_stem (ret[i]))
       ret.push_back (s);
-  
+
   uniquify (ret);
   return ret;
 }
index d187326922ed0b8dede64c4d479f25c9faf2b68e..fffc64b1bb1a1796e95a7de8d6a113713ebec65f 100644 (file)
@@ -179,7 +179,7 @@ Align_interface::internal_get_minimum_translations (Grob *me,
       SCM fv = ly_assoc_get (scm_cons (scm_from_int (start), scm_from_int (end)),
                              me->get_property ("minimum-translations-alist"),
                              SCM_EOL);
-      if (fv != SCM_EOL)
+      if (!scm_is_null (fv))
         return ly_scm2floatvector (fv);
     }
 
index 58716c3ccf795a1b9c6e3f6412ac06f4a43b2b67..fedf31e5d49e0a3a4649f5693b03af0affe7d98b 100644 (file)
@@ -174,11 +174,11 @@ Ambitus_engraver::finalize ()
                                             scm_from_int (p.get_notename ())),
                                   start_key_sig_);
 
-          if (handle == SCM_BOOL_F)
+          if (scm_is_false (handle))
             handle = scm_assoc (scm_from_int (p.get_notename ()),
                                 start_key_sig_);
 
-          Rational sig_alter = (handle != SCM_BOOL_F)
+          Rational sig_alter = (scm_is_true (handle))
                                ? robust_scm2rational (scm_cdr (handle), Rational (0))
                                : Rational (0);
 
index bdf5b8f491554d0be5f2688c71ebc379ef746729..beb8fce3902f5d49a89796286d70bc546ac7446a 100644 (file)
@@ -170,12 +170,11 @@ Auto_beam_engraver::listen_beam_forbid (Stream_event *ev)
 bool
 Auto_beam_engraver::test_moment (Direction dir, Moment test_mom, Moment dur)
 {
-  return scm_call_4 (get_property ("autoBeamCheck"),
-                     context ()->self_scm (),
-                     scm_from_int (dir),
-                     test_mom.smobbed_copy (),
-                     dur.smobbed_copy ())
-         != SCM_BOOL_F;
+  return scm_is_true (scm_call_4 (get_property ("autoBeamCheck"),
+                                    context ()->self_scm (),
+                                    scm_from_int (dir),
+                                    test_mom.smobbed_copy (),
+                                    dur.smobbed_copy ()));
 }
 
 void
@@ -438,7 +437,7 @@ Auto_beam_engraver::acknowledge_stem (Grob_info info)
                        durlog - 2,
                        Stem::is_invisible (stem),
                        stem_duration->factor (),
-                       (stem->get_property ("tuplet-start") == SCM_BOOL_T));
+                       (to_boolean (stem->get_property ("tuplet-start"))));
   stems_->push_back (stem);
   last_add_mom_ = now;
   extend_mom_ = max (extend_mom_, now) + get_event_length (ev, now);
index 946db34a8b4c0fc83f30b817784df8f112152d74..4056e25651f180eade8c74f9b20b4241f8569ac7 100644 (file)
@@ -705,10 +705,10 @@ valid_outside_staff_placement_directive (Grob *me)
 {
   SCM directive = me->get_property ("outside-staff-placement-directive");
 
-  if ((directive == ly_symbol2scm ("left-to-right-greedy"))
-      || (directive == ly_symbol2scm ("left-to-right-polite"))
-      || (directive == ly_symbol2scm ("right-to-left-greedy"))
-      || (directive == ly_symbol2scm ("right-to-left-polite")))
+  if (scm_is_eq (directive, ly_symbol2scm ("left-to-right-greedy"))
+      || scm_is_eq (directive, ly_symbol2scm ("left-to-right-polite"))
+      || scm_is_eq (directive, ly_symbol2scm ("right-to-left-greedy"))
+      || scm_is_eq (directive, ly_symbol2scm ("right-to-left-polite")))
     return directive;
 
   me->warning (_f ("\"%s\" is not a valid outside-staff-placement-directive",
@@ -735,11 +735,11 @@ add_grobs_of_one_priority (Grob *me,
   SCM directive
     = valid_outside_staff_placement_directive (me);
 
-  bool l2r = ((directive == ly_symbol2scm ("left-to-right-greedy"))
-              || (directive == ly_symbol2scm ("left-to-right-polite")));
+  bool l2r = (scm_is_eq (directive, ly_symbol2scm ("left-to-right-greedy"))
+              || scm_is_eq (directive, ly_symbol2scm ("left-to-right-polite")));
 
-  bool polite = ((directive == ly_symbol2scm ("left-to-right-polite"))
-                 || (directive == ly_symbol2scm ("right-to-left-polite")));
+  bool polite = (scm_is_eq (directive, ly_symbol2scm ("left-to-right-polite"))
+                 || scm_is_eq (directive, ly_symbol2scm ("right-to-left-polite")));
 
   vector<Box> boxes;
   vector<Skyline_pair> skylines_to_merge;
index b210ab768031388d45afa5cd8f16f317388eb400..397743b4b07b87d8fd4cf49f1384d49aa8ce15e4 100644 (file)
@@ -59,7 +59,7 @@ Bar_engraver::create_bar ()
     {
       bar_ = make_item ("BarLine", SCM_EOL);
       SCM gl = get_property ("whichBar");
-      if (scm_equal_p (gl, bar_->get_property ("glyph")) != SCM_BOOL_T)
+      if (!ly_is_equal (gl, bar_->get_property ("glyph")))
         bar_->set_property ("glyph", gl);
     }
 }
index eb4af480546e6c54456ca40cbdc0e03442b2bf3b..144076439c6e27fb787a6d50251cf3c2e7ea7ab0 100644 (file)
@@ -62,8 +62,10 @@ Bar_number_engraver::listen_alternative (Stream_event *ev)
   alternative_event_ = ev;
   int current_barnumber = robust_scm2int (get_property ("currentBarNumber"), 0);
   Direction alternative_dir = robust_scm2dir (ev->get_property ("alternative-dir"), CENTER);
-  bool make_alternative = get_property ("alternativeNumberingStyle") == ly_symbol2scm ("numbers")
-                          || get_property ("alternativeNumberingStyle") == ly_symbol2scm ("numbers-with-letters");
+  bool make_alternative = scm_is_eq (get_property ("alternativeNumberingStyle"),
+                                     ly_symbol2scm ("numbers"))
+                          || scm_is_eq (get_property ("alternativeNumberingStyle"),
+                                        ly_symbol2scm ("numbers-with-letters"));
   if (make_alternative)
     {
       /*
@@ -100,7 +102,7 @@ Bar_number_engraver::process_music ()
           create_items ();
           SCM alternative_style = get_property ("alternativeNumberingStyle");
           string text_tag = "";
-          if (alternative_style == ly_symbol2scm ("numbers-with-letters"))
+          if (scm_is_eq (alternative_style, ly_symbol2scm ("numbers-with-letters")))
             {
               if (alternative_event_)
                 {
index 4e4f991cb3dacdb0867c9ae5bcb975d28e34bca5..f19f7e604e69da3c9919b2bdc365402102ebd248 100644 (file)
@@ -308,7 +308,7 @@ Beam_engraver::acknowledge_stem (Grob_info info)
                         max (durlog - 2, 0),
                         Stem::is_invisible (stem),
                         stem_duration->factor (),
-                        (stem->get_property ("tuplet-start") == SCM_BOOL_T));
+                        (to_boolean (stem->get_property ("tuplet-start"))));
   Beam::add_stem (beam_, stem);
 }
 
index 83b0c743f950d6e396a278b6a537f5f1560b8669..82cbb1e766f4d314a2bb222bccd0f008e3dad79b 100644 (file)
@@ -203,7 +203,8 @@ Beam::calc_direction (SCM smob)
              placing this here avoids warnings downstream */
           if (heads.size())
             {
-               if (heads[0]->get_property ("style") == ly_symbol2scm ("kievan"))
+               if (scm_is_eq (heads[0]->get_property ("style"),
+                              ly_symbol2scm ("kievan")))
                  {
                     if (dir == CENTER)
                       dir = DOWN;
@@ -256,7 +257,7 @@ position_with_maximal_common_beams (SCM left_beaming, SCM right_beaming,
       for (SCM s = scm_car (right_beaming); scm_is_pair (s); s = scm_cdr (s))
         {
           int k = -right_dir * scm_to_int (scm_car (s)) + i;
-          if (scm_c_memq (scm_from_int (k), left_beaming) != SCM_BOOL_F)
+          if (scm_is_true (scm_c_memq (scm_from_int (k), left_beaming)))
             count++;
         }
 
@@ -961,7 +962,7 @@ Beam::calc_stem_shorten (SCM smob)
   int beam_count = get_beam_count (me);
 
   SCM shorten_list = me->get_property ("beamed-stem-shorten");
-  if (shorten_list == SCM_EOL)
+  if (scm_is_null (shorten_list))
     return scm_from_int (0);
 
   Real staff_space = Staff_symbol_referencer::staff_space (me);
@@ -1003,7 +1004,7 @@ where_are_the_whole_beams (SCM beaming)
 
   for (SCM s = scm_car (beaming); scm_is_pair (s); s = scm_cdr (s))
     {
-      if (scm_c_memq (scm_car (s), scm_cdr (beaming)) != SCM_BOOL_F)
+      if (scm_is_true (scm_c_memq (scm_car (s), scm_cdr (beaming))))
 
         l.add_point (scm_to_int (scm_car (s)));
     }
@@ -1139,8 +1140,8 @@ Beam::set_beaming (Grob *me, Beaming_pattern const *beaming)
         {
           Grob *stem = stems[i];
           SCM beaming_prop = stem->get_property ("beaming");
-          if (beaming_prop == SCM_EOL
-              || index_get_cell (beaming_prop, d) == SCM_EOL)
+          if (scm_is_null (beaming_prop)
+              || scm_is_null (index_get_cell (beaming_prop, d)))
             {
               int count = beaming->beamlet_count (i, d);
               if (i > 0
index 6da5ba603e104c894063ed85dfec098e1e397e83..fe07cac0c8355eea8a6f9e13125f4d2612eeeebf 100644 (file)
@@ -136,7 +136,7 @@ Break_align_engraver::add_to_group (SCM align_name, Item *item)
   SCM s = scm_assoc (align_name, column_alist_);
   Item *group = 0;
 
-  if (s != SCM_BOOL_F)
+  if (scm_is_true (s))
     {
       Grob *e = Grob::unsmob (scm_cdr (s));
       group = dynamic_cast<Item *> (e);
index db0a74f59abd43b2def046874a2715e5c7a55093..bb7f02eda099cbce13e73a323ac4e3870b30fdcf 100644 (file)
@@ -58,7 +58,7 @@ Break_alignment_interface::ordered_elements (Grob *grob)
 
   SCM order = break_align_order (me);
 
-  if (order == SCM_BOOL_F)
+  if (scm_is_false (order))
     return elts;
 
   vector<Grob *> writable_elts (elts);
@@ -144,8 +144,8 @@ Break_alignment_interface::calc_positioning_done (SCM smob)
           Grob *elt = elts[i];
 
           if (edge_idx == VPOS
-              && (elt->get_property ("break-align-symbol")
-                  == ly_symbol2scm ("left-edge")))
+              && scm_is_eq (elt->get_property ("break-align-symbol"),
+                            ly_symbol2scm ("left-edge")))
             edge_idx = idx;
 
           SCM l = elt->get_property ("space-alist");
@@ -174,7 +174,7 @@ Break_alignment_interface::calc_positioning_done (SCM smob)
             }
         }
 
-      if (rsym == ly_symbol2scm ("left-edge"))
+      if (scm_is_eq (rsym, ly_symbol2scm ("left-edge")))
         edge_idx = next_idx;
 
       SCM entry = SCM_EOL;
@@ -210,11 +210,11 @@ Break_alignment_interface::calc_positioning_done (SCM smob)
 
       if (r)
         {
-          if (type == ly_symbol2scm ("extra-space"))
+          if (scm_is_eq (type, ly_symbol2scm ("extra-space")))
             offsets[next_idx] = extents[idx][RIGHT] + distance
                                 - extents[next_idx][LEFT];
           /* should probably junk minimum-space */
-          else if (type == ly_symbol2scm ("minimum-space"))
+          else if (scm_is_eq (type, ly_symbol2scm ("minimum-space")))
             offsets[next_idx] = max (extents[idx][RIGHT], distance);
         }
       else
index c2a363cb7366a1da5b9c2b4f1fe71a72795a5503..2028226447841ca161048899d32d7aa6ea6035f1 100644 (file)
@@ -125,8 +125,8 @@ again:
       SCM newcar = do_break_substitution (scm_car (src));
       SCM oldcdr = scm_cdr (src);
 
-      if (newcar == SCM_UNDEFINED
-          && (scm_is_pair (oldcdr) || oldcdr == SCM_EOL))
+      if (SCM_UNBNDP (newcar)
+          && (scm_is_pair (oldcdr) || scm_is_null (oldcdr)))
         {
           /*
             This is tail-recursion, ie.
@@ -477,7 +477,7 @@ substitute_object_alist (SCM alist, SCM dest)
       else
         val = do_break_substitution (val);
 
-      if (val != SCM_UNDEFINED)
+      if (!SCM_UNBNDP (val))
         {
           /*
             for ly:grob? properties, SCM_UNDEFINED could leak out
index 539efcdf4c0c0fdd8065998554c38444e113e0ca..10420273ab645bd8e8c56dd90fe937b72ddbd909 100644 (file)
@@ -99,7 +99,7 @@ Chord_name_engraver::process_music ()
               if (!Pitch::is_smob (p))
                 continue;
 
-              if (n->get_property ("bass") == SCM_BOOL_T)
+              if (to_boolean (n->get_property ("bass")))
                 bass = p;
               else
                 {
@@ -111,7 +111,7 @@ Chord_name_engraver::process_music ()
                     }
                   else
                     pitches = scm_cons (p, pitches);
-                  if (n->get_property ("inversion") == SCM_BOOL_T)
+                  if (to_boolean (n->get_property ("inversion")))
                     {
                       inversion = p;
                       if (!scm_is_number (oct))
index b6efa00c768a9af3d7f939f712a8038367a80005..ebeb71a7cbd912a733536afb879b772541078616 100644 (file)
@@ -156,17 +156,17 @@ Clef_engraver::inspect_clef_properties ()
   SCM transposition = get_property ("clefTransposition");
   SCM force_clef = get_property ("forceClef");
 
-  if (clefpos == SCM_EOL
-      || scm_equal_p (glyph, prev_glyph_) == SCM_BOOL_F
-      || scm_equal_p (clefpos, prev_cpos_) == SCM_BOOL_F
-      || scm_equal_p (transposition, prev_transposition_) == SCM_BOOL_F
+  if (scm_is_null (clefpos)
+      || !ly_is_equal (glyph, prev_glyph_)
+      || !ly_is_equal (clefpos, prev_cpos_)
+      || !ly_is_equal (transposition, prev_transposition_)
       || to_boolean (force_clef))
     {
       apply_on_children (context (),
                          ly_lily_module_constant ("invalidate-alterations"));
 
       set_glyph ();
-      if (prev_cpos_ != SCM_BOOL_F || to_boolean (get_property ("firstClef")))
+      if (scm_is_true (prev_cpos_) || to_boolean (get_property ("firstClef")))
         create_clef ();
 
       if (clef_)
index e2d7081497543a0a3b49bf7f9a70ddb8140b857a..1a98775a96e929480e48cc83c749f7279093004f 100644 (file)
@@ -365,10 +365,10 @@ Constrained_breaking::Constrained_breaking (Paper_score *ps, vector<vsize> const
 static SCM
 min_permission (SCM perm1, SCM perm2)
 {
-  if (perm1 == ly_symbol2scm ("force"))
+  if (scm_is_eq (perm1, ly_symbol2scm ("force")))
     return perm2;
-  if (perm1 == ly_symbol2scm ("allow")
-      && perm2 != ly_symbol2scm ("force"))
+  if (scm_is_eq (perm1, ly_symbol2scm ("allow"))
+      && !scm_is_eq (perm2, ly_symbol2scm ("force")))
     return perm2;
   return SCM_EOL;
 }
index 534567de2c0d88c9c5d1ce551351800857d59c3f..10f31ae83079c71cfa6062abbb2c9b2a82fffda1 100644 (file)
@@ -117,7 +117,7 @@ void
 Context_def::add_context_mod (SCM mod)
 {
   SCM tag = scm_car (mod);
-  if (ly_symbol2scm ("description") == tag)
+  if (scm_is_eq (tag, ly_symbol2scm ("description")))
     {
       description_ = scm_cadr (mod);
       return;
@@ -130,27 +130,27 @@ Context_def::add_context_mod (SCM mod)
   if (scm_is_string (sym))
     sym = scm_string_to_symbol (sym);
 
-  if (ly_symbol2scm ("default-child") == tag)
+  if (scm_is_eq (tag, ly_symbol2scm ("default-child")))
     default_child_ = sym;
-  else if (ly_symbol2scm ("consists") == tag
-           || ly_symbol2scm ("remove") == tag)
+  else if (scm_is_eq (tag, ly_symbol2scm ("consists"))
+           || scm_is_eq (tag, ly_symbol2scm ("remove")))
     {
       translator_mods_ = scm_cons (scm_list_2 (tag, sym), translator_mods_);
     }
-  else if (ly_symbol2scm ("accepts") == tag
-           || ly_symbol2scm ("denies") == tag)
+  else if (scm_is_eq (tag, ly_symbol2scm ("accepts"))
+           || scm_is_eq (tag, ly_symbol2scm ("denies")))
     accept_mods_ = scm_cons (scm_list_2 (tag, sym), accept_mods_);
-  else if (ly_symbol2scm ("pop") == tag
-           || ly_symbol2scm ("push") == tag
-           || ly_symbol2scm ("assign") == tag
-           || ly_symbol2scm ("unset") == tag
-           || ly_symbol2scm ("apply") == tag)
+  else if (scm_is_eq (tag, ly_symbol2scm ("pop"))
+           || scm_is_eq (tag, ly_symbol2scm ("push"))
+           || scm_is_eq (tag, ly_symbol2scm ("assign"))
+           || scm_is_eq (tag, ly_symbol2scm ("unset"))
+           || scm_is_eq (tag, ly_symbol2scm ("apply")))
     property_ops_ = scm_cons (mod, property_ops_);
-  else if (ly_symbol2scm ("alias") == tag)
+  else if (scm_is_eq (tag, ly_symbol2scm ("alias")))
     context_aliases_ = scm_cons (sym, context_aliases_);
-  else if (ly_symbol2scm ("translator-type") == tag)
+  else if (scm_is_eq (tag, ly_symbol2scm ("translator-type")))
     translator_group_type_ = sym;
-  else if (ly_symbol2scm ("context-name") == tag)
+  else if (scm_is_eq (tag, ly_symbol2scm ("context-name")))
     context_name_ = sym;
   else
     programming_error ("unknown context mod tag");
@@ -165,9 +165,9 @@ Context_def::get_accepted (SCM user_mod) const
     {
       SCM tag = scm_caar (s);
       SCM sym = scm_cadar (s);
-      if (tag == ly_symbol2scm ("accepts"))
+      if (scm_is_eq (tag, ly_symbol2scm ("accepts")))
         acc = scm_cons (sym, acc);
-      else if (tag == ly_symbol2scm ("denies"))
+      else if (scm_is_eq (tag, ly_symbol2scm ("denies")))
         acc = scm_delete_x (sym, acc);
     }
 
@@ -188,7 +188,7 @@ Context_def::get_default_child (SCM user_mod) const
   for (SCM s = user_mod; scm_is_pair (s); s = scm_cdr (s))
     {
       SCM entry = scm_car (s);
-      if (scm_car (entry) == ly_symbol2scm ("default-child"))
+      if (scm_is_eq (scm_car (entry), ly_symbol2scm ("default-child")))
         {
           name = scm_cadr (entry);
           break;
@@ -289,9 +289,9 @@ Context_def::get_translator_names (SCM user_mod) const
       if (scm_is_string (arg))
         arg = scm_string_to_symbol (arg);
 
-      if (ly_symbol2scm ("consists") == tag)
+      if (scm_is_eq (tag, ly_symbol2scm ("consists")))
         l1 = scm_cons (arg, l1);
-      else if (ly_symbol2scm ("remove") == tag
+      else if (scm_is_eq (tag, ly_symbol2scm ("remove"))
                && (scm_is_pair (arg)
                    || ly_is_procedure (arg)
                    || get_translator (arg)))
index 4d6fef5c09d5ba0bb3256d23d437e391349f5ac3..493e151c1d93a944b49133a21eabad224e40047c 100644 (file)
@@ -47,7 +47,7 @@ LY_DEFINE (ly_make_context_mod, "ly:make-context-mod",
            "Creates a context modification, optionally initialized"
            " via the list of modifications @var{mod-list}.")
 {
-  if (mod_list != SCM_UNDEFINED)
+  if (!SCM_UNBNDP (mod_list))
     {
       LY_ASSERT_TYPE (ly_cheap_is_list, mod_list, 1);
       return Context_mod (mod_list).smobbed_copy ();
index 62e04a27323a5b136194c0607954e2b53e35c197..59bcf9afc6764fdf1cf1cd81a97c98bcc2ec53d6 100644 (file)
@@ -321,24 +321,24 @@ apply_property_operations (Context *tg, SCM pre_init_ops)
       SCM type = scm_car (entry);
       entry = scm_cdr (entry);
 
-      if (type == ly_symbol2scm ("push"))
+      if (scm_is_eq (type, ly_symbol2scm ("push")))
         {
           SCM context_prop = scm_car (entry);
           SCM val = scm_cadr (entry);
           SCM grob_prop_path = scm_cddr (entry);
           Grob_property_info (tg, context_prop).push (grob_prop_path, val);
         }
-      else if (type == ly_symbol2scm ("pop"))
+      else if (scm_is_eq (type, ly_symbol2scm ("pop")))
         {
           SCM context_prop = scm_car (entry);
           SCM grob_prop_path = scm_cdr (entry);
           Grob_property_info (tg, context_prop).pop (grob_prop_path);
         }
-      else if (type == ly_symbol2scm ("assign"))
+      else if (scm_is_eq (type, ly_symbol2scm ("assign")))
         tg->set_property (scm_car (entry), scm_cadr (entry));
-      else if (type == ly_symbol2scm ("apply"))
+      else if (scm_is_eq (type, ly_symbol2scm ("apply")))
        scm_apply_1 (scm_car (entry), tg->self_scm (), scm_cdr (entry));
-      else if (type == ly_symbol2scm ("unset"))
+      else if (scm_is_eq (type, ly_symbol2scm ("unset")))
         tg->unset_property (scm_car (entry));
     }
 }
index a3462354e07be6e76ed73b41bd6d04faee72d88c..d4bd77296c70a078247f75ea8f66f4af20b1ca46 100644 (file)
@@ -103,7 +103,7 @@ LY_DEFINE (ly_context_property, "ly:context-property",
 
   Context *t = Context::unsmob (context);
   SCM result = t->get_property (sym);
-  return def != SCM_UNDEFINED && scm_is_null (result) ? def : result;
+  return !SCM_UNBNDP (def) && scm_is_null (result) ? def : result;
 }
 
 LY_DEFINE (ly_context_set_property_x, "ly:context-set-property!",
index caac314bf704bbfde3b49fc12efb64ed65da35ca..9dad38f269c623a9264966ebee9d1cd381ad0357 100644 (file)
@@ -34,7 +34,7 @@
 bool
 Context::is_removable () const
 {
-  return context_list_ == SCM_EOL && ! client_count_
+  return scm_is_null (context_list_) && ! client_count_
          && !dynamic_cast<Global_context const *> (daddy_context_);
 }
 
@@ -181,7 +181,7 @@ Context::find_create_context (SCM n, const string &id, SCM operations)
   if (Context *existing = find_context_below (this, n, id))
     return existing;
 
-  if (n == ly_symbol2scm ("Bottom"))
+  if (scm_is_eq (n, ly_symbol2scm ("Bottom")))
     {
       Context *tg = get_default_interpreter (id);
       return tg;
@@ -248,7 +248,7 @@ Context::set_property_from_event (SCM sev)
         unset_property (sym);
         return;
       }
-          
+
       bool ok = true;
       ok = type_check_assignment (sym, val, ly_symbol2scm ("translation-type?"));
 
@@ -341,7 +341,7 @@ Context::path_to_acceptable_context (SCM name) const
   // but the Context_def expects to see elements of the form ('accepts symbol).
   SCM accepts = SCM_EOL;
   for (SCM s = definition_mods_; scm_is_pair (s); s = scm_cdr (s))
-    if (scm_caar (s) == ly_symbol2scm ("accepts"))
+    if (scm_is_eq (scm_caar (s), ly_symbol2scm ("accepts")))
       {
         SCM elt = scm_list_2 (scm_caar (s), scm_string_to_symbol (scm_cadar (s)));
         accepts = scm_cons (elt, accepts);
@@ -514,7 +514,7 @@ Context::is_alias (SCM sym) const
   if (scm_is_eq (sym, context_name_symbol ()))
     return true;
 
-  return scm_c_memq (sym, aliases_) != SCM_BOOL_F;
+  return scm_is_true (scm_c_memq (sym, aliases_));
 }
 
 void
index 33cceff59c5018832a159f6142874583cd9770f0..383c9a1b1f7c33c2150a30c8e2e8fc6444d93408 100644 (file)
@@ -171,9 +171,9 @@ Cue_clef_engraver::inspect_clef_properties ()
   SCM clefpos = get_property ("cueClefPosition");
   SCM transposition = get_property ("cueClefTransposition");
 
-  if (scm_equal_p (glyph, prev_glyph_) == SCM_BOOL_F
-      || scm_equal_p (clefpos, prev_cpos_) == SCM_BOOL_F
-      || scm_equal_p (transposition, prev_transposition_) == SCM_BOOL_F)
+  if (!ly_is_equal (glyph, prev_glyph_)
+      || !ly_is_equal (clefpos, prev_cpos_)
+      || !ly_is_equal (transposition, prev_transposition_))
     {
       set_glyph ();
       if (scm_is_string (glyph))
index 5dee7ed04e8f8fbf6d7dfea12374ace4de5ccb36..eb342fe1ac1c89a01cbe50eeb734ce97444b2edb 100644 (file)
@@ -25,7 +25,7 @@ Direction
 get_grob_direction (Grob *me)
 {
   SCM d = me->get_property ("direction");
-  if (d == ly_symbol2scm ("calculation-in-progress"))
+  if (scm_is_eq (d, ly_symbol2scm ("calculation-in-progress")))
     {
       programming_error ("Grob direction requested while calculation in"
                          " progress.");
index b268218f4719905b3f882e788bad22bcc4ef4f5f..efb3ca506c0d2bcf2d533daeaee75f25acdd5a75 100644 (file)
@@ -244,7 +244,7 @@ Dispatcher::remove_listener (Listener l, SCM ev_class)
 {
   SCM list = scm_hashq_ref (listeners_, ev_class, SCM_EOL);
 
-  if (list == SCM_EOL)
+  if (scm_is_null (list))
     {
       programming_error ("remove_listener called with incorrect class.");
       return;
@@ -292,7 +292,7 @@ Dispatcher::register_as_listener (Dispatcher *disp)
   int priority = ++disp->priority_count_;
 
   // Don't register twice to the same dispatcher.
-  if (scm_assq (disp->self_scm (), dispatchers_) != SCM_BOOL_F)
+  if (scm_is_true (scm_assq (disp->self_scm (), dispatchers_)))
     {
       warning (_ ("Already listening to dispatcher, ignoring request"));
       return;
index 853a7715a27cbf3742e11e86f5df566735728e14..1ec7baa05911c142250b71f3ed80931b939542a7 100644 (file)
@@ -217,8 +217,9 @@ Dot_column::calc_positioning_done (SCM smob)
 
       cfg.remove_collision (p);
       cfg[p] = dp;
-      if (Staff_symbol_referencer::on_line (dp.dot_, p) &&
-          dp.dot_->get_property ("style") != ly_symbol2scm ("kievan"))
+      if (Staff_symbol_referencer::on_line (dp.dot_, p)
+          && !scm_is_eq (dp.dot_->get_property ("style"),
+                         ly_symbol2scm ("kievan")))
         cfg.remove_collision (p);
     }
 
index 2569adbf142be9f46c52319e4f33dddfbf3bd13b..d85648293ece82b38ed4f8a327ff8d2492783be1 100644 (file)
@@ -73,7 +73,7 @@ Double_percent_repeat_engraver::process_music ()
                                         percent_event_->self_scm ());
 
       SCM count = percent_event_->get_property ("repeat-count");
-      if (count != SCM_EOL && to_boolean (get_property ("countPercentRepeats"))
+      if (!scm_is_null (count) && to_boolean (get_property ("countPercentRepeats"))
           && check_repeat_count_visibility (context (), count))
         {
           Item *double_percent_counter
index 1721dae62fad0f452d7d1fecfb803c9c6b28fc4c..09a58fa24b873722f89bddc8310cc41ed529f1ef 100644 (file)
@@ -76,7 +76,7 @@ Drum_notes_engraver::process_music ()
 
       SCM defn = SCM_EOL;
 
-      if (scm_hash_table_p (tab) == SCM_BOOL_T)
+      if (to_boolean (scm_hash_table_p (tab)))
         defn = scm_hashq_ref (tab, drum_type, SCM_EOL);
 
       if (scm_is_pair (defn))
@@ -85,7 +85,7 @@ Drum_notes_engraver::process_music ()
           SCM style = scm_car (defn);
           SCM script = scm_cadr (defn);
 
-          if (scm_integer_p (pos) == SCM_BOOL_T)
+          if (scm_is_integer (pos))
             note->set_property ("staff-position", pos);
           if (scm_is_symbol (style))
             note->set_property ("style", style);
index 6c565cd8e050623b31ef925b408a1422058314d4..4b74f791cfaffbaaa10e3e234cdabb624c646b56 100644 (file)
@@ -55,7 +55,7 @@ Drum_note_performer::process_music ()
       SCM defn = SCM_EOL;
 
       if (scm_is_symbol (sym)
-          && (scm_hash_table_p (tab) == SCM_BOOL_T))
+          && to_boolean (scm_hash_table_p (tab)))
         defn = scm_hashq_ref (tab, sym, SCM_EOL);
 
       if (Pitch *pit = Pitch::unsmob (defn))
index 59a2fdcba8023daf886c75d11d7b25f8bf234681..55fbf382b23c9b0171ff90c7a5272a956832e35b 100644 (file)
@@ -67,7 +67,7 @@ LY_DEFINE (ly_make_duration, "ly:make-duration",
   LY_ASSERT_TYPE (scm_is_integer, length, 1);
 
   int dots = 0;
-  if (dotcount != SCM_UNDEFINED)
+  if (!SCM_UNBNDP (dotcount))
     {
       LY_ASSERT_TYPE (scm_is_integer, dotcount, 2);
       dots = scm_to_int (dotcount);
index 8be008f8fb4949f31fcb2d6c191298fbd3b8b84c..0bbe69f075c81cefd3ebd14711fe881229b3a159 100644 (file)
@@ -107,7 +107,7 @@ Dynamic_engraver::get_property_setting (Stream_event *evt,
                                         char const *ctxprop)
 {
   SCM spanner_type = evt->get_property (evprop);
-  if (spanner_type == SCM_EOL)
+  if (scm_is_null (spanner_type))
     spanner_type = get_property (ctxprop);
   return spanner_type;
 }
@@ -141,7 +141,7 @@ Dynamic_engraver::process_music ()
       SCM cresc_type = get_property_setting (current_span_event_, "span-type",
                                              (start_type + "Spanner").c_str ());
 
-      if (cresc_type == ly_symbol2scm ("text"))
+      if (scm_is_eq (cresc_type, ly_symbol2scm ("text")))
         {
           current_spanner_
             = make_spanner ("DynamicTextSpanner",
@@ -156,12 +156,13 @@ Dynamic_engraver::process_music ()
             early: this allows dynamics to be spaced individually instead of
             being linked together.
           */
-          if (current_spanner_->get_property ("style") == ly_symbol2scm ("none"))
+          if (scm_is_eq (current_spanner_->get_property ("style"),
+                         ly_symbol2scm ("none")))
             current_spanner_->set_property ("spanner-broken", SCM_BOOL_T);
         }
       else
         {
-          if (cresc_type != ly_symbol2scm ("hairpin"))
+          if (!scm_is_eq (cresc_type, ly_symbol2scm ("hairpin")))
             {
               string as_string = ly_scm_write_string (cresc_type);
               current_span_event_
@@ -244,9 +245,9 @@ Dynamic_engraver::get_spanner_type (Stream_event *ev)
   string type;
   SCM start_sym = scm_car (ev->get_property ("class"));
 
-  if (start_sym == ly_symbol2scm ("decrescendo-event"))
+  if (scm_is_eq (start_sym, ly_symbol2scm ("decrescendo-event")))
     type = "decrescendo";
-  else if (start_sym == ly_symbol2scm ("crescendo-event"))
+  else if (scm_is_eq (start_sym, ly_symbol2scm ("crescendo-event")))
     type = "crescendo";
   else
     programming_error ("unknown dynamic spanner type");
index 3fc8cf2f85c11f7d324d3261cd3c722e900bca7e..50009bd53d7af0c19d3c28cc7ae2aa7041295013 100644 (file)
@@ -109,7 +109,7 @@ Engraver_group::acknowledge_grobs ()
       Engraver_dispatch_list *dispatch
         = Engraver_dispatch_list::unsmob (acklist);
 
-      if (acklist == SCM_BOOL_F)
+      if (scm_is_false (acklist))
         {
           SCM ifaces
             = scm_cdr (scm_assoc (ly_symbol2scm ("interfaces"), meta));
index 959a7784546ffda9d51fc24f022b6607f647a4e6..fd352d836db951c14f13899691dd79eba2a7347e 100644 (file)
@@ -56,7 +56,7 @@ Engraver::make_grob_info (Grob *e, SCM cause)
     {
       cause = m->to_event ()->unprotect ();
     }
-  if (e->get_property ("cause") == SCM_EOL
+  if (scm_is_null (e->get_property ("cause"))
       && (Stream_event::is_smob (cause) || Grob::is_smob (cause)))
     e->set_property ("cause", cause);
 
@@ -125,11 +125,11 @@ Engraver::internal_make_grob (SCM symbol,
   SCM handle = scm_sloppy_assq (ly_symbol2scm ("meta"), props);
   SCM klass = scm_cdr (scm_sloppy_assq (ly_symbol2scm ("class"), scm_cdr (handle)));
 
-  if (klass == ly_symbol2scm ("Item"))
+  if (scm_is_eq (klass, ly_symbol2scm ("Item")))
     grob = new Item (props);
-  else if (klass == ly_symbol2scm ("Spanner"))
+  else if (scm_is_eq (klass, ly_symbol2scm ("Spanner")))
     grob = new Spanner (props);
-  else if (klass == ly_symbol2scm ("Paper_column"))
+  else if (scm_is_eq (klass, ly_symbol2scm ("Paper_column")))
     grob = new Paper_column (props);
 
   assert (grob);
@@ -174,7 +174,7 @@ Engraver::internal_make_spanner (SCM x, SCM cause, char const *name,
 bool
 ly_is_grob_cause (SCM obj)
 {
-  return Grob::is_smob (obj) || Stream_event::is_smob (obj) || (obj == SCM_EOL);
+  return Grob::is_smob (obj) || Stream_event::is_smob (obj) || scm_is_null (obj);
 }
 
 #include "translator.icc"
index 67e4d6072e17e89fba040a973157c052f861b9e4..00f571ed3a35a5c62ec2ac77337656dd1b1478e2 100644 (file)
@@ -433,7 +433,7 @@ Figured_bass_engraver::create_grobs ()
               Align_interface::add_element (alignment_, group.group_);
             }
 
-          if (scm_memq (group.number_, get_property ("implicitBassFigures")) != SCM_BOOL_F)
+          if (scm_is_true (scm_memq (group.number_, get_property ("implicitBassFigures"))))
             {
               item->set_property ("transparent", SCM_BOOL_T);
               item->set_property ("implicit", SCM_BOOL_T);
index 4e6f5aac050628bda6a512046c95ff733a28c182..8f1e2c3b5271b8cc48156041dd793c709bf5942b 100644 (file)
@@ -45,7 +45,7 @@ Font_interface::music_font_alist_chain (Grob *g)
 {
   SCM defaults
     = g->layout ()->lookup_variable (ly_symbol2scm ("font-defaults"));
-  if (defaults == SCM_UNDEFINED)
+  if (SCM_UNBNDP (defaults))
     defaults = SCM_EOL;
   return g->get_property_alist_chain (defaults);
 }
@@ -55,7 +55,7 @@ Font_interface::text_font_alist_chain (Grob *g)
 {
   SCM defaults
     = g->layout ()->lookup_variable (ly_symbol2scm ("text-font-defaults"));
-  if (defaults == SCM_UNDEFINED)
+  if (SCM_UNBNDP (defaults))
     defaults = SCM_EOL;
   return g->get_property_alist_chain (defaults);
 }
index a5957ba715dab54ce231423ab6a356c88187cc94..9950d1a7474f3d2ad09b995776cf39820ab510df 100644 (file)
@@ -40,7 +40,7 @@ get_font_by_design_size (Output_def *layout, Real requested,
     {
       SCM entry = scm_c_vector_ref (font_vector, i);
 
-      if (scm_promise_p (entry) == SCM_BOOL_T)
+      if (to_boolean (scm_promise_p (entry)))
         {
           Font_metric *fm = Font_metric::unsmob (scm_force (entry));
           size = fm->design_size ();
index 4e11cc1feb9b0fa5e910a29ba6b61b998368545d..d5fe89024cd2fa7c0cce49968a74f665d8465795 100644 (file)
@@ -89,7 +89,7 @@ LY_DEFINE (ly_gulp_file, "ly:gulp-file",
 {
   LY_ASSERT_TYPE (scm_is_string, name, 1);
   int sz = INT_MAX;
-  if (size != SCM_UNDEFINED)
+  if (!SCM_UNBNDP (size))
     {
       LY_ASSERT_TYPE (scm_is_number, size, 2);
       sz = scm_to_int (size);
@@ -128,10 +128,10 @@ LY_DEFINE (ly_assoc_get, "ly:assoc-get",
   if (scm_is_pair (handle))
     return scm_cdr (handle);
 
-  if (default_value == SCM_UNDEFINED)
+  if (SCM_UNBNDP (default_value))
     default_value = SCM_BOOL_F;
 
-  if (strict_checking == SCM_BOOL_T)
+  if (to_boolean (strict_checking))
     {
       string key_string = ly_scm2string
                           (scm_object_to_string (key, SCM_UNDEFINED));
@@ -223,7 +223,7 @@ LY_DEFINE (ly_number_2_string, "ly:number->string",
 
   char str[400];                        // ugh.
 
-  if (scm_exact_p (s) == SCM_BOOL_F)
+  if (scm_is_false (scm_exact_p (s)))
     {
       Real r (scm_to_double (s));
       if (isinf (r) || isnan (r))
@@ -368,7 +368,7 @@ LY_DEFINE (ly_chain_assoc_get, "ly:chain-assoc-get",
         return ly_chain_assoc_get (key, scm_cdr (achain), default_value);
     }
 
-  if (strict_checking == SCM_BOOL_T)
+  if (to_boolean (strict_checking))
     {
       string key_string = ly_scm2string
                           (scm_object_to_string (key, SCM_UNDEFINED));
@@ -381,7 +381,7 @@ LY_DEFINE (ly_chain_assoc_get, "ly:chain-assoc-get",
                          + default_value_string + "'.");
     }
 
-  return default_value == SCM_UNDEFINED ? SCM_BOOL_F : default_value;
+  return SCM_UNBNDP (default_value) ? SCM_BOOL_F : default_value;
 }
 
 LY_DEFINE (ly_stderr_redirect, "ly:stderr-redirect",
@@ -471,7 +471,7 @@ LY_DEFINE (ly_truncate_list_x, "ly:truncate-list!",
 string
 format_single_argument (SCM arg, int precision, bool escape = false)
 {
-  if (scm_is_integer (arg) && scm_exact_p (arg) == SCM_BOOL_T)
+  if (scm_is_integer (arg) && scm_is_true (scm_exact_p (arg)))
     return (String_convert::int_string (scm_to_int (arg)));
   else if (scm_is_number (arg))
     {
@@ -570,11 +570,11 @@ LY_DEFINE (ly_format, "ly:format",
               for (; scm_is_pair (s); s = scm_cdr (s))
                 {
                   results.push_back (format_single_argument (scm_car (s), precision));
-                  if (scm_cdr (s) != SCM_EOL)
+                  if (!scm_is_null (scm_cdr (s)))
                     results.push_back (" ");
                 }
 
-              if (s != SCM_EOL)
+              if (!scm_is_null (s))
                 results.push_back (format_single_argument (s, precision));
 
             }
index 35ff94228a8912e0a35eb1cc984fcb7fc3a801f9..c7744d1f4b2db3288cbbb252f12ccd0e4b9d4824 100644 (file)
@@ -110,7 +110,7 @@ Glissando_engraver::acknowledge_note_column (Grob_info info)
     {
       extract_grob_set (g, "note-heads", note_heads);
       SCM map = get_property ("glissandoMap");
-      if (map == SCM_EOL)
+      if (scm_is_null (map))
         for (vsize i = 0; i < note_heads.size (); i++)
           {
             note_column_1.push_back (i);
index 6c99c849ed804805283c213573e411dc487606c9..ea9b81ad9f9dc666e79998901dead9b5f731e814 100644 (file)
@@ -48,7 +48,7 @@ SCM add_interface (char const *cxx_name,
 void
 check_interfaces_for_property (Grob const *me, SCM sym)
 {
-  if (sym == ly_symbol2scm ("meta"))
+  if (scm_is_eq (sym, ly_symbol2scm ("meta")))
     {
       /*
         otherwise we get in a nasty recursion loop.
@@ -63,7 +63,7 @@ check_interfaces_for_property (Grob const *me, SCM sym)
   for (; !found && scm_is_pair (ifs); ifs = scm_cdr (ifs))
     {
       SCM iface = scm_hashq_ref (all_ifaces, scm_car (ifs), SCM_BOOL_F);
-      if (iface == SCM_BOOL_F)
+      if (scm_is_false (iface))
         {
           string msg = to_string (_f ("Unknown interface `%s'",
                                       ly_symbol2string (scm_car (ifs)).c_str ()));
@@ -71,7 +71,7 @@ check_interfaces_for_property (Grob const *me, SCM sym)
           continue;
         }
 
-      found = found || (scm_c_memq (sym, scm_caddr (iface)) != SCM_BOOL_F);
+      found = found || scm_is_true (scm_c_memq (sym, scm_caddr (iface)));
     }
 
   if (!found)
index 9c6590c5ec1f613c76c71fdf89bc729cdfd250e0..1c755bf7b08ece8a52b194ffddcdcb881102e77d 100644 (file)
@@ -125,7 +125,7 @@ Grob::internal_set_value_on_alist (SCM *alist, SCM sym, SCM v)
       if (!ly_is_procedure (v)
           && !Simple_closure::is_smob (v)
           && !Unpure_pure_container::is_smob (v)
-          && v != ly_symbol2scm ("calculation-in-progress"))
+          && !scm_is_eq (v, ly_symbol2scm ("calculation-in-progress")))
         type_check_assignment (sym, v, ly_symbol2scm ("backend-type?"));
 
       check_interfaces_for_property (this, sym);
@@ -143,7 +143,7 @@ Grob::internal_get_property_data (SCM sym) const
 #endif
 
   SCM handle = scm_sloppy_assq (sym, mutable_property_alist_);
-  if (handle != SCM_BOOL_F)
+  if (scm_is_true (handle))
     return scm_cdr (handle);
 
   handle = scm_sloppy_assq (sym, immutable_property_alist_);
@@ -158,7 +158,7 @@ Grob::internal_get_property_data (SCM sym) const
       check_interfaces_for_property (this, sym);
     }
 
-  return (handle == SCM_BOOL_F) ? SCM_EOL : scm_cdr (handle);
+  return scm_is_false (handle) ? SCM_EOL : scm_cdr (handle);
 }
 
 SCM
@@ -167,7 +167,7 @@ Grob::internal_get_property (SCM sym) const
   SCM val = get_property_data (sym);
 
 #ifndef NDEBUG
-  if (val == ly_symbol2scm ("calculation-in-progress"))
+  if (scm_is_eq (val, ly_symbol2scm ("calculation-in-progress")))
     {
       programming_error (to_string ("cyclic dependency: calculation-in-progress encountered for #'%s (%s)",
                                     ly_symbol2string (sym).c_str (),
@@ -252,11 +252,11 @@ Grob::try_callback_on_alist (SCM *alist, SCM sym, SCM proc)
     grob_property_callback_stack = scm_cdr (grob_property_callback_stack);
 #endif
 
-  if (value == SCM_UNSPECIFIED)
+  if (scm_is_eq (value, SCM_UNSPECIFIED))
     {
       value = get_property_data (sym);
-      assert (value == SCM_EOL || value == marker);
-      if (value == marker)
+      assert (scm_is_null (value) || scm_is_eq (value, marker));
+      if (scm_is_eq (value, marker))
         *alist = scm_assq_remove_x (*alist, sym);
     }
   else
@@ -300,7 +300,7 @@ Grob::internal_get_object (SCM sym) const
 
   SCM s = scm_sloppy_assq (sym, object_alist_);
 
-  if (s != SCM_BOOL_F)
+  if (scm_is_true (s))
     {
       SCM val = scm_cdr (s);
       if (ly_is_procedure (val)
@@ -326,7 +326,7 @@ Grob::is_live () const
 bool
 Grob::internal_has_interface (SCM k)
 {
-  return scm_c_memq (k, interfaces_) != SCM_BOOL_F;
+  return scm_is_true (scm_c_memq (k, interfaces_));
 }
 
 SCM
index 238a0af7518189024210bda07cc9ee70aa515c40..2a42439fb58a90b5a78c191a393994c5b8d88497 100644 (file)
@@ -94,11 +94,11 @@ LY_DEFINE (ly_grob_pure_property, "ly:grob-pure-property",
   LY_ASSERT_TYPE (ly_is_symbol, sym, 2);
   LY_ASSERT_TYPE (scm_is_integer, beg, 3);
   LY_ASSERT_TYPE (scm_is_integer, end, 4);
-  if (val == SCM_UNDEFINED)
+  if (SCM_UNBNDP (val))
     val = SCM_EOL;
 
   SCM retval = sc->internal_get_pure_property (sym, scm_to_int (beg), scm_to_int (end));
-  if (retval == SCM_EOL)
+  if (scm_is_null (retval))
     retval = val;
 
   return retval;
@@ -117,7 +117,7 @@ LY_DEFINE (ly_grob_pure_height, "ly:grob-pure-height",
   LY_ASSERT_SMOB (Grob, refp, 2);
   LY_ASSERT_TYPE (scm_is_integer, beg, 3);
   LY_ASSERT_TYPE (scm_is_integer, end, 4);
-  if (val == SCM_UNDEFINED)
+  if (SCM_UNBNDP (val))
     val = SCM_EOL;
 
   Interval retval = sc->pure_height (ref, scm_to_int (beg), scm_to_int (end));
@@ -135,11 +135,11 @@ LY_DEFINE (ly_grob_property, "ly:grob-property",
 
   LY_ASSERT_SMOB (Grob, grob, 1);
   LY_ASSERT_TYPE (ly_is_symbol, sym, 2);
-  if (val == SCM_UNDEFINED)
+  if (SCM_UNBNDP (val))
     val = SCM_EOL;
 
   SCM retval = sc->get_property (sym);
-  if (retval == SCM_EOL)
+  if (scm_is_null (retval))
     retval = val;
 
   return retval;
@@ -206,10 +206,10 @@ LY_DEFINE (ly_grob_alist_chain, "ly:grob-alist-chain",
 
   LY_ASSERT_SMOB (Grob, grob, 1);
 
-  if (global == SCM_UNDEFINED)
+  if (SCM_UNBNDP (global))
     {
       global = sc->layout ()->lookup_variable (ly_symbol2scm ("font-defaults"));
-      if (global == SCM_UNDEFINED)
+      if (SCM_UNBNDP (global))
         global = SCM_EOL;
     }
 
index 660a34d07243c7d5296cfcb73a3f9a9d51d9f7c1..99d027f2f3bbbc521e67c0865953375eb480803d 100644 (file)
@@ -75,17 +75,17 @@ Grob::Grob (SCM basicprops)
         }
     }
 
-  if (get_property_data ("X-extent") == SCM_EOL)
+  if (scm_is_null (get_property_data ("X-extent")))
     set_property ("X-extent", Grob::stencil_width_proc);
-  if (get_property_data ("Y-extent") == SCM_EOL)
+  if (scm_is_null (get_property_data ("Y-extent")))
     set_property ("Y-extent",
                   Unpure_pure_container::make_smob (Grob::stencil_height_proc,
                                                     Grob::pure_stencil_height_proc));
-  if (get_property_data ("vertical-skylines") == SCM_EOL)
+  if (scm_is_null (get_property_data ("vertical-skylines")))
     set_property ("vertical-skylines",
                   Unpure_pure_container::make_smob (Grob::simple_vertical_skylines_from_extents_proc,
                                                     Grob::pure_simple_vertical_skylines_from_extents_proc));
-  if (get_property_data ("horizontal-skylines") == SCM_EOL)
+  if (scm_is_null (get_property_data ("horizontal-skylines")))
     set_property ("horizontal-skylines",
                   Unpure_pure_container::make_smob (Grob::simple_horizontal_skylines_from_extents_proc,
                                                     Grob::pure_simple_horizontal_skylines_from_extents_proc));
index 5fc1c8e7dd45a57a71985a307c7257b3151ff754..355bd58139b8474955b6f914846de20bdb875fb3 100644 (file)
@@ -88,7 +88,7 @@ scm_or_str2symbol (SCM s)
     SCM value = cached;                                                 \
     if (__builtin_constant_p ((x)))                                     \
       {                                                                 \
-        if (!cached)                                                    \
+        if (!SCM_UNPACK (cached))                                       \
           value = cached = scm_gc_protect_object (scm_or_str2symbol (x)); \
       }                                                                 \
     else                                                                \
@@ -111,7 +111,7 @@ inline SCM ly_symbol2scm (char const *x) { return scm_from_utf8_symbol ((x)); }
     SCM value = cached;                                                 \
     if (__builtin_constant_p ((x)))                                     \
       {                                                                 \
-        if (!cached)                                                    \
+        if (!SCM_UNPACK (cached))                                       \
           value = cached =                                              \
             scm_variable_ref (scm_c_module_lookup (global_lily_module, (x))); \
       }                                                                 \
index 38709a14c541b2d55a02b4c7e2c32de1a7a32f3f..b7cfabd675d9e9f435146b91ad35cc1671d33de7 100644 (file)
@@ -99,7 +99,7 @@ SCM ly_hash_table_keys (SCM tab);
 SCM ly_assoc_prepend_x (SCM alist, SCM key, SCM val);
 
 inline bool ly_is_list (SCM x) { return scm_is_true (scm_list_p (x)); }
-inline bool ly_cheap_is_list (SCM x) { return scm_is_pair (x) || x == SCM_EOL; }
+inline bool ly_cheap_is_list (SCM x) { return scm_is_pair (x) || scm_is_null (x); }
 inline bool ly_is_procedure (SCM x) { return scm_is_true (scm_procedure_p (x)); }
 inline bool ly_is_port (SCM x) { return scm_is_true (scm_port_p (x)); }
 
index 41c68a5a14c099f974d57db6054e92c8dfd51d63..f65c2958332f664eae2e091e4e4bc1ec25672f93 100644 (file)
@@ -89,8 +89,8 @@ Instrument_name_engraver::consider_start_spanner ()
   if ((Text_interface::is_markup (long_text)
        || Text_interface::is_markup (short_text))
       && (!text_spanner_
-          || short_text_ != short_text
-          || long_text_ != long_text))
+          || !scm_is_eq (short_text_, short_text)
+          || !scm_is_eq (long_text_, long_text)))
     {
       if (text_spanner_)
         stop_spanner ();
index 72ed8ad51075610c1bfc3d6d391454e248ee390d..971f55317295e8a56387a6f508dc8a41f20cd96a 100644 (file)
@@ -82,7 +82,7 @@ Key_engraver::create_key (bool is_default)
       SCM key = get_property ("keyAlterations");
 
       if ((to_boolean (get_property ("printKeyCancellation"))
-           || key == SCM_EOL)
+           || scm_is_null (key))
           && !scm_is_eq (last, key))
         {
           SCM restore = SCM_EOL;
@@ -90,7 +90,7 @@ Key_engraver::create_key (bool is_default)
             {
               SCM new_alter_pair = scm_assoc (scm_caar (s), key);
               Rational old_alter = robust_scm2rational (scm_cdar (s), 0);
-              if (new_alter_pair == SCM_BOOL_F
+              if (scm_is_false (new_alter_pair)
                   || ((ly_scm2rational (scm_cdr (new_alter_pair)) - old_alter) * old_alter
                       < Rational (0)))
                 {
index 1dd9554d025b43540c1fbf9c62a0ecbbe9ba2b6a..775cbdde0f831fc359ccde97e9b87ca2f713db40 100644 (file)
@@ -30,9 +30,9 @@
 /*
   backup rules
 
-  after making a change to the lexer rules, run 
+  after making a change to the lexer rules, run
       flex -b <this lexer file>
-  and make sure that 
+  and make sure that
       lex.backup
   contains no backup states, but only the reminder
       Compressed tables always back up.
@@ -119,7 +119,7 @@ SCM (* scm_parse_error_handler) (void *);
 %option debug
 %option yyclass="Lily_lexer"
 %option stack
-%option never-interactive 
+%option never-interactive
 %option warn
 
 %x chords
@@ -346,7 +346,7 @@ BOM_UTF8    \357\273\277
                yy_pop_state ();
        } else {
                LexerError (_ ("string expected after \\include").c_str ());
-               if (sval != SCM_UNDEFINED) {
+               if (!SCM_UNBNDP (sval)) {
                        SCM err = scm_current_error_port ();
                        scm_puts ("This value was found instead: ", err);
                        scm_display (sval, err);
@@ -387,7 +387,7 @@ BOM_UTF8    \357\273\277
        hi.step_forward ();
        SCM sval = ly_parse_scm (hi, be_safe_global && is_main_input_, parser_);
 
-       if (sval == SCM_UNDEFINED)
+       if (SCM_UNBNDP (sval))
                error_level_ = 1;
 
        int n = hi.end () - hi.start ();
@@ -809,7 +809,7 @@ BOM_UTF8    \357\273\277
 
 %%
 
-/* Make the lexer generate a token of the given type as the next token. 
+/* Make the lexer generate a token of the given type as the next token.
  TODO: make it possible to define a value for the token as well */
 void
 Lily_lexer::push_extra_token (Input const &where, int token_type, SCM scm)
@@ -918,10 +918,10 @@ Lily_lexer::scan_escaped_word (const string &str)
                m->set_spot (override_input (here_input ()));
        }
 
-       if (sid != SCM_UNDEFINED)
+       if (!SCM_UNBNDP (sid))
                return scan_scm_id (sid);
 
-       string msg (_f ("unknown escaped string: `\\%s'", str));        
+       string msg (_f ("unknown escaped string: `\\%s'", str));
        LexerError (msg.c_str ());
 
        yylval = ly_string2scm (str);
@@ -938,10 +938,10 @@ Lily_lexer::scan_shorthand (const string &str)
                m->set_spot (override_input (here_input ()));
        }
 
-       if (sid != SCM_UNDEFINED)
+       if (!SCM_UNBNDP (sid))
                return scan_scm_id (sid);
 
-       string msg (_f ("undefined character or shorthand: %s", str));  
+       string msg (_f ("undefined character or shorthand: %s", str));
        LexerError (msg.c_str ());
 
        yylval = ly_string2scm (str);
@@ -985,7 +985,7 @@ Lily_lexer::scan_scm_id (SCM sid)
                                optional = SCM_CDR (cs);
                                cs = SCM_CAR (cs);
                        }
-                       
+
                        if (ly_is_procedure (cs))
                                push_extra_token (here_input (), EXPECT_SCM, cs);
                        else
@@ -1010,7 +1010,7 @@ Lily_lexer::scan_bare_word (const string &str)
                SCM handle = SCM_BOOL_F;
                if (scm_is_pair (pitchname_tab_stack_))
                        handle = scm_hashq_get_handle (scm_cdar (pitchname_tab_stack_), sym);
-               
+
                if (scm_is_pair (handle)) {
                        yylval = scm_cdr (handle);
                        if (Pitch::is_smob (yylval))
@@ -1019,7 +1019,7 @@ Lily_lexer::scan_bare_word (const string &str)
                            return DRUM_PITCH;
                }
                else if ((YYSTATE == chords)
-                       && (handle = scm_hashq_get_handle (chordmodifier_tab_, sym))!= SCM_BOOL_F)
+                       && scm_is_true (handle = scm_hashq_get_handle (chordmodifier_tab_, sym)))
                {
                    yylval = scm_cdr (handle);
                    return CHORD_MODIFIER;
@@ -1100,7 +1100,7 @@ Lily_lexer::eval_scm (SCM readerdata, Input hi, char extra_token)
                                        if (!Input::is_smob (m->get_property ("origin")))
                                                m->set_spot (override_input (here_input ()));
                                }
-                                       
+
                                int token;
                                switch (extra_token) {
                                case '$':
@@ -1240,7 +1240,7 @@ Lily_lexer::YYText_utf8 ()
 
 /*
  urg, belong to string (_convert)
- and should be generalised 
+ and should be generalised
  */
 void
 strip_leading_white (string&s)
@@ -1256,8 +1256,8 @@ strip_leading_white (string&s)
 void
 strip_trailing_white (string&s)
 {
-       ssize i = s.length ();  
-       while (i--) 
+       ssize i = s.length ();
+       while (i--)
                if (!isspace (s[i]))
                        break;
 
@@ -1280,7 +1280,7 @@ is_valid_version (string s)
          return false;
   }
   if (ver < oldest_version)
-       {       
+       {
                non_fatal_error (_f ("file too old: %s (oldest supported: %s)", ver.to_string (), oldest_version.to_string ()));
                non_fatal_error (_ ("consider updating the input with the convert-ly script"));
                return false;
@@ -1293,7 +1293,7 @@ is_valid_version (string s)
        }
   return true;
 }
-       
+
 
 /*
   substitute _
index 4fde7110559cf570ee823dc37e021dcbfc0324aa..b647e02edddf16fec3772f1ede8e2e45ea27ac94 100644 (file)
@@ -203,7 +203,7 @@ Ligature_engraver::acknowledge_ligature_head (Grob_info info)
   if (ligature_)
     {
       primitives_.push_back (info);
-      if (info.grob () && brew_ligature_primitive_proc != SCM_EOL)
+      if (info.grob () && !scm_is_null (brew_ligature_primitive_proc))
         info.grob ()->set_property ("stencil", brew_ligature_primitive_proc);
     }
 }
index dce87608364bfd17b449a860b1864c65772dbd8a..6f7bf37f709f072594426b884827e0e2cd9b2515 100644 (file)
@@ -401,13 +401,13 @@ type_check_assignment (SCM sym, SCM val, SCM type_symbol)
 {
 
   // If undefined, some internal function caused it...should never happen.
-  assert (val != SCM_UNDEFINED);
+  assert (!SCM_UNBNDP (val));
   if (!scm_is_symbol (sym))
     return false;
 
   SCM type = scm_object_property (sym, type_symbol);
 
-  if (type != SCM_EOL && !ly_is_procedure (type))
+  if (!scm_is_null (type) && !ly_is_procedure (type))
     {
       warning (_f ("cannot find property type-check for `%s' (%s).",
                    ly_symbol2string (sym).c_str (),
@@ -429,16 +429,16 @@ type_check_assignment (SCM sym, SCM val, SCM type_symbol)
 
     TODO: should remove #f from allowed vals?
   */
-  if (val == SCM_EOL || val == SCM_BOOL_F)
+  if (scm_is_null (val) || scm_is_false (val))
     return true;
 
-  if (val != SCM_EOL
+  if (!scm_is_null (val)
       && ly_is_procedure (type)
-      && scm_call_1 (type, val) == SCM_BOOL_F)
+      && scm_is_false (scm_call_1 (type, val)))
     {
       SCM typefunc = ly_lily_module_constant ("type-name");
       SCM type_name = scm_call_1 (typefunc, type);
-      
+
       warning (_f ("type check for `%s' failed; value `%s' must be of type `%s'",
                    ly_symbol2string (sym).c_str (),
                    print_scm_val (val),
@@ -564,7 +564,7 @@ robust_scm2string (SCM k, const string &s)
 int
 robust_scm2int (SCM k, int o)
 {
-  if (scm_integer_p (k) == SCM_BOOL_T)
+  if (scm_is_integer (k))
     o = scm_to_int (k);
   return o;
 }
@@ -572,7 +572,7 @@ robust_scm2int (SCM k, int o)
 vsize
 robust_scm2vsize (SCM k, vsize o)
 {
-  if (scm_integer_p (k) == SCM_BOOL_T)
+  if (scm_is_integer (k))
     {
       int i = scm_to_int (k);
       if (i >= 0)
index 6c118979ae39e4dca10bbd01e9926985129ffd07..3bb7921b2b89d9d5356ec8e4c80edb0f8d177f20 100644 (file)
@@ -209,7 +209,7 @@ Lily_lexer::lookup_identifier_symbol (SCM sym)
   for (SCM s = scopes_; scm_is_pair (s); s = scm_cdr (s))
     {
       SCM var = ly_module_lookup (scm_car (s), sym);
-      if (var != SCM_BOOL_F)
+      if (scm_is_true (var))
         return scm_variable_ref (var);
     }
 
@@ -281,7 +281,7 @@ Lily_lexer::set_identifier (SCM path, SCM val)
       if (scm_is_pair (path))
         {
           SCM prev = ly_module_lookup (mod, sym);
-          if (prev != SCM_BOOL_F)
+          if (scm_is_true (prev))
             val = nested_property_alist (scm_variable_ref (prev), path, val);
         }
       scm_module_define (mod, sym, val);
index 8aedecbb0f570bcd6dd9bc3b2f0408f888091f09..806cc62fd61cfa0facaefe1b8f8599d05b4cdb22 100644 (file)
@@ -50,8 +50,8 @@ LY_DEFINE (ly_parse_file, "ly:parse-file",
 
   out_file_name.ext_ = "";
   out_file_name.root_ = "";
-  if (ly_get_option (ly_symbol2scm ("gui")) != SCM_BOOL_T
-      && ly_get_option (ly_symbol2scm ("strip-output-dir")) == SCM_BOOL_T)
+  if (!to_boolean (ly_get_option (ly_symbol2scm ("gui")))
+      && to_boolean (ly_get_option (ly_symbol2scm ("strip-output-dir"))))
     {
       out_file_name.dir_ = "";
     }
@@ -190,7 +190,7 @@ LY_DEFINE (ly_parser_lookup, "ly:parser-lookup",
   LY_ASSERT_TYPE (ly_is_symbol, symbol, 2);
 
   SCM val = parser->lexer_->lookup_identifier (ly_symbol2string (symbol));
-  if (val != SCM_UNDEFINED)
+  if (!SCM_UNBNDP (val))
     return val;
   else
     return SCM_EOL;
index 35e030951043bd2c4218d2c5c96b15ea5ad2858e..2d006f8d788894fe0c8b4407a16279d18c78a757 100644 (file)
@@ -242,7 +242,7 @@ Output_def *
 get_paper (Lily_parser *parser)
 {
   SCM papers = parser->lexer_->lookup_identifier ("$papers");
-  Output_def *layout = ((papers == SCM_UNDEFINED) || scm_is_null (papers))
+  Output_def *layout = (SCM_UNBNDP (papers) || scm_is_null (papers))
                        ? 0 : Output_def::unsmob (scm_car (papers));
   SCM default_paper = parser->lexer_->lookup_identifier ("$defaultpaper");
   layout = layout ? layout : Output_def::unsmob (default_paper);
index 30b1216f808558f8549329e45bcdf6a594d5980f..056587a1d9863f3049a207d66ff4d0cee2b13e8e 100644 (file)
@@ -200,20 +200,21 @@ Line_interface::line (Grob *me, Offset from, Offset to)
                * robust_scm2double (me->get_property ("thickness"), 1);
 
   SCM type = me->get_property ("style");
-  if (type == ly_symbol2scm ("zigzag"))
+  if (scm_is_eq (type, ly_symbol2scm ("zigzag")))
     return make_zigzag_line (me, from, to);
-  else if (type == ly_symbol2scm ("trill"))
+  else if (scm_is_eq (type, ly_symbol2scm ("trill")))
     return make_trill_line (me, from, to);
-  else if (type == ly_symbol2scm ("none"))
+  else if (scm_is_eq (type, ly_symbol2scm ("none")))
     return Stencil ();
 
   Stencil stencil;
 
-  if (type == ly_symbol2scm ("dashed-line") || type == ly_symbol2scm ("dotted-line"))
+  if (scm_is_eq (type, ly_symbol2scm ("dashed-line"))
+      || scm_is_eq (type, ly_symbol2scm ("dotted-line")))
     {
 
       Real fraction
-        = type == ly_symbol2scm ("dotted-line")
+        = scm_is_eq (type, ly_symbol2scm ("dotted-line"))
           ? 0.0
           : robust_scm2double (me->get_property ("dash-fraction"), 0.4);
 
index 5184d396a6ce84745599032c0cebdb4db8e86276..9b0e2bf33b7c587b98d8789432a9170da18003aa 100644 (file)
@@ -64,7 +64,7 @@ Line_spanner::calc_bound_info (SCM smob, Direction dir)
   SCM bound_details = me->get_property ("bound-details");
 
   SCM details = SCM_BOOL_F;
-  if (details == SCM_BOOL_F)
+  if (scm_is_false (details))
     details = ly_assoc_get ((dir == LEFT)
                             ? ly_symbol2scm ("left")
                             : ly_symbol2scm ("right"), bound_details, SCM_BOOL_F);
@@ -78,7 +78,7 @@ Line_spanner::calc_bound_info (SCM smob, Direction dir)
       details = scm_append (scm_list_2 (extra, details));
     }
 
-  if (details == SCM_BOOL_F)
+  if (scm_is_false (details))
     details = ly_assoc_get (ly_symbol2scm ("default"), bound_details, SCM_EOL);
 
   SCM text = ly_assoc_get (ly_symbol2scm ("text"), details, SCM_BOOL_F);
@@ -246,7 +246,7 @@ Line_spanner::calc_left_bound_info_and_text (SCM smob)
   SCM text = me->get_property ("text");
   if (Text_interface::is_markup (text)
       && me->get_bound (LEFT)->break_status_dir () == CENTER
-      && ly_assoc_get (ly_symbol2scm ("stencil"), alist, SCM_BOOL_F) == SCM_BOOL_F)
+      && scm_is_false (ly_assoc_get (ly_symbol2scm ("stencil"), alist, SCM_BOOL_F)))
     {
       Output_def *layout = me->layout ();
       SCM properties = Font_interface::text_font_alist_chain (me);
index 2b91e8583ec8b81633a2814c8ebd7a1c5b918ba4..3a3f39450c84951ed494376fbdaca901daee7da2 100644 (file)
@@ -100,7 +100,7 @@ entry_to_alist (void * /* closure */,
                 SCM val,
                 SCM result)
 {
-  if (scm_variable_bound_p (val) == SCM_BOOL_T)
+  if (to_boolean (scm_variable_bound_p (val)))
     return scm_cons (scm_cons (key, scm_variable_ref (val)), result);
   programming_error ("unbound variable in module");
   return result;
index 6eb7ee321de0054f6838d79f1725b81d4e229f6c..52a68359534fced1677bf1088d46d763ff7af96b 100644 (file)
@@ -140,8 +140,8 @@ Mark_engraver::process_music ()
           if (!scm_is_number (m))
             m = get_property ("rehearsalMark");
 
-          if (scm_integer_p (m) == SCM_BOOL_T
-              && scm_exact_p (m) == SCM_BOOL_T)
+          if (scm_is_integer (m)
+              && scm_is_true (scm_exact_p (m)))
             {
               int mark_count = scm_to_int (m);
               mark_count++;
index ab1618a37d2f467436ddba60f474329a6d890d74..050cc465f6dc7b55e03a1db1b88cde74870ed577 100644 (file)
@@ -48,9 +48,9 @@ Measure_grouping::print (SCM grob)
   /*
     TODO: use line interface
   */
-  if (which == ly_symbol2scm ("bracket"))
+  if (scm_is_eq (which, ly_symbol2scm ("bracket")))
     m = Lookup::bracket (X_AXIS, iv, t, -height, t);
-  else if (which == ly_symbol2scm ("triangle"))
+  else if (scm_is_eq (which, ly_symbol2scm ("triangle")))
     m = Lookup::triangle (iv, t, height);
 
   m.align_to (Y_AXIS, DOWN);
index 036ce027af733d9e8e8f33d6f572ef1a5e4f87b1..42f5270cc53ce67573ac83d03647d5a1c16a0331 100644 (file)
@@ -117,7 +117,7 @@ Stencil
 internal_brew_primitive (Grob *me)
 {
   SCM primitive_scm = me->get_property ("primitive");
-  if (primitive_scm == SCM_EOL)
+  if (scm_is_null (primitive_scm))
     {
       programming_error ("Mensural_ligature:"
                          " undefined primitive -> ignoring grob");
index 841ae6df948037860786017fd85c8f4be13aa8b9..279f8f721cef5e99618f8792f0933de2e46c1638 100644 (file)
@@ -71,8 +71,7 @@ Metronome_mark_engraver::listen_tempo_change (Stream_event *ev)
 static bool
 safe_is_member (SCM scm, SCM lst)
 {
-  return scm_list_p (lst) == SCM_BOOL_T
-         && scm_member (scm, lst) != SCM_BOOL_F;
+  return ly_is_list (lst) && scm_is_true (scm_member (scm, lst));
 }
 
 void
@@ -81,8 +80,8 @@ Metronome_mark_engraver::acknowledge_break_aligned (Grob_info info)
   Grob *g = info.grob ();
 
   if (text_
-      && g->get_property ("break-align-symbol")
-      == ly_symbol2scm ("staff-bar"))
+      && scm_is_eq (g->get_property ("break-align-symbol"),
+                    ly_symbol2scm ("staff-bar")))
     bar_ = g;
   else if (text_
            && !support_
index b19527f5bfce7d05af94564d7f37fc8a8fe48e53..d85161676cc3943e42a669b56d88ba2e187c80c4 100644 (file)
@@ -86,7 +86,7 @@ Midi_instrument::to_string () const
 
   SCM proc = ly_lily_module_constant ("midi-program");
   SCM program = scm_call_1 (proc, ly_symbol2scm (audio_->str_.c_str ()));
-  found = (program != SCM_BOOL_F);
+  found = (scm_is_true (program));
   if (found)
     program_byte = (Byte) scm_to_int (program);
   else
index 67f642ec08dbcfd41adc007a0c36cba92846aea7..f926c44c0265e4992efb92a63b7f8886fe91d8c0 100644 (file)
@@ -34,7 +34,7 @@ module_define_closure_func (void *closure,
                             SCM /* result */)
 {
   SCM module = (SCM) closure;
-  if (scm_variable_bound_p (val) == SCM_BOOL_T)
+  if (to_boolean (scm_variable_bound_p (val)))
     scm_module_define (module, key, scm_variable_ref (val));
   return SCM_EOL;
 }
@@ -92,11 +92,11 @@ LY_DEFINE (ly_modules_lookup, "ly:modules-lookup",
     {
       SCM mod = scm_car (s);
       SCM v = ly_module_lookup (mod, sym);
-      if (SCM_VARIABLEP (v) && SCM_VARIABLE_REF (v) != SCM_UNDEFINED)
+      if (SCM_VARIABLEP (v) && !SCM_UNBNDP (SCM_VARIABLE_REF (v)))
         return scm_variable_ref (v);
     }
 
-  if (def != SCM_UNDEFINED)
+  if (!SCM_UNBNDP (def))
     return def;
   return SCM_BOOL_F;
 }
index f8a541cf6f1c6e99698f2fa82fb06a6fa255499e..045359f7e948e9715e9152f6e39df7896ac2fdf1 100644 (file)
@@ -132,7 +132,8 @@ Multi_measure_rest_engraver::process_music ()
               Grob *last = 0;
               for (vsize i = 0; i < numbers_.size (); i++)
                 {
-                  if (scm_from_int (d) == numbers_[i]->get_property ("direction"))
+                  if (scm_is_eq (scm_from_int (d),
+                                 numbers_[i]->get_property ("direction")))
                     {
                       if (last)
                         Side_position_interface::add_support (numbers_[i], last);
@@ -231,7 +232,7 @@ Multi_measure_rest_engraver::start_translation_timestep ()
       numbers_.clear ();
 
       Grob *last = last_numbers_.size () ? last_numbers_[0] : 0;
-      if (last && last->get_property ("text") == SCM_EOL)
+      if (last && scm_is_null (last->get_property ("text")))
         {
           SCM thres = get_property ("restNumberThreshold");
           int t = 1;
index e13d5bf17a33e799f8195879362d9efe3567b8f0..0321082a57dee37a98cb0cf1d540ddaef1c4ff32 100644 (file)
@@ -222,7 +222,7 @@ Multi_measure_rest::symbol_stencil (Grob *me, Real space)
 
   if (measure_count == 1)
     {
-      if (me->get_property ("staff-position") == SCM_EOL)
+      if (scm_is_null (me->get_property ("staff-position")))
         {
           int dir = get_grob_direction (me);
           Real pos = Rest::staff_position_internal (me, mdl, dir);
index 81f4a3d67f18e43b0ffb6038c38ea6c5a3556e33..6d8c9a281e480a70d010b3d75498206b6d5a7e5d 100644 (file)
@@ -41,7 +41,7 @@ Music::internal_is_music_type (SCM k) const
 {
   SCM ifs = get_property ("types");
 
-  return scm_c_memq (k, ifs) != SCM_BOOL_F;
+  return scm_is_true (scm_c_memq (k, ifs));
 }
 
 Music::Music (SCM init)
@@ -211,21 +211,21 @@ transpose_mutable (SCM alist, Pitch delta)
         {
           Pitch transposed = p->transposed (delta);
 
-          if (prop == ly_symbol2scm ("tonic"))
+          if (scm_is_eq (prop, ly_symbol2scm ("tonic")))
             transposed = Pitch (-1, transposed.get_notename (),
                                 transposed.get_alteration ());
 
           new_val = transposed.smobbed_copy ();
         }
-      else if (prop == ly_symbol2scm ("element"))
+      else if (scm_is_eq (prop, ly_symbol2scm ("element")))
         {
           if (Music *m = Music::unsmob (val))
             m->transpose (delta);
         }
-      else if (prop == ly_symbol2scm ("elements")
-               || prop == ly_symbol2scm ("articulations"))
+      else if (scm_is_eq (prop, ly_symbol2scm ("elements"))
+               || scm_is_eq (prop, ly_symbol2scm ("articulations")))
         transpose_music_list (val, delta);
-      else if (prop == ly_symbol2scm ("pitch-alist")
+      else if (scm_is_eq (prop, ly_symbol2scm ("pitch-alist"))
                && scm_is_pair (val))
         new_val = ly_transpose_key_alist (val, delta.smobbed_copy ());
 
index 55ff41ed4fea519165cd4c19c4d49362427d2f74..bcb7766a4cffeb685615f4fce86370b20034701b 100644 (file)
@@ -119,7 +119,7 @@ New_fingering_engraver::acknowledge_rhythmic_head (Grob_info inf)
           // when we don't want them displayed.  So don't make space
           // for them if 'stencil is #f
           Grob *g = make_item ("StringNumber", ev->self_scm ());
-          if (g->get_property ("stencil") != SCM_BOOL_F)
+          if (scm_is_true (g->get_property ("stencil")))
             add_fingering (inf.grob (),
                            ly_symbol2scm ("StringNumber"), &string_numbers_,
                            ev, note_ev);
@@ -230,10 +230,10 @@ New_fingering_engraver::position_scripts (SCM orientations,
 
   vector_sort (*scripts, less<Finger_tuple> ());
 
-  bool up_p = scm_c_memq (ly_symbol2scm ("up"), orientations) != SCM_BOOL_F;
-  bool down_p = scm_c_memq (ly_symbol2scm ("down"), orientations) != SCM_BOOL_F;
-  bool left_p = scm_c_memq (ly_symbol2scm ("left"), orientations) != SCM_BOOL_F;
-  bool right_p = scm_c_memq (ly_symbol2scm ("right"), orientations) != SCM_BOOL_F;
+  bool up_p = scm_is_true (scm_c_memq (ly_symbol2scm ("up"), orientations));
+  bool down_p = scm_is_true (scm_c_memq (ly_symbol2scm ("down"), orientations));
+  bool left_p = scm_is_true (scm_c_memq (ly_symbol2scm ("left"), orientations));
+  bool right_p = scm_is_true (scm_c_memq (ly_symbol2scm ("right"), orientations));
   Direction hordir = (right_p) ? RIGHT : LEFT;
   if (left_p || right_p)
     {
index 728f64dfaef591a41d8006099253404bc2d2e60d..6f205e3f22153dd4763d15e95247d93111566e73 100644 (file)
@@ -209,8 +209,10 @@ check_meshing_chords (Grob *me,
   SCM up_style = head_up->get_property ("style");
   SCM down_style = head_down->get_property ("style");
   if (merge_possible
-      && (up_style == ly_symbol2scm ("fa") || up_style == ly_symbol2scm ("faThin"))
-      && (down_style == ly_symbol2scm ("fa") || down_style == ly_symbol2scm ("faThin")))
+      && (scm_is_eq (up_style, ly_symbol2scm ("fa"))
+          || scm_is_eq (up_style, ly_symbol2scm ("faThin")))
+      && (scm_is_eq (down_style, ly_symbol2scm ("fa"))
+          || scm_is_eq (down_style, ly_symbol2scm ("faThin"))))
     {
       Offset att = Offset (0.0, -1.0);
       head_up->set_property ("stem-attachment", ly_offset2scm (att));
index 255d5e2b18ca8f36c1e30cc8bf15faf0ea2a6b6f..255f7caa0d1431e88e1c18eddb2c52284bbebca8 100644 (file)
@@ -162,7 +162,7 @@ Open_type_font::attachment_point (const string &glyph_name) const
   SCM entry = scm_hashq_ref (lily_character_table_, sym, SCM_BOOL_F);
 
   Offset o;
-  if (entry == SCM_BOOL_F)
+  if (scm_is_false (entry))
     return o;
 
   SCM char_alist = entry;
@@ -196,7 +196,7 @@ Open_type_font::get_indexed_char_dimensions (size_t signed_idx) const
       SCM sym = ly_symbol2scm (name);
       SCM alist = scm_hashq_ref (lily_character_table_, sym, SCM_BOOL_F);
 
-      if (alist != SCM_BOOL_F)
+      if (scm_is_true (alist))
         {
           SCM bbox = scm_cdr (scm_assq (ly_symbol2scm ("bbox"), alist));
 
index 0b85c133a8cf6cd32b1522fd7e590592ab7e0dd6..3c4ee413e7cc1a099b9f0501b5d99e2449c00ed4 100644 (file)
@@ -36,9 +36,9 @@ LY_DEFINE (ly_output_def_lookup, "ly:output-def-lookup",
   LY_ASSERT_TYPE (ly_is_symbol, sym, 2);
 
   SCM answer = op->lookup_variable (sym);
-  if (answer == SCM_UNDEFINED)
+  if (SCM_UNBNDP (answer))
     {
-      if (val == SCM_UNDEFINED)
+      if (SCM_UNBNDP (val))
        val = SCM_EOL;
 
       answer = val;
@@ -187,7 +187,7 @@ LY_DEFINE (ly_paper_fonts, "ly:paper-fonts",
   SCM tab2 = b->lookup_variable (ly_symbol2scm ("pango-fonts"));
 
   SCM alist1 = SCM_EOL;
-  if (scm_hash_table_p (tab1) == SCM_BOOL_T)
+  if (to_boolean (scm_hash_table_p (tab1)))
     {
       alist1 = scm_append (ly_alist_vals (ly_hash2alist (tab1)));
 
index b6a83212c162baef798e76f89bbd1c1868642045..af407fb70ac08465f87757fde59b59b2936db0de 100644 (file)
@@ -114,7 +114,7 @@ SCM
 Output_def::lookup_variable (SCM sym) const
 {
   SCM var = ly_module_lookup (scope_, sym);
-  if (SCM_VARIABLEP (var) && SCM_VARIABLE_REF (var) != SCM_UNDEFINED)
+  if (SCM_VARIABLEP (var) && !SCM_UNBNDP (SCM_VARIABLE_REF (var)))
     return SCM_VARIABLE_REF (var);
 
   if (parent_)
@@ -160,9 +160,9 @@ Output_def::normalize ()
                           ? c_variable ("inner-margin")
                           : c_variable ("right-margin"));
 
-  if (scm_paper_width == SCM_UNDEFINED
-      || scm_left_margin_default == SCM_UNDEFINED
-      || scm_right_margin_default == SCM_UNDEFINED)
+  if (SCM_UNBNDP (scm_paper_width)
+      || SCM_UNBNDP (scm_left_margin_default)
+      || SCM_UNBNDP (scm_right_margin_default))
     {
       programming_error ("called normalize () on paper with missing settings");
       return;
@@ -183,12 +183,12 @@ Output_def::normalize ()
   if (twosided)
     binding_offset = robust_scm2double (c_variable ("binding-offset"), 0);
 
-  if (scm_line_width == SCM_UNDEFINED)
+  if (SCM_UNBNDP (scm_line_width))
     {
-      left_margin = ((scm_left_margin == SCM_UNDEFINED)
+      left_margin = (SCM_UNBNDP (scm_left_margin)
                      ? left_margin_default
                      : scm_to_double (scm_left_margin));
-      right_margin = ((scm_right_margin == SCM_UNDEFINED)
+      right_margin = (SCM_UNBNDP (scm_right_margin)
                       ? right_margin_default
                       : scm_to_double (scm_right_margin)) + binding_offset;
       line_width = paper_width - left_margin - right_margin;
@@ -196,10 +196,10 @@ Output_def::normalize ()
   else
     {
       line_width = scm_to_double (scm_line_width);
-      if (scm_left_margin == SCM_UNDEFINED)
+      if (SCM_UNBNDP (scm_left_margin))
         {
           // Vertically center systems if only line-width is given
-          if (scm_right_margin == SCM_UNDEFINED)
+          if (SCM_UNBNDP (scm_right_margin))
             {
               left_margin = (paper_width - line_width) / 2;
               right_margin = left_margin;
@@ -213,7 +213,7 @@ Output_def::normalize ()
       else
         {
           left_margin = scm_to_double (scm_left_margin);
-          right_margin = ((scm_right_margin == SCM_UNDEFINED)
+          right_margin = (SCM_UNBNDP (scm_right_margin)
                            ? (paper_width - line_width - left_margin)
                            : scm_to_double (scm_right_margin)) + binding_offset;
         }
index 768cb79cc2150a88f81acdd04e7c09e719a9d64b..b23cd4637b04684c3b591762df9368593aeeccf8 100644 (file)
@@ -594,7 +594,7 @@ Page_breaking::make_pages (vector<vsize> lines_per_page, SCM systems)
   SCM ret = SCM_EOL;
   bool reset_footnotes_on_new_page = to_boolean (book_->top_paper ()->c_variable ("reset-footnotes-on-new-page"));
   SCM label_page_table = book_->top_paper ()->c_variable ("label-page-table");
-  if (label_page_table == SCM_UNDEFINED)
+  if (SCM_UNBNDP (label_page_table))
     label_page_table = SCM_EOL;
 
   // Build a list of (systems configuration . footnote-count) triples.
@@ -1133,7 +1133,7 @@ Page_breaking::min_page_count (vsize configuration, vsize first_page_num)
 
       if ((!too_few_lines (line_count) && (next_height > cur_page_height && cur_rod_height > 0))
           || too_many_lines (next_line_count)
-          || (prev && prev->page_permission_ == ly_symbol2scm ("force")))
+          || prev && scm_is_eq (prev->page_permission_, ly_symbol2scm ("force")))
         {
           line_count = cur.compressed_nontitle_lines_count_;
           cur_rod_height = cur.full_height ();
@@ -1332,7 +1332,7 @@ Page_breaking::space_systems_with_fixed_number_per_page (vsize configuration,
           system_count_on_this_page += cur_line.compressed_nontitle_lines_count_;
           line++;
 
-          if (cur_line.page_permission_ == ly_symbol2scm ("force"))
+          if (scm_is_eq (cur_line.page_permission_, ly_symbol2scm ("force")))
             break;
         }
 
@@ -1374,7 +1374,8 @@ Page_breaking::pack_systems_on_least_pages (vsize configuration, vsize first_pag
       if ((line > page_first_line)
           && (isinf (space.force_)
               || ((line > 0)
-                  && (cached_line_details_[line - 1].page_permission_ == ly_symbol2scm ("force")))))
+                  && scm_is_eq (cached_line_details_[line - 1].page_permission_,
+                                ly_symbol2scm ("force")))))
         {
           res.systems_per_page_.push_back (line - page_first_line);
           res.force_.push_back (prev_force);
@@ -1498,7 +1499,8 @@ Page_breaking::space_systems_on_2_pages (vsize configuration, vsize first_page_n
   /* if there is a forced break, this reduces to 2 1-page problems */
   cache_line_details (configuration);
   for (vsize i = 0; i + 1 < cached_line_details_.size (); i++)
-    if (cached_line_details_[i].page_permission_ == ly_symbol2scm ("force"))
+    if (scm_is_eq (cached_line_details_[i].page_permission_,
+        ly_symbol2scm ("force")))
       {
         vector<Line_details> lines1 (cached_line_details_.begin (), cached_line_details_.begin () + i + 1);
         vector<Line_details> lines2 (cached_line_details_.begin () + i + 1, cached_line_details_.end ());
index 426299f0ad08001f480890a5081de8a8e6bd8b8e..6fe02c8bad04b73080e1f6a123f7bbe534a6b321 100644 (file)
@@ -58,7 +58,7 @@ Page_layout_problem::get_footnote_grobs (SCM lines)
       else if (Prob *p = Prob::unsmob (scm_car (s)))
         {
           SCM stencils = p->get_property ("footnotes");
-          if (stencils == SCM_EOL)
+          if (scm_is_null (stencils))
             continue;
           for (SCM st = stencils; scm_is_pair (st); st = scm_cdr (st))
             footnotes.push_back (0);
index af7546f6717cb567245d76405c16fb765e529b0a..97c68a5e29ebae8d1ca48151568843940ea0d8b6 100644 (file)
@@ -388,7 +388,8 @@ Page_spacer::calc_subproblem (vsize page, vsize line)
         }
 
       if (page_start > 0
-          && lines_[page_start - 1].page_permission_ == ly_symbol2scm ("force"))
+          && scm_is_eq (lines_[page_start - 1].page_permission_,
+                        ly_symbol2scm ("force")))
         break;
     }
   return !isinf (cur.demerits_);
index 22d26371a0e3c2e6d2afc38e027f5264c48a9c8c..c658c0c94bbd4241c9aa8e9054cc2ac48f7415dc 100644 (file)
@@ -66,7 +66,7 @@ public:
     if (duration_[LEFT] < penalty.duration_[LEFT])
       ret.push_back (Page_turn_event (duration_[LEFT], penalty.duration_[LEFT], permission_, penalty_));
 
-    if (penalty.permission_ != SCM_EOL)
+    if (!scm_is_null (penalty.permission_))
       ret.push_back (Page_turn_event (intersect[LEFT], intersect[RIGHT], permission_, new_pen));
 
     if (penalty.duration_[RIGHT] < duration_[RIGHT])
@@ -229,9 +229,9 @@ Page_turn_engraver::stop_translation_timestep ()
   for (; scm_is_pair (cs); cs = scm_cdr (cs))
     {
       SCM command = scm_car (cs);
-      if (command == ly_symbol2scm ("start-repeat"))
+      if (scm_is_eq (command, ly_symbol2scm ("start-repeat")))
         start = true;
-      else if (command == ly_symbol2scm ("end-repeat"))
+      else if (scm_is_eq (command, ly_symbol2scm ("end-repeat")))
         end = true;
     }
 
@@ -265,9 +265,10 @@ Page_turn_engraver::stop_translation_timestep ()
 SCM
 Page_turn_engraver::max_permission (SCM perm1, SCM perm2)
 {
-  if (perm1 == SCM_EOL)
+  if (scm_is_null (perm1))
     return perm2;
-  if (perm1 == ly_symbol2scm ("allow") && perm2 == ly_symbol2scm ("force"))
+  if (scm_is_eq (perm1, ly_symbol2scm ("allow"))
+      && scm_is_eq (perm2, ly_symbol2scm ("force")))
     return perm2;
   return perm1;
 }
index e8f43b69469e4c4ad9a5e39511dd3ef3e0fd9387..09545020c482ca4277de5b888e96c6f31f1df3bc 100644 (file)
@@ -138,7 +138,8 @@ Page_turn_page_breaking::calc_subproblem (vsize ending_breakpoint)
   for (vsize start = end; start--;)
     {
       if (start < end - 1
-          && breakpoint_property (start + 1, "page-turn-permission") == ly_symbol2scm ("force"))
+          && scm_is_eq (breakpoint_property (start + 1, "page-turn-permission"),
+                        ly_symbol2scm ("force")))
         break;
 
       if (start > 0 && best.demerits_ < state_[start - 1].demerits_)
index 762e0842f3db9a6889ba8ebd85c9de99bd04944f..fcdf958cef2ff3c5c1737c33765aa2de1e60d574 100644 (file)
@@ -440,8 +440,8 @@ Pango_font::text_stencil (Output_def * /* state */,
         variable that is bound to a *named* procedure, i.e. not a
         lambda expression.
       */
-      if (utf8_string != SCM_BOOL_F
-          && scm_procedure_name (SCM_VARIABLE_REF (utf8_string)) != SCM_BOOL_F)
+      if (scm_is_true (utf8_string)
+          && scm_is_true (scm_procedure_name (SCM_VARIABLE_REF (utf8_string))))
         has_utf8_string = true;
     }
 
index a0cf0aaee3e8210ccb0155dfcccb6b2d385d72e5..8091e466eebf379681ab767df4e39ae3852d0c78 100644 (file)
@@ -80,10 +80,10 @@ PangoStyle
 symbol_to_pango_style (SCM style)
 {
   PangoStyle pstyle = PANGO_STYLE_NORMAL;
-  if (style == ly_symbol2scm ("italic"))
+  if (scm_is_eq (style, ly_symbol2scm ("italic")))
     pstyle = PANGO_STYLE_ITALIC;
-  else if (style == ly_symbol2scm ("oblique")
-           || style == ly_symbol2scm ("slanted"))
+  else if (scm_is_eq (style, ly_symbol2scm ("oblique"))
+           || scm_is_eq (style, ly_symbol2scm ("slanted")))
     pstyle = PANGO_STYLE_OBLIQUE;
 
   return pstyle;
@@ -93,7 +93,7 @@ PangoVariant
 symbol_to_pango_variant (SCM variant)
 {
   PangoVariant pvariant = PANGO_VARIANT_NORMAL;
-  if (variant == ly_symbol2scm ("caps"))
+  if (scm_is_eq (variant, ly_symbol2scm ("caps")))
     pvariant = PANGO_VARIANT_SMALL_CAPS;
   return pvariant;
 }
@@ -102,15 +102,15 @@ PangoWeight
 symbol_to_pango_weight (SCM weight)
 {
   PangoWeight pw = PANGO_WEIGHT_NORMAL;
-  if (weight == ly_symbol2scm ("bold"))
+  if (scm_is_eq (weight, ly_symbol2scm ("bold")))
     pw = PANGO_WEIGHT_BOLD;
-  if (weight == ly_symbol2scm ("heavy"))
+  if (scm_is_eq (weight, ly_symbol2scm ("heavy")))
     pw = PANGO_WEIGHT_HEAVY;
-  if (weight == ly_symbol2scm ("ultrabold"))
+  if (scm_is_eq (weight, ly_symbol2scm ("ultrabold")))
     pw = PANGO_WEIGHT_ULTRABOLD;
-  if (weight == ly_symbol2scm ("light"))
+  if (scm_is_eq (weight, ly_symbol2scm ("light")))
     pw = PANGO_WEIGHT_LIGHT;
-  if (weight == ly_symbol2scm ("ultralight"))
+  if (scm_is_eq (weight, ly_symbol2scm ("ultralight")))
     pw = PANGO_WEIGHT_ULTRALIGHT;
 
   return pw;
index 382577146fe1321f75cf765b1eaceebcad332865..7dce3a9507e7d48badcd24bca281f1f5578359ec 100644 (file)
@@ -139,7 +139,7 @@ Paper_book::output_aux (SCM output_channel,
     }
   else
     {
-      if (scores_ == SCM_EOL)
+      if (scm_is_null (scores_))
         return 0;
       paper_->set_variable (ly_symbol2scm ("first-page-number"),
                             scm_from_long (*first_page_number));
@@ -165,7 +165,7 @@ Paper_book::output (SCM output_channel)
      with different line-widths) and why we need it at all.
   */
 
-  if (paper_->c_variable ("line-width") == SCM_UNDEFINED)
+  if (SCM_UNBNDP (paper_->c_variable ("line-width")))
     paper_->set_variable (ly_symbol2scm ("line-width"),
                           paper_->c_variable ("paper-width"));
 
@@ -188,7 +188,7 @@ Paper_book::output (SCM output_channel)
       SCM framework = ly_module_lookup (mod,
                                         ly_symbol2scm ("output-framework"));
 
-      if (framework != SCM_BOOL_F)
+      if (scm_is_true (framework))
         {
           SCM func = scm_variable_ref (framework);
           scm_call_4 (func,
@@ -207,7 +207,7 @@ Paper_book::output (SCM output_channel)
       SCM framework
         = ly_module_lookup (mod, ly_symbol2scm ("output-preview-framework"));
 
-      if (framework != SCM_BOOL_F)
+      if (scm_is_true (framework))
         {
           SCM func = scm_variable_ref (framework);
           scm_call_4 (func,
@@ -444,7 +444,7 @@ Paper_book::get_system_specs ()
       if (ly_is_module (scm_car (s)))
         {
           header = scm_car (s);
-          if (header_0_ == SCM_EOL)
+          if (scm_is_null (header_0_))
             header_0_ = header;
         }
       else if (Page_marker *page_marker = Page_marker::unsmob (scm_car (s)))
@@ -560,7 +560,7 @@ Paper_book::get_system_specs ()
 SCM
 Paper_book::systems ()
 {
-  if (systems_ != SCM_BOOL_F)
+  if (scm_is_true (systems_))
     return systems_;
 
   systems_ = SCM_EOL;
@@ -610,9 +610,9 @@ Paper_book::systems ()
             {
               SCM perm = ps->get_property ("page-break-permission");
               Prob *next = Prob::unsmob (scm_cadr (s));
-              if (perm == SCM_EOL)
+              if (scm_is_null (perm))
                 next->set_property ("penalty", scm_from_int (10001));
-              else if (perm == ly_symbol2scm ("force"))
+              else if (scm_is_eq (perm, ly_symbol2scm ("force")))
                 next->set_property ("penalty", scm_from_int (-10001));
             }
         }
@@ -624,7 +624,7 @@ Paper_book::systems ()
 SCM
 Paper_book::pages ()
 {
-  if (SCM_BOOL_F != pages_)
+  if (scm_is_true (pages_))
     return pages_;
 
   pages_ = SCM_EOL;
@@ -653,7 +653,7 @@ Paper_book::pages ()
         scm_call_2 (post_process, paper_->self_scm (), pages_);
 
       /* set systems_ from the pages */
-      if (systems_ == SCM_BOOL_F)
+      if (scm_is_false (systems_))
         {
           systems_ = SCM_EOL;
           for (SCM p = pages_; scm_is_pair (p); p = scm_cdr (p))
index 68c4882904f3cd78c09a63351adfa91e4114dce3..a2d046b9fb16bbf3463d937a31de94639e4a182e 100644 (file)
@@ -259,7 +259,8 @@ Paper_column_engraver::stop_translation_timestep ()
       for (vsize i = 0; i < break_events_.size (); i++)
         {
           SCM perm = break_events_[i]->get_property ("break-permission");
-          if (perm == ly_symbol2scm ("force") || perm == ly_symbol2scm ("allow"))
+          if (scm_is_eq (perm, ly_symbol2scm ("force"))
+              || scm_is_eq (perm, ly_symbol2scm ("allow")))
             warning (_ ("forced break was overridden by some other event, "
                         "should you be using bar checks?"));
         }
index 4e1d68f5f8cb7c2c5bf97ef1976393676d86b6ca..155e37bdec40d1afa45c35d94d2497c7ac9cbecc 100644 (file)
@@ -198,11 +198,11 @@ Paper_column::break_align_width (Grob *me, SCM align_syms)
   for (;!align && scm_is_pair (align_syms); align_syms = scm_cdr (align_syms))
     {
       SCM align_sym = scm_car (align_syms);
-      if (align_sym == ly_symbol2scm ("staff-bar")
-          || align_sym == ly_symbol2scm ("break-alignment"))
+      if (scm_is_eq (align_sym, ly_symbol2scm ("staff-bar"))
+          || scm_is_eq (align_sym, ly_symbol2scm ("break-alignment")))
         align = Pointer_group_interface::find_grob
           (me, ly_symbol2scm ("elements"),
-           (align_sym == ly_symbol2scm ("staff-bar")
+           (scm_is_eq (align_sym, ly_symbol2scm ("staff-bar"))
             ? Bar_line::non_empty_barline
             : Break_alignment_interface::has_interface));
       else
index f997c9905d086f322650bcad6864c51a0c3859ee..3d473f202de9818bb54e48fb5c06bd960033d8ef 100644 (file)
@@ -34,7 +34,7 @@ SCM
 get_font_table (Output_def *def)
 {
   SCM font_table = def->lookup_variable (ly_symbol2scm ("scaled-fonts"));
-  if (scm_hash_table_p (font_table) != SCM_BOOL_T)
+  if (!to_boolean (scm_hash_table_p (font_table)))
     {
       font_table = scm_c_make_hash_table (11);
       def->set_variable (ly_symbol2scm ("scaled-fonts"), font_table);
@@ -46,7 +46,7 @@ SCM
 get_pango_font_table (Output_def *def)
 {
   SCM font_table = def->lookup_variable (ly_symbol2scm ("pango-fonts"));
-  if (scm_hash_table_p (font_table) != SCM_BOOL_T)
+  if (!to_boolean (scm_hash_table_p (font_table)))
     {
       font_table = scm_c_make_hash_table (11);
       def->set_variable (ly_symbol2scm ("pango-fonts"), font_table);
index 5ba03e95c78ee2e9a26477d5e30513f62ce038f5..269e1e294c1ceeb18a5edc69205deb06788d4cff 100644 (file)
@@ -118,7 +118,7 @@ Paper_outputter::output_stencil (Stencil stil)
 void
 Paper_outputter::close ()
 {
-  if (scm_port_p (file_) == SCM_BOOL_T)
+  if (ly_is_port (file_))
     {
       scm_close_port (file_);
       /*
index af6622a9f3b37a7d4742f00bc523c4104968d971..0cecb7951170d53e022523cdbdb3876493741f79 100644 (file)
@@ -149,7 +149,7 @@ Paper_score::layout () const
 SCM
 Paper_score::get_paper_systems ()
 {
-  if (paper_systems_ == SCM_BOOL_F)
+  if (scm_is_false (paper_systems_))
     {
       vector<Column_x_positions> breaking = calc_breaking ();
       system_->break_into_pieces (breaking);
index c0b70121fa84dc89d59b199fb06f39ffecbbfb94..b67eb0123b1154dadc5ab2e7a6c92ea81a8d7758 100644 (file)
@@ -46,13 +46,13 @@ get_footnotes (SCM expr)
 
   SCM head = scm_car (expr);
 
-  if (head == ly_symbol2scm ("delay-stencil-evaluation"))
+  if (scm_is_eq (head, ly_symbol2scm ("delay-stencil-evaluation")))
     {
       // we likely need to do something here...just don't know what...
       return SCM_EOL;
     }
 
-  if (head == ly_symbol2scm ("combine-stencil"))
+  if (scm_is_eq (head, ly_symbol2scm ("combine-stencil")))
     {
       SCM out = SCM_EOL;
       SCM *tail = &out;
@@ -60,7 +60,7 @@ get_footnotes (SCM expr)
       for (SCM x = scm_cdr (expr); scm_is_pair (x); x = scm_cdr (x))
         {
           SCM footnote = get_footnotes (scm_car (x));
-          if (SCM_EOL != footnote)
+          if (!scm_is_null (footnote))
             {
               *tail = scm_cons (footnote, SCM_EOL);
               tail = SCM_CDRLOC (*tail);
@@ -68,10 +68,10 @@ get_footnotes (SCM expr)
         }
       return scm_append (out);
     }
-  if (head == ly_symbol2scm ("translate-stencil"))
+  if (scm_is_eq (head, ly_symbol2scm ("translate-stencil")))
     return get_footnotes (scm_caddr (expr));
 
-  if (head == ly_symbol2scm ("footnote"))
+  if (scm_is_eq (head, ly_symbol2scm ("footnote")))
     return scm_list_1 (scm_cdr (expr));
 
   return SCM_EOL;
index d18afa9d816219740e3de9d63930cbbbe330bc14..ec0c1572f07aa51e02c96f9ce2a8cc8fc4c10f88 100644 (file)
@@ -92,7 +92,7 @@ internal_ly_eval_scm (Parse_start *ps)
   if (ps->safe_)
     {
       static SCM module = SCM_BOOL_F;
-      if (module == SCM_BOOL_F)
+      if (scm_is_false (module))
         {
           SCM function = ly_lily_module_constant ("make-safe-lilypond-module");
           module = scm_gc_protect_object (scm_call_0 (function));
index 2c324f50000117b5d872af8751883371ec3037a8..9630ff4837910d052fd101692654cea2656c7cd7 100644 (file)
@@ -451,11 +451,11 @@ toplevel_expression:
                } else if (Output_def * od = Output_def::unsmob ($1)) {
                        SCM id = SCM_EOL;
 
-                       if (od->c_variable ("is-paper") == SCM_BOOL_T)
+                       if (to_boolean (od->c_variable ("is-paper")))
                                id = ly_symbol2scm ("$defaultpaper");
-                       else if (od->c_variable ("is-midi") == SCM_BOOL_T)
+                       else if (to_boolean (od->c_variable ("is-midi")))
                                id = ly_symbol2scm ("$defaultmidi");
-                       else if (od->c_variable ("is-layout") == SCM_BOOL_T)
+                       else if (to_boolean (od->c_variable ("is-layout")))
                                id = ly_symbol2scm ("$defaultlayout");
 
                        parser->lexer_->set_identifier (id, $1);
@@ -466,11 +466,11 @@ toplevel_expression:
                SCM id = SCM_EOL;
                Output_def * od = Output_def::unsmob ($1);
 
-               if (od->c_variable ("is-paper") == SCM_BOOL_T)
+               if (to_boolean (od->c_variable ("is-paper")))
                        id = ly_symbol2scm ("$defaultpaper");
-               else if (od->c_variable ("is-midi") == SCM_BOOL_T)
+               else if (to_boolean (od->c_variable ("is-midi")))
                        id = ly_symbol2scm ("$defaultmidi");
-               else if (od->c_variable ("is-layout") == SCM_BOOL_T)
+               else if (to_boolean (od->c_variable ("is-layout")))
                        id = ly_symbol2scm ("$defaultlayout");
 
                parser->lexer_->set_identifier (id, $1);
@@ -835,11 +835,11 @@ book_body:
                } else if (Output_def *od = Output_def::unsmob ($2)) {
                        SCM id = SCM_EOL;
 
-                       if (od->c_variable ("is-paper") == SCM_BOOL_T)
+                       if (to_boolean (od->c_variable ("is-paper")))
                                id = ly_symbol2scm ("$defaultpaper");
-                       else if (od->c_variable ("is-midi") == SCM_BOOL_T)
+                       else if (to_boolean (od->c_variable ("is-midi")))
                                id = ly_symbol2scm ("$defaultmidi");
-                       else if (od->c_variable ("is-layout") == SCM_BOOL_T)
+                       else if (to_boolean (od->c_variable ("is-layout")))
                                id = ly_symbol2scm ("$defaultlayout");
 
                        parser->lexer_->set_identifier (id, $2);
@@ -916,11 +916,11 @@ bookpart_body:
                } else if (Output_def *od = Output_def::unsmob ($2)) {
                        SCM id = SCM_EOL;
 
-                       if (od->c_variable ("is-paper") == SCM_BOOL_T)
+                       if (to_boolean (od->c_variable ("is-paper")))
                                id = ly_symbol2scm ("$defaultpaper");
-                       else if (od->c_variable ("is-midi") == SCM_BOOL_T)
+                       else if (to_boolean (od->c_variable ("is-midi")))
                                id = ly_symbol2scm ("$defaultmidi");
-                       else if (od->c_variable ("is-layout") == SCM_BOOL_T)
+                       else if (to_boolean (od->c_variable ("is-layout")))
                                id = ly_symbol2scm ("$defaultlayout");
 
                        parser->lexer_->set_identifier (id, $2);
@@ -986,7 +986,7 @@ score_items:
        {
                Output_def *od = Output_def::unsmob ($2);
                if (od) {
-                       if (od->lookup_variable (ly_symbol2scm ("is-paper")) == SCM_BOOL_T)
+                       if (to_boolean (od->lookup_variable (ly_symbol2scm ("is-paper"))))
                        {
                                parser->parser_error (@2, _("\\paper cannot be used in \\score, use \\layout instead"));
                                od = 0;
@@ -1052,7 +1052,7 @@ paper_block:
        output_def {
                 Output_def *od = Output_def::unsmob ($1);
 
-               if (od->lookup_variable (ly_symbol2scm ("is-paper")) != SCM_BOOL_T)
+               if (!to_boolean (od->lookup_variable (ly_symbol2scm ("is-paper"))))
                {
                        parser->parser_error (@1, _ ("need \\paper for paper block"));
                        $$ = get_paper (parser)->unprotect ();
@@ -2227,7 +2227,7 @@ lyric_mode_music:
 
 mode_changed_music:
        mode_changing_head grouped_music_list {
-               if ($1 == ly_symbol2scm ("chords"))
+               if (scm_is_eq ($1, ly_symbol2scm ("chords")))
                {
                  $$ = MAKE_SYNTAX ("unrelativable-music", @$, $2);
                }
@@ -2243,7 +2243,7 @@ mode_changed_music:
                 if (ctxmod)
                         mods = ctxmod->get_mods ();
                $$ = MAKE_SYNTAX ("context-specification", @$, $1, SCM_EOL, mods, SCM_BOOL_T, $3);
-               if ($1 == ly_symbol2scm ("ChordNames"))
+               if (scm_is_eq ($1, ly_symbol2scm ("ChordNames")))
                {
                  $$ = MAKE_SYNTAX ("unrelativable-music", @$, $$);
                }
index 54ad1797a44a6c54d2ccf1f03e37f19a1879d5f4..eaae218c1b17a1700a10a394960b1000c1abffac 100644 (file)
@@ -81,11 +81,11 @@ Part_combine_engraver::create_item (Stream_event *ev)
 {
   SCM what = scm_car (ev->get_property ("class"));
   SCM text = SCM_EOL;
-  if (what == ly_symbol2scm ("solo-one-event"))
+  if (scm_is_eq (what, ly_symbol2scm ("solo-one-event")))
     text = get_property ("soloText");
-  else if (what == ly_symbol2scm ("solo-two-event"))
+  else if (scm_is_eq (what, ly_symbol2scm ("solo-two-event")))
     text = get_property ("soloIIText");
-  else if (what == ly_symbol2scm ("unisono-event"))
+  else if (scm_is_eq (what, ly_symbol2scm ("unisono-event")))
     text = get_property ("aDueText");
 
   if (Text_interface::is_markup (text))
index 2428d4a70fb41f26bfcbce5cd0e8dcb07c1a818f..d1a8f019f3a9abce3964a290209629f1c9999f9a 100644 (file)
@@ -490,30 +490,30 @@ Part_combine_iterator::process (Moment m)
 
       SCM tag = scm_cdar (split_list_);
 
-      if (tag == ly_symbol2scm ("chords"))
+      if (scm_is_eq (tag, ly_symbol2scm ("chords")))
         chords_together ();
-      else if (tag == ly_symbol2scm ("apart")
-               || tag == ly_symbol2scm ("apart-silence")
-               || tag == ly_symbol2scm ("apart-spanner"))
-        apart (tag == ly_symbol2scm ("apart-silence"));
-      else if (tag == ly_symbol2scm ("unisono"))
+      else if (scm_is_eq (tag, ly_symbol2scm ("apart"))
+               || scm_is_eq (tag, ly_symbol2scm ("apart-silence"))
+               || scm_is_eq (tag, ly_symbol2scm ("apart-spanner")))
+        apart (scm_is_eq (tag, ly_symbol2scm ("apart-silence")));
+      else if (scm_is_eq (tag, ly_symbol2scm ("unisono")))
         {
           // Continue to use the most recently used part because we might have
           // killed mmrests in the other part.
           unisono (false, (last_playing_ == 2) ? 2 : 1);
         }
-      else if (tag == ly_symbol2scm ("unisilence"))
+      else if (scm_is_eq (tag, ly_symbol2scm ("unisilence")))
         {
           // as for unisono
           unisono (true, (last_playing_ == 2) ? 2 : 1);
         }
-      else if (tag == ly_symbol2scm ("silence1"))
+      else if (scm_is_eq (tag, ly_symbol2scm ("silence1")))
         unisono (true, 1);
-      else if (tag == ly_symbol2scm ("silence2"))
+      else if (scm_is_eq (tag, ly_symbol2scm ("silence2")))
         unisono (true, 2);
-      else if (tag == ly_symbol2scm ("solo1"))
+      else if (scm_is_eq (tag, ly_symbol2scm ("solo1")))
         solo1 ();
-      else if (tag == ly_symbol2scm ("solo2"))
+      else if (scm_is_eq (tag, ly_symbol2scm ("solo2")))
         solo2 ();
       else if (scm_is_symbol (tag))
         {
index 004548b2e9da2c3c474e3d15038b57541522225a..03bd86b9cf705a3553baa9fed787dc8b9430d1be 100644 (file)
@@ -122,7 +122,7 @@ Percent_repeat_engraver::process_music ()
       percent_->set_bound (LEFT, col);
 
       SCM count = percent_event_->get_property ("repeat-count");
-      if (count != SCM_EOL && to_boolean (get_property ("countPercentRepeats"))
+      if (!scm_is_null (count) && to_boolean (get_property ("countPercentRepeats"))
           && check_repeat_count_visibility (context (), count))
         {
           percent_counter_ = make_spanner ("PercentRepeatCounter",
index 546351a0b9a2f8cb1620e5fc7615a18306786f2d..1cad3323be1c871181b9a391282081adb29c84af 100644 (file)
@@ -251,11 +251,11 @@ Piano_pedal_engraver::process_music ()
 
           SCM style = get_property (p->type_->style_sym_);
 
-          bool mixed = style == ly_symbol2scm ("mixed");
+          bool mixed = scm_is_eq (style, ly_symbol2scm ("mixed"));
           bool bracket = (mixed
-                          || style == ly_symbol2scm ("bracket"));
-          bool text = (style == ly_symbol2scm ("text")
-                       || mixed);
+                          || scm_is_eq (style, ly_symbol2scm ("bracket")));
+          bool text = (mixed
+                       || scm_is_eq (style, ly_symbol2scm ("text")));
 
           if (text && !p->item_)
             create_text_grobs (p, mixed);
index b30d984edca68b17d5de89ca8f190b714f30b357..4f4fad23254966520f1fd325126d11c0c56211b2 100644 (file)
@@ -106,7 +106,7 @@ Pitched_trill_engraver::make_trill (Stream_event *ev)
   int bn = measure_number (context ());
 
   SCM handle = scm_assoc (key, keysig);
-  if (handle != SCM_BOOL_F)
+  if (scm_is_true (handle))
     {
       bool same_bar = (bn == robust_scm2int (scm_caddr (handle), 0));
       bool same_alt
@@ -116,9 +116,9 @@ Pitched_trill_engraver::make_trill (Stream_event *ev)
         handle = SCM_BOOL_F;
     }
 
-  bool print_acc
-    = (handle == SCM_BOOL_F) || p->get_alteration () == Rational (0)
-      || (ev->get_property ("force-accidental") == SCM_BOOL_T);
+  bool print_acc = scm_is_false (handle)
+                   || p->get_alteration () == Rational (0)
+                   || to_boolean (ev->get_property ("force-accidental"));
 
   if (trill_head_)
     {
index a57cb7aa9ffe6418f0eea1d7f334c897256d4f36..82e4fbdca3a7f9b87c618b071ade67a369522bd8 100644 (file)
@@ -51,11 +51,11 @@ LY_DEFINE (ly_prob_property, "ly:prob-property",
   Prob *ps = Prob::unsmob (prob);
   LY_ASSERT_TYPE (ly_is_symbol, sym, 2);
 
-  if (val == SCM_UNDEFINED)
+  if (SCM_UNBNDP (val))
     val = SCM_EOL;
 
   SCM retval = ps->get_property (sym);
-  if (retval == SCM_EOL)
+  if (scm_is_null (retval))
     return val;
   else
     return retval;
index 52ce8b682168de233e545bac6363209941f443a7..37dad6246b34a00b2e0d3019ef0322849168ce85 100644 (file)
@@ -61,15 +61,14 @@ Prob::equal_p (SCM sa, SCM sb)
         {
           SCM aval = scm_cdar (aprop);
           SCM bval = scm_cdar (bprop);
-          if (scm_caar (aprop) != scm_caar (bprop)
+          if (!scm_is_eq (scm_caar (aprop), scm_caar (bprop))
               || (!(Input::is_smob (aval) && Input::is_smob (bval))
-                  &&
-                  !to_boolean (scm_equal_p (aval, bval))))
+                  && !ly_is_equal (aval, bval)))
             return SCM_BOOL_F;
         }
 
       /* is one list shorter? */
-      if (aprop != SCM_EOL || bprop != SCM_EOL)
+      if (!scm_is_null (aprop) || !scm_is_null (bprop))
         return SCM_BOOL_F;
     }
 
@@ -151,11 +150,11 @@ Prob::internal_get_property (SCM sym) const
     TODO: type checking
    */
   SCM s = scm_sloppy_assq (sym, mutable_property_alist_);
-  if (s != SCM_BOOL_F)
+  if (scm_is_true (s))
     return scm_cdr (s);
 
   s = scm_sloppy_assq (sym, immutable_property_alist_);
-  return (s == SCM_BOOL_F) ? SCM_EOL : scm_cdr (s);
+  return scm_is_false (s) ? SCM_EOL : scm_cdr (s);
 }
 
 /* We don't (yet) instrument probs */
index dd38f0425b75ff73c6b3cb6be7e5a4521e682fc7..025bea809bbcc83620771ae535aefbdd9c4f0b04 100644 (file)
@@ -31,13 +31,13 @@ LY_DEFINE (ly_property_lookup_stats, "ly:property-lookup-stats",
            " @var{sym}.  Choices are @code{prob}, @code{grob}, and"
            " @code{context}.")
 {
-  if (sym == ly_symbol2scm ("context"))
+  if (scm_is_eq (sym, ly_symbol2scm ("context")))
     return context_property_lookup_table ? context_property_lookup_table
            : scm_c_make_hash_table (1);
-  if (sym == ly_symbol2scm ("prob"))
+  if (scm_is_eq (sym, ly_symbol2scm ("prob")))
     return prob_property_lookup_table ? prob_property_lookup_table
            : scm_c_make_hash_table (1);
-  if (sym == ly_symbol2scm ("grob"))
+  if (scm_is_eq (sym, ly_symbol2scm ("grob")))
     return grob_property_lookup_table ? grob_property_lookup_table
            : scm_c_make_hash_table (1);
   return scm_c_make_hash_table (1);
@@ -53,7 +53,7 @@ note_property_access (SCM *table, SCM sym)
     *table = scm_permanent_object (scm_c_make_hash_table (259));
 
   SCM hashhandle = scm_hashq_get_handle (*table, sym);
-  if (hashhandle == SCM_BOOL_F)
+  if (scm_is_false (hashhandle))
     {
       scm_hashq_set_x (*table, sym, scm_from_int (0));
       hashhandle = scm_hashq_get_handle (*table, sym);
index 769c97064f56f3cd07841f376803fb2974130e84..80cd0e4e2fc25193c5ecc327c726a626700db83f 100644 (file)
@@ -208,7 +208,7 @@ LY_DEFINE (ly_set_option, "ly:set-option", 1, 1, 0, (SCM var, SCM val),
 {
   LY_ASSERT_TYPE (ly_is_symbol, var, 1);
 
-  if (val == SCM_UNDEFINED)
+  if (SCM_UNBNDP (val))
     val = SCM_BOOL_T;
 
   string varstr = robust_symbol2string (var, "");
@@ -219,7 +219,7 @@ LY_DEFINE (ly_set_option, "ly:set-option", 1, 1, 0, (SCM var, SCM val),
     }
 
   SCM handle = scm_hashq_get_handle (option_hash, var);
-  if (handle == SCM_BOOL_F)
+  if (scm_is_false (handle))
     warning (_f ("no such internal option: %s", varstr.c_str ()));
 
   internal_set_option (var, val);
index 66f0590893b78f6f4f34c1f948569d5f3f3956f9..c68e22345612dd1ebd4472d287656d3269c907d4 100644 (file)
@@ -71,7 +71,7 @@ Quote_iterator::accept_music_type (Stream_event *ev, bool is_cue) const
   // for cue notes if quotedCueEventTypes is not set) use quotedEventTypes
   if (is_cue)
     accept = get_outlet ()->get_property ("quotedCueEventTypes");
-  if (accept == SCM_EOL)
+  if (scm_is_null (accept))
     accept = get_outlet ()->get_property ("quotedEventTypes");
 
   for (; scm_is_pair (accept); accept = scm_cdr (accept))
index a76484e086633345d888c88ea992b8a47ef9e2b6..67477b1f01df6cd589a7d24559132d1e12f64466 100644 (file)
@@ -85,13 +85,14 @@ Repeat_acknowledge_engraver::process_music ()
   while (scm_is_pair (cs))
     {
       SCM command = scm_car (cs);
-      if (command == ly_symbol2scm ("start-repeat"))
+      if (scm_is_eq (command, ly_symbol2scm ("start-repeat")))
         start = true;
-      else if (command == ly_symbol2scm ("end-repeat"))
+      else if (scm_is_eq (command, ly_symbol2scm ("end-repeat")))
         end = true;
-      else if (command == ly_symbol2scm ("segno-display"))
+      else if (scm_is_eq (command, ly_symbol2scm ("segno-display")))
         segno = true;
-      else if (scm_is_pair (command) && scm_car (command) == ly_symbol2scm ("volta"))
+      else if (scm_is_pair (command)
+               && scm_is_eq (scm_car (command), ly_symbol2scm ("volta")))
         volta_found = true;
       cs = scm_cdr (cs);
     }
index 9c3b82267d882e1437168079c36969796bca0348..7546cbd6307eba6ade23b91e93ddebe5a6afddda 100644 (file)
@@ -119,7 +119,7 @@ void
 Score_performer::finish (SCM)
 {
   SCM channel_mapping = context ()->get_property ("midiChannelMapping");
-  bool use_ports = channel_mapping == ly_symbol2scm ("voice");
+  bool use_ports = scm_is_eq (channel_mapping, ly_symbol2scm ("voice"));
   performance_->ports_ = use_ports;
   recurse_over_translators (context (),
                             &Translator::finalize,
index ed930d5fa0eaabaece18055cbc3783d50e6a72d4..c8262dc7df236b89d2023853275a1cd14c81d308 100644 (file)
@@ -124,7 +124,7 @@ LY_DEFINE (ly_score_embedded_format, "ly:score-embedded-format",
   /* UGR, FIXME, these are default \layout blocks once again.  They
      suck. */
   for (vsize i = 0; !score_def && i < sc->defs_.size (); i++)
-    if (sc->defs_[i]->c_variable ("is-layout") == SCM_BOOL_T)
+    if (to_boolean (sc->defs_[i]->c_variable ("is-layout")))
       score_def = sc->defs_[i];
 
   if (!score_def)
index 3a1232d2a268034c7a2494257d42c102ea75d4e0..5ce7e3ba95efedf2fcd143453468601db3cd1a52 100644 (file)
@@ -117,7 +117,7 @@ Score::book_rendering (Output_def *layoutbook,
 
   Real scale = 1.0;
 
-  if (layoutbook && layoutbook->c_variable ("is-paper") == SCM_BOOL_T)
+  if (layoutbook && to_boolean (layoutbook->c_variable ("is-paper")))
     scale = scm_to_double (layoutbook->c_variable ("output-scale"));
 
   SCM outputs = SCM_EOL;
@@ -129,7 +129,7 @@ Score::book_rendering (Output_def *layoutbook,
       Output_def *def = outdef_count ? defs_[i] : default_def;
       SCM scaled = def->self_scm ();
 
-      if (def->c_variable ("is-layout") == SCM_BOOL_T)
+      if (to_boolean (def->c_variable ("is-layout")))
         {
           def = scale_output_def (def, scale);
           def->parent_ = layoutbook;
index f2ef9697a1f86566c15e5a621f7f6b76020b7287..62c3de482cd359256d824135fd0420d29455bd91 100644 (file)
@@ -90,7 +90,7 @@ Script_engraver::listen_articulation (Stream_event *ev)
 void
 copy_property (Grob *g, SCM sym, SCM alist)
 {
-  if (g->get_property (sym) == SCM_EOL)
+  if (scm_is_null (g->get_property (sym)))
     {
       SCM entry = scm_assoc (sym, alist);
       if (scm_is_pair (entry))
@@ -109,7 +109,7 @@ make_script_from_event (Grob *p, Context *tg,
   SCM alist = tg->get_property ("scriptDefinitions");
   SCM art = scm_assoc (art_type, alist);
 
-  if (art == SCM_BOOL_F)
+  if (scm_is_false (art))
     {
       /* FIXME: */
       warning (_ ("do not know how to interpret articulation:"));
@@ -132,7 +132,7 @@ make_script_from_event (Grob *p, Context *tg,
 
       SCM val = scm_cdar (s);
 
-      if (sym == ly_symbol2scm ("script-priority"))
+      if (scm_is_eq (sym, ly_symbol2scm ("script-priority")))
         {
           priority_found = true;
           /* Make sure they're in order of user input by adding index i.
@@ -144,8 +144,8 @@ make_script_from_event (Grob *p, Context *tg,
         }
 
       SCM preset = p->get_property_data (sym);
-      if (val == SCM_EOL
-          || scm_call_1 (type, preset) == SCM_BOOL_F)
+      if (scm_is_null (val)
+          || scm_is_false (scm_call_1 (type, preset)))
         p->set_property (sym, val);
     }
 
index c4a136b06f20e15de8ebd09dd17515bd9ecbc7c9..c9442fe9aefe9033696651291e2836f6333c0f97 100644 (file)
@@ -36,7 +36,7 @@ Script_interface::get_stencil (Grob *me, Direction d)
   assert (scm_is_pair (s));
 
   SCM key = scm_car (s);
-  if (key == ly_symbol2scm ("feta"))
+  if (scm_is_eq (key, ly_symbol2scm ("feta")))
     {
       SCM name_entry = scm_cdr (s);
       SCM str = ((scm_is_pair (name_entry)) ? index_get_cell (name_entry, d)
@@ -110,8 +110,8 @@ Script_interface::calc_cross_staff (SCM smob)
   Grob *slur = Grob::unsmob (me->get_object ("slur"));
   SCM avoid_slur = me->get_property ("avoid-slur");
   if (slur && to_boolean (slur->get_property ("cross-staff"))
-      && (avoid_slur == ly_symbol2scm ("outside")
-          || avoid_slur == ly_symbol2scm ("around")))
+      && (scm_is_eq (avoid_slur, ly_symbol2scm ("outside"))
+          || scm_is_eq (avoid_slur, ly_symbol2scm ("around"))))
     return SCM_BOOL_T;
 
   return SCM_BOOL_F;
index bdb2854fd45daf711679571b85d69f5b606324b0..81a21075eef44f23d891287b2e6b7a2bf68d2e67 100644 (file)
@@ -129,7 +129,7 @@ Self_alignment_interface::aligned_on_parent (Grob *me, Axis a)
           ? me->get_property ("parent-alignment-X")
           : me->get_property ("parent-alignment-Y");
 
-  if (par_align == SCM_EOL)
+  if (scm_is_null (par_align))
       par_align = self_align;
 
   Real x = 0.0;
index e99c8570b79079cb7f965e274c40012c432b95d6..b62649f06d52b28c88bfd40081ac917d771f8dce 100644 (file)
@@ -32,7 +32,7 @@ evaluate_args (SCM delayed_argument, SCM args, bool pure, int start, int end)
       *tail = scm_cons (evaluate_with_simple_closure (delayed_argument, scm_car (s),
                                                       pure, start, end),
                         SCM_EOL);
-      if (scm_car (*tail) == SCM_UNSPECIFIED)
+      if (scm_is_eq (scm_car (*tail), SCM_UNSPECIFIED))
         return SCM_UNSPECIFIED;
       tail = SCM_CDRLOC (*tail);
     }
@@ -56,7 +56,7 @@ evaluate_with_simple_closure (SCM delayed_argument,
       SCM args = scm_cons (delayed_argument,
                            evaluate_args (delayed_argument, scm_cdr (inside),
                                           pure, start, end));
-      if (scm_cdr (args) == SCM_UNSPECIFIED)
+      if (scm_is_eq (scm_cdr (args), SCM_UNSPECIFIED))
         return SCM_UNSPECIFIED;
       if (pure)
         return call_pure_function (proc, args, start, end);
@@ -64,7 +64,7 @@ evaluate_with_simple_closure (SCM delayed_argument,
     }
   else if (!scm_is_pair (expr))
     return expr;
-  else if (scm_car (expr) == ly_symbol2scm ("quote"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("quote")))
     return scm_cadr (expr);
   else if (Unpure_pure_container::is_smob (scm_car (expr))
            || ly_is_procedure (scm_car (expr)))
@@ -73,7 +73,7 @@ evaluate_with_simple_closure (SCM delayed_argument,
         ? Unpure_pure_container::unsmob (scm_car (expr))->unpure_part ()
         : scm_car (expr);
       SCM args = evaluate_args (delayed_argument, scm_cdr (expr), pure, start, end);
-      if (args == SCM_UNSPECIFIED)
+      if (scm_is_eq (args, SCM_UNSPECIFIED))
         return SCM_UNSPECIFIED;
       if (pure)
         return call_pure_function (proc, args, start, end);
index cc09da1021ac35fd96256c383df4a09345e611e5..7c1c866c6113015354ce5161e4142e8b48f6e566 100644 (file)
@@ -48,7 +48,7 @@ LY_DEFINE (ly_solve_spring_rod_problem, "ly:solve-spring-rod-problem",
   SCM_ASSERT_TYPE (scm_ilength (rods) > 0, rods, SCM_ARG1, __FUNCTION__, "list of rods");
   LY_ASSERT_TYPE (scm_is_number, length, 3);
 
-  bool is_ragged = ragged == SCM_BOOL_T;
+  bool is_ragged = to_boolean (ragged);
   Simple_spacer spacer;
   for (SCM s = springs; scm_is_pair (s); s = scm_cdr (s))
     {
index d17fa1ed73dca1fc9d3fe8a1a262fbc786028246..ada16593aa7e6b1441360413f714cc58d2a1afc5 100644 (file)
@@ -528,7 +528,7 @@ get_line_configuration (vector<Grob *> const &columns,
   for (vsize i = 1; i + 1 < ret.cols_.size (); i++)
     {
       SCM p = ret.cols_[i]->get_property ("line-break-permission");
-      if (p == ly_symbol2scm ("force"))
+      if (scm_is_eq (p, ly_symbol2scm ("force")))
         ret.satisfies_constraints_ = false;
     }
 
index 66cca3fd53a044c96b3b82d85ab42d7a57847ece..42a028fe0a59271d4626c939f69091e35b65f8a6 100644 (file)
@@ -811,7 +811,7 @@ Skyline::get_touching_point (SCM skyline_scm, SCM other_skyline_scm, SCM horizon
   LY_ASSERT_SMOB (Skyline, other_skyline_scm, 1);
 
   Real horizon_padding = 0;
-  if (horizon_padding_scm != SCM_UNDEFINED)
+  if (!SCM_UNBNDP (horizon_padding_scm))
     {
       LY_ASSERT_TYPE (scm_is_number, horizon_padding_scm, 3);
       horizon_padding = scm_to_double (horizon_padding_scm);
@@ -829,7 +829,7 @@ Skyline::get_distance (SCM skyline_scm, SCM other_skyline_scm, SCM horizon_paddi
   LY_ASSERT_SMOB (Skyline, other_skyline_scm, 1);
 
   Real horizon_padding = 0;
-  if (horizon_padding_scm != SCM_UNDEFINED)
+  if (!SCM_UNBNDP (horizon_padding_scm))
     {
       LY_ASSERT_TYPE (scm_is_number, horizon_padding_scm, 3);
       horizon_padding = scm_to_double (horizon_padding_scm);
index 3383c1f3b02b12916062ca038f419fb4d7407783..8e1db97d8413d3e35fdbe502738541457fae4589 100644 (file)
@@ -412,14 +412,14 @@ Slur_configuration::score_extra_encompass (Slur_score_state const &state)
         }
 
       Real dist = 0.0;
-      if (info.type_ == ly_symbol2scm ("around"))
+      if (scm_is_eq (info.type_, ly_symbol2scm ("around")))
         dist = info.extents_[Y_AXIS].distance (y);
 
       /*
         Have to score too: the curve enumeration is limited in its
         shape, and may produce curves which collide anyway.
        */
-      else if (info.type_ == ly_symbol2scm ("inside"))
+      else if (scm_is_eq (info.type_, ly_symbol2scm ("inside")))
         dist = state.dir_ * (y - info.extents_[Y_AXIS][state.dir_]);
       else
         programming_error ("unknown avoidance type");
index 7271cc7a7cf139a9109bf9fe794e22424f61abbd..85e917f96fe34a77e53d4cd84e911021f6029f92 100644 (file)
@@ -281,7 +281,8 @@ Slur_score_state::fill (Grob *me)
                                          end_ys[RIGHT],
                                          end_ys[LEFT]);
       Real encompass_place = extra_encompass_infos_[i].extents_[Y_AXIS][dir_];
-      if (extra_encompass_infos_[i].type_ == ly_symbol2scm ("inside")
+      if (scm_is_eq (extra_encompass_infos_[i].type_,
+                     ly_symbol2scm ("inside"))
           && minmax (dir_, encompass_place, y_place) == encompass_place
           && (!extra_encompass_infos_[i].grob_->internal_has_interface (ly_symbol2scm ("key-signature-interface"))
               && !Clef::has_interface (extra_encompass_infos_[i].grob_)
@@ -638,7 +639,8 @@ Slur_score_state::generate_avoid_offsets () const
           z[Y_AXIS] += dir_ * parameters_.free_slur_distance_;
           avoid.push_back (z);
         }
-      else if (extra_encompasses[i]->get_property ("avoid-slur") == ly_symbol2scm ("inside"))
+      else if (scm_is_eq (extra_encompasses[i]->get_property ("avoid-slur"),
+                          ly_symbol2scm ("inside")))
         {
           Grob *g = extra_encompasses [i];
           Interval xe = g->extent (common_[X_AXIS], X_AXIS);
index 22c24b76b2f8ac3937dd38347f1b8dbd50aa16fe..0f3f7162a732f99781f2d3c335eb6c1675778974 100644 (file)
@@ -211,7 +211,8 @@ Slur::replace_breakable_encompass_objects (Grob *me)
             /* if we encompass a separation-item that spans multiple staves,
                we filter out the grobs that don't belong to our staff */
             if (me->common_refpoint (breakables[j], Y_AXIS) == me->get_parent (Y_AXIS)
-                && breakables[j]->get_property ("avoid-slur") == ly_symbol2scm ("inside"))
+                && scm_is_eq (breakables[j]->get_property ("avoid-slur"),
+                              ly_symbol2scm ("inside")))
               new_encompasses.push_back (breakables[j]);
         }
       else
@@ -264,7 +265,8 @@ Slur::pure_outside_slur_callback (SCM grob, SCM start_scm, SCM end_scm, SCM offs
     return offset_scm;
 
   SCM avoid = script->get_property ("avoid-slur");
-  if (avoid != ly_symbol2scm ("outside") && avoid != ly_symbol2scm ("around"))
+  if (!scm_is_eq (avoid, ly_symbol2scm ("outside"))
+      && !scm_is_eq (avoid, ly_symbol2scm ("around")))
     return offset_scm;
 
   Real offset = robust_scm2double (offset_scm, 0.0);
@@ -283,8 +285,8 @@ Slur::outside_slur_callback (SCM grob, SCM offset_scm)
     return offset_scm;
 
   SCM avoid = script->get_property ("avoid-slur");
-  if (avoid != ly_symbol2scm ("outside")
-      && avoid != ly_symbol2scm ("around"))
+  if (!scm_is_eq (avoid, ly_symbol2scm ("outside"))
+      && !scm_is_eq (avoid, ly_symbol2scm ("around")))
     return offset_scm;
 
   Direction dir = get_grob_direction (script);
@@ -328,7 +330,7 @@ Slur::outside_slur_callback (SCM grob, SCM offset_scm)
   Interval exts[] = {xext, yext};
   bool do_shift = false;
   Real EPS = 1.0e-5;
-  if (avoid == ly_symbol2scm ("outside"))
+  if (scm_is_eq (avoid, ly_symbol2scm ("outside")))
     {
       for (LEFT_and_RIGHT (d))
         {
@@ -408,7 +410,7 @@ Slur::auxiliary_acknowledge_extra_object (Grob_info const &info,
     slur = slurs[0];
 
   if (Tie::has_interface (e)
-      || avoid == ly_symbol2scm ("inside"))
+      || scm_is_eq (avoid, ly_symbol2scm ("inside")))
     {
       for (vsize i = slurs.size (); i--;)
         add_extra_encompass (slurs[i], e);
@@ -417,8 +419,8 @@ Slur::auxiliary_acknowledge_extra_object (Grob_info const &info,
       if (slur)
         e->set_object ("slur", slur->self_scm ());
     }
-  else if (avoid == ly_symbol2scm ("outside")
-           || avoid == ly_symbol2scm ("around"))
+  else if (scm_is_eq (avoid, ly_symbol2scm ("outside"))
+           || scm_is_eq (avoid, ly_symbol2scm ("around")))
     {
       if (slur)
         {
@@ -430,7 +432,7 @@ Slur::auxiliary_acknowledge_extra_object (Grob_info const &info,
           e->set_object ("slur", slur->self_scm ());
         }
     }
-  else if (avoid != ly_symbol2scm ("ignore"))
+  else if (!scm_is_eq (avoid, ly_symbol2scm ("ignore")))
     e->warning (_f ("Ignoring grob for slur: %s.  avoid-slur not set?",
                     e->name ().c_str ()));
 }
@@ -445,7 +447,7 @@ MAKE_SCHEME_CALLBACK (Slur, outside_slur_cross_staff, 2)
 SCM
 Slur::outside_slur_cross_staff (SCM smob, SCM previous)
 {
-  if (previous == SCM_BOOL_T)
+  if (to_boolean (previous))
     return previous;
 
   Grob *me = Grob::unsmob (smob);
index d1bea956d40375ac2fc8497c79355a0dd59bd899..8b3c8a90141e63a61991dd86579d40ab987dcf59 100644 (file)
@@ -46,7 +46,7 @@ protect_smob (SCM smob, SCM *prot_cons)
 {
 #if 0
   SCM s = scm_cdr (smob_protection_list);
-  while (scm_is_pair (s) && scm_car (s) == SCM_BOOL_F)
+  while (scm_is_pair (s) && scm_is_false (scm_car (s))
     {
       s = scm_cdr (s);
     }
@@ -69,13 +69,13 @@ unprotect_smob (SCM smob, SCM *prot_cons)
 #else
   SCM next = scm_cdr (*prot_cons);
 
-  if (next == SCM_EOL)
+  if (scm_is_null (next)))
     scm_set_car_x (*prot_cons, SCM_BOOL_F);
   else
     {
       scm_set_car_x (*prot_cons, SCM_BOOL_F);
       while (scm_is_pair (next)
-             && scm_car (next) == SCM_BOOL_F)
+             && scm_is_false (scm_car (next)))
 
         next = scm_cdr (next);
 
index c3c608cc0bb6d20bb6a518ff442a9d5d16697f13..6a9183486d181e4a2acb75da2c6f530b2911e070 100644 (file)
@@ -51,7 +51,7 @@ Spaceable_grob::add_rod (Grob *me, Grob *p, Real d)
   for (SCM s = mins; scm_is_pair (s); s = scm_cdr (s))
     {
       SCM dist = scm_car (s);
-      if (scm_car (dist) == p->self_scm ())
+      if (scm_is_eq (scm_car (dist), p->self_scm ()))
         {
           scm_set_cdr_x (dist, scm_max (scm_cdr (dist),
                                         newdist));
index e7e0a7f3f7014abbbec216d646d68eb2fa51df5a..87dd3ff197bd337c9d375ad4aef1fc2a8d3352fe 100644 (file)
@@ -115,7 +115,8 @@ is_loose_column (Grob *l, Grob *col, Grob *r, Spacing_options const *options)
             {
               Grob *h = gelts[j];
 
-              if (h && h->get_property ("break-align-symbol") == ly_symbol2scm ("staff-bar"))
+              if (h && scm_is_eq (h->get_property ("break-align-symbol"),
+                                  ly_symbol2scm ("staff-bar")))
                 {
                   extract_grob_set (h, "elements", helts);
                   for (vsize k = helts.size (); k--;)
index 84752313213c5df7c3c8ff6e03473cae3e8c1e53..6232b8e7d3cddf15d1554b4bdb25b02f30c96707 100644 (file)
@@ -533,7 +533,7 @@ Spanner::get_cached_pure_property (SCM sym, int start, int end)
   // The pure property cache is indexed by (name start . end), where name is
   // a symbol, and start and end are numbers referring to the starting and
   // ending column ranks of the current line.
-  if (scm_hash_table_p (pure_property_cache_) == SCM_BOOL_F)
+  if (scm_is_false (scm_hash_table_p (pure_property_cache_)))
     return SCM_UNDEFINED;
 
   SCM key = scm_cons (sym, scm_cons (scm_from_int (start), scm_from_int (end)));
@@ -543,7 +543,7 @@ Spanner::get_cached_pure_property (SCM sym, int start, int end)
 void
 Spanner::cache_pure_property (SCM sym, int start, int end, SCM val)
 {
-  if (scm_hash_table_p (pure_property_cache_) == SCM_BOOL_F)
+  if (scm_is_false (scm_hash_table_p (pure_property_cache_)))
     pure_property_cache_ = scm_c_make_hash_table (17);
 
   SCM key = scm_cons (sym, scm_cons (scm_from_int (start), scm_from_int (end)));
index 7235c0486d639bcac2f1f12b7b92189648f31d91..f635130b70267db6d154432c18447a3dc76acd92 100644 (file)
@@ -161,7 +161,7 @@ Audio_staff *
 Staff_performer::get_audio_staff (const string &voice)
 {
   SCM channel_mapping = get_property ("midiChannelMapping");
-  if (channel_mapping != ly_symbol2scm ("instrument")
+  if (!scm_is_eq (channel_mapping, ly_symbol2scm ("instrument"))
       && staff_map_.size ())
     return staff_map_.begin ()->second;
 
@@ -201,7 +201,7 @@ Staff_performer::set_instrument (int channel, const string &voice)
   audio_staff->add_audio_item (instrument_);
   SCM proc = ly_lily_module_constant ("percussion?");
   SCM drums = scm_call_1 (proc, ly_symbol2scm (instrument_string_.c_str ()));
-  audio_staff->percussion_ = (drums == SCM_BOOL_T);
+  audio_staff->percussion_ = to_boolean (drums);
 }
 
 void
@@ -272,11 +272,11 @@ Staff_performer::get_channel (const string &instrument)
 {
   SCM channel_mapping = get_property ("midiChannelMapping");
   map<string, int> &channel_map
-    = (channel_mapping != ly_symbol2scm ("instrument"))
+    = (!scm_is_eq (channel_mapping, ly_symbol2scm ("instrument")))
       ? channel_map_
       : static_channel_map_;
 
-  if (channel_mapping == ly_symbol2scm ("staff")
+  if (scm_is_eq (channel_mapping, ly_symbol2scm ("staff"))
       && channel_ >= 0)
     return channel_;
 
@@ -284,7 +284,7 @@ Staff_performer::get_channel (const string &instrument)
   if (i != channel_map.end ())
     return i->second;
 
-  int channel = (channel_mapping == ly_symbol2scm ("staff"))
+  int channel = (scm_is_eq (channel_mapping, ly_symbol2scm ("staff")))
                 ? channel_count_++
                 : channel_map.size ();
 
@@ -319,13 +319,13 @@ Staff_performer::acknowledge_audio_element (Audio_element_info inf)
         voice = c->id_string ();
       SCM channel_mapping = get_property ("midiChannelMapping");
       string str = new_instrument_string ();
-      if (channel_mapping != ly_symbol2scm ("instrument"))
+      if (!scm_is_eq (channel_mapping, ly_symbol2scm ("instrument")))
         channel_ = get_channel (voice);
       else if (channel_ < 0 && str.empty ())
         channel_ = get_channel (str);
       if (str.length ())
         {
-          if (channel_mapping != ly_symbol2scm ("voice"))
+          if (!scm_is_eq (channel_mapping, ly_symbol2scm ("voice")))
             channel_ = get_channel (str);
           set_instrument (channel_, voice);
           set_instrument_name (voice);
index 99052146bb2bbfed8278c9acd04f4a0160c2de6d..c414268f26b6f685c68a8365708123fd9c9a034f 100644 (file)
@@ -165,21 +165,21 @@ Staff_spacing::get_spacing (Grob *me, Grob *right_col, Real situational_space)
   Real fixed = last_ext[RIGHT];
   Real ideal = fixed + 1.0;
 
-  if (type == ly_symbol2scm ("fixed-space"))
+  if (scm_is_eq (type, ly_symbol2scm ("fixed-space")))
     {
       fixed += distance;
       ideal = fixed;
     }
-  else if (type == ly_symbol2scm ("extra-space"))
+  else if (scm_is_eq (type, ly_symbol2scm ("extra-space")))
     ideal = fixed + distance;
-  else if (type == ly_symbol2scm ("semi-fixed-space"))
+  else if (scm_is_eq (type, ly_symbol2scm ("semi-fixed-space")))
     {
       fixed += distance / 2;
       ideal = fixed + distance / 2;
     }
-  else if (type == ly_symbol2scm ("minimum-space"))
+  else if (scm_is_eq (type, ly_symbol2scm ("minimum-space")))
     ideal = last_ext[LEFT] + max (last_ext.length (), distance);
-  else if (type == ly_symbol2scm ("minimum-fixed-space"))
+  else if (scm_is_eq (type, ly_symbol2scm ("minimum-fixed-space")))
     {
       fixed = last_ext[LEFT] + max (last_ext.length (), distance);
       ideal = fixed;
index 9021642785c86b55b3efc14b532797e7a2f146f8..e861d265668afd1712d283f56f10c9558b98fdc4 100644 (file)
@@ -116,7 +116,7 @@ Stem_tremolo::raw_stencil (Grob *me, Real slope, Direction dir)
   thick *= ss;
 
   Stencil a;
-  if (style == ly_symbol2scm ("rectangle"))
+  if (scm_is_eq (style, ly_symbol2scm ("rectangle")))
     a = Lookup::rotated_box (slope, width, thick, blot);
   else
     a = Lookup::beam (slope, width, thick, blot);
index f21e0de6b5dac5b7dffbd0a3b1da25f4fcbb0562..6b4b95b015ef140c1a98427ba7a6cfcfa0430421 100644 (file)
@@ -533,7 +533,8 @@ Stem::calc_positioning_done (SCM smob)
   bool is_harmonic_centered = false;
   for (vsize i = 0; i < heads.size (); i++)
     is_harmonic_centered = is_harmonic_centered
-                           || heads[i]->get_property ("style") == ly_symbol2scm ("harmonic");
+                           || scm_is_eq (heads[i]->get_property ("style"),
+                                         ly_symbol2scm ("harmonic"));
   is_harmonic_centered = is_harmonic_centered && is_invisible (me);
 
   Real w = hed->extent (hed, X_AXIS)[dir];
index c156d0aa9f2d31d0191e33c6105ba93455c45b0d..06aabb992f943494b09561e3aa039d1bfbae5843 100644 (file)
@@ -33,8 +33,7 @@ void register_stencil_head (SCM symbol)
 bool
 is_stencil_head (SCM symbol)
 {
-  return scm_object_property (symbol, ly_symbol2scm ("stencil-head?"))
-         == SCM_BOOL_T;
+  return to_boolean (scm_object_property (symbol, ly_symbol2scm ("stencil-head?")));
 }
 
 SCM
index 91f1333867c4d03652d264b57a481b2d67884458..0bdb00a8edd054b5df18157af46c22324646ae83 100644 (file)
@@ -113,7 +113,7 @@ get_number_list (SCM l)
       if (scm_is_number (scm_car (l)))
         return l;
       SCM res = get_number_list (scm_car (l));
-      if (res == SCM_BOOL_F)
+      if (scm_is_false (res))
         return get_number_list (scm_cdr (l));
       return res;
     }
@@ -129,19 +129,18 @@ get_path_list (SCM l)
 {
   if (scm_is_pair (l))
     {
-      if (scm_memv (scm_car (l),
-                    scm_list_n (ly_symbol2scm ("moveto"),
-                                ly_symbol2scm ("rmoveto"),
-                                ly_symbol2scm ("lineto"),
-                                ly_symbol2scm ("rlineto"),
-                                ly_symbol2scm ("curveto"),
-                                ly_symbol2scm ("rcurveto"),
-                                ly_symbol2scm ("closepath"),
-                                SCM_UNDEFINED))
-          != SCM_BOOL_F)
+      if (scm_is_true (scm_memv (scm_car (l),
+                                 scm_list_n (ly_symbol2scm ("moveto"),
+                                             ly_symbol2scm ("rmoveto"),
+                                             ly_symbol2scm ("lineto"),
+                                             ly_symbol2scm ("rlineto"),
+                                             ly_symbol2scm ("curveto"),
+                                             ly_symbol2scm ("rcurveto"),
+                                             ly_symbol2scm ("closepath"),
+                                             SCM_UNDEFINED))))
         return l;
       SCM res = get_path_list (scm_car (l));
-      if (res == SCM_BOOL_F)
+      if (scm_is_false (res))
         return get_path_list (scm_cdr (l));
       return res;
     }
@@ -530,8 +529,8 @@ all_commands_to_absolute_and_group (SCM expr)
   bool first = true;
   while (scm_is_pair (expr))
     {
-      if (scm_car (expr) == ly_symbol2scm ("moveto")
-          || (scm_car (expr) == ly_symbol2scm ("rmoveto") && first))
+      if (scm_is_eq (scm_car (expr), ly_symbol2scm ("moveto"))
+          || (scm_is_eq (scm_car (expr), ly_symbol2scm ("rmoveto")) && first))
         {
           Real x = robust_scm2double (scm_cadr (expr), 0.0);
           Real y = robust_scm2double (scm_caddr (expr), 0.0);
@@ -539,7 +538,7 @@ all_commands_to_absolute_and_group (SCM expr)
           current = start;
           expr = scm_cdddr (expr);
         }
-      if (scm_car (expr) == ly_symbol2scm ("rmoveto"))
+      if (scm_is_eq (scm_car (expr), ly_symbol2scm ("rmoveto")))
         {
           Real x = robust_scm2double (scm_cadr (expr), 0.0);
           Real y = robust_scm2double (scm_caddr (expr), 0.0);
@@ -547,7 +546,7 @@ all_commands_to_absolute_and_group (SCM expr)
           current = start;
           expr = scm_cdddr (expr);
         }
-      else if (scm_car (expr) == ly_symbol2scm ("lineto"))
+      else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("lineto")))
         {
           Real x = robust_scm2double (scm_cadr (expr), 0.0);
           Real y = robust_scm2double (scm_caddr (expr), 0.0);
@@ -559,7 +558,7 @@ all_commands_to_absolute_and_group (SCM expr)
           current = Offset (x, y);
           expr = scm_cdddr (expr);
         }
-      else if (scm_car (expr) == ly_symbol2scm ("rlineto"))
+      else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("rlineto")))
         {
           Real x = robust_scm2double (scm_cadr (expr), 0.0);
           Real y = robust_scm2double (scm_caddr (expr), 0.0);
@@ -571,7 +570,7 @@ all_commands_to_absolute_and_group (SCM expr)
           current = (Offset (x, y) + current);
           expr = scm_cdddr (expr);
         }
-      else if (scm_car (expr) == ly_symbol2scm ("curveto"))
+      else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("curveto")))
         {
           Real x1 = robust_scm2double (scm_cadr (expr), 0.0);
           expr = scm_cddr (expr);
@@ -597,7 +596,7 @@ all_commands_to_absolute_and_group (SCM expr)
                           out);
           current = Offset (x3, y3);
         }
-      else if (scm_car (expr) == ly_symbol2scm ("rcurveto"))
+      else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("rcurveto")))
         {
           Real x1 = robust_scm2double (scm_cadr (expr), 0.0);
           expr = scm_cddr (expr);
@@ -623,7 +622,7 @@ all_commands_to_absolute_and_group (SCM expr)
                           out);
           current = (Offset (x3, y3) + current);
         }
-      else if (scm_car (expr) == ly_symbol2scm ("closepath"))
+      else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("closepath")))
         {
           if ((current[X_AXIS] != start[X_AXIS]) || (current[Y_AXIS] != start[Y_AXIS]))
             {
@@ -825,9 +824,9 @@ stencil_dispatcher (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings,
 {
   if (not scm_is_pair (expr))
     return;
-  if (scm_car (expr) == ly_symbol2scm ("draw-line"))
+  if (scm_is_eq (scm_car (expr), ly_symbol2scm ("draw-line")))
     make_draw_line_boxes (boxes, buildings, trans, scm_cdr (expr), true);
-  else if (scm_car (expr) == ly_symbol2scm ("dashed-line"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("dashed-line")))
     {
       expr = scm_cdr (expr);
       SCM th = scm_car (expr);
@@ -839,7 +838,7 @@ stencil_dispatcher (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings,
       SCM x2 = scm_car (expr);
       make_draw_line_boxes (boxes, buildings, trans, scm_list_5 (th, scm_from_double (0.0), scm_from_double (0.0), x1, x2), true);
     }
-  else if (scm_car (expr) == ly_symbol2scm ("circle"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("circle")))
     {
       expr = scm_cdr (expr);
       SCM rad = scm_car (expr);
@@ -855,7 +854,7 @@ stencil_dispatcher (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings,
                                               SCM_BOOL_T,
                                               SCM_UNDEFINED));
     }
-  else if (scm_car (expr) == ly_symbol2scm ("ellipse"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("ellipse")))
     {
       expr = scm_cdr (expr);
       SCM x_rad = scm_car (expr);
@@ -873,17 +872,17 @@ stencil_dispatcher (vector<Box> &boxes, vector<Drul_array<Offset> > &buildings,
                                               SCM_BOOL_T,
                                               SCM_UNDEFINED));
     }
-  else if (scm_car (expr) == ly_symbol2scm ("partial-ellipse"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("partial-ellipse")))
     make_partial_ellipse_boxes (boxes, buildings, trans, scm_cdr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("round-filled-box"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("round-filled-box")))
     make_round_filled_box_boxes (boxes, trans, scm_cdr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("named-glyph"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("named-glyph")))
     make_named_glyph_boxes (boxes, buildings, trans, scm_cdr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("polygon"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("polygon")))
     make_polygon_boxes (boxes, buildings, trans, scm_cdr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("path"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("path")))
     make_path_boxes (boxes, buildings, trans, scm_cdr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("glyph-string"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("glyph-string")))
     make_glyph_string_boxes (boxes, buildings, trans, scm_cdr (expr));
   else
     {
@@ -908,9 +907,9 @@ stencil_traverser (PangoMatrix trans, SCM expr)
 {
   if (scm_is_null (expr))
     return vector<Transform_matrix_and_expression> ();
-  else if (expr == ly_string2scm (""))
+  else if (scm_is_eq (expr, ly_string2scm ("")))
     return vector<Transform_matrix_and_expression> ();
-  else if (scm_car (expr) == ly_symbol2scm ("combine-stencil"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("combine-stencil")))
     {
       vector<Transform_matrix_and_expression> out;
       for (SCM s = scm_cdr (expr); scm_is_pair (s); s = scm_cdr (s))
@@ -920,23 +919,23 @@ stencil_traverser (PangoMatrix trans, SCM expr)
         }
       return out;
     }
-  else if (scm_car (expr) == ly_symbol2scm ("footnote"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("footnote")))
     return vector<Transform_matrix_and_expression> ();
-  else if (scm_car (expr) == ly_symbol2scm ("translate-stencil"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("translate-stencil")))
     {
       Real x = robust_scm2double (scm_caadr (expr), 0.0);
       Real y = robust_scm2double (scm_cdadr (expr), 0.0);
       pango_matrix_translate (&trans, x, y);
       return stencil_traverser (trans, scm_caddr (expr));
     }
-  else if (scm_car (expr) == ly_symbol2scm ("scale-stencil"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("scale-stencil")))
     {
       Real x = robust_scm2double (scm_caadr (expr), 0.0);
       Real y = robust_scm2double (scm_cadadr (expr), 0.0);
       pango_matrix_scale (&trans, x, y);
       return stencil_traverser (trans, scm_caddr (expr));
     }
-  else if (scm_car (expr) == ly_symbol2scm ("rotate-stencil"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("rotate-stencil")))
     {
       Real ang = robust_scm2double (scm_caadr (expr), 0.0);
       Real x = robust_scm2double (scm_car (scm_cadadr (expr)), 0.0);
@@ -946,16 +945,16 @@ stencil_traverser (PangoMatrix trans, SCM expr)
       pango_matrix_translate (&trans, -x, -y);
       return stencil_traverser (trans, scm_caddr (expr));
     }
-  else if (scm_car (expr) == ly_symbol2scm ("delay-stencil-evaluation"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("delay-stencil-evaluation")))
     // should not use the place-holder text, but no need for the warning below
     return vector<Transform_matrix_and_expression> ();
-  else if (scm_car (expr) == ly_symbol2scm ("grob-cause"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("grob-cause")))
     return stencil_traverser (trans, scm_caddr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("color"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("color")))
     return stencil_traverser (trans, scm_caddr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("transparent-stencil"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("transparent-stencil")))
     return stencil_traverser (trans, scm_cadr (expr));
-  else if (scm_car (expr) == ly_symbol2scm ("id"))
+  else if (scm_is_eq (scm_car (expr), ly_symbol2scm ("id")))
     return stencil_traverser (trans, scm_caddr (expr));
   else
     {
index 26e891dfb77698c0533054b231a9f4635b044da9..87e6496de778e2f3bfe3ed03fdfacd6a094ed47a 100644 (file)
@@ -32,28 +32,28 @@ interpret_stencil_expression (SCM expr,
 
       SCM head = scm_car (expr);
 
-      if (head == ly_symbol2scm ("delay-stencil-evaluation"))
+      if (scm_is_eq (head, ly_symbol2scm ("delay-stencil-evaluation")))
         {
           interpret_stencil_expression (scm_force (scm_cadr (expr)), func, func_arg, o);
           return;
         }
-      if (head == ly_symbol2scm ("transparent-stencil"))
+      if (scm_is_eq (head, ly_symbol2scm ("transparent-stencil")))
         return;
-      if (head == ly_symbol2scm ("footnote"))
+      if (scm_is_eq (head, ly_symbol2scm ("footnote")))
         return;
-      if (head == ly_symbol2scm ("translate-stencil"))
+      if (scm_is_eq (head, ly_symbol2scm ("translate-stencil")))
         {
           o += ly_scm2offset (scm_cadr (expr));
           expr = scm_caddr (expr);
         }
-      else if (head == ly_symbol2scm ("combine-stencil"))
+      else if (scm_is_eq (head, ly_symbol2scm ("combine-stencil")))
         {
 
           for (SCM x = scm_cdr (expr); scm_is_pair (x); x = scm_cdr (x))
             interpret_stencil_expression (scm_car (x), func, func_arg, o);
           return;
         }
-      else if (head == ly_symbol2scm ("grob-cause"))
+      else if (scm_is_eq (head, ly_symbol2scm ("grob-cause")))
         {
           SCM grob = scm_cadr (expr);
 
@@ -65,7 +65,7 @@ interpret_stencil_expression (SCM expr,
             (*func) (func_arg, scm_list_1 (ly_symbol2scm ("no-origin")));
           return;
         }
-      else if (head == ly_symbol2scm ("color"))
+      else if (scm_is_eq (head, ly_symbol2scm ("color")))
         {
           SCM color = scm_cadr (expr);
           SCM r = scm_car (color);
@@ -78,7 +78,7 @@ interpret_stencil_expression (SCM expr,
 
           return;
         }
-      else if (head == ly_symbol2scm ("id"))
+      else if (scm_is_eq (head, ly_symbol2scm ("id")))
         {
           SCM id = scm_cadr (expr);
 
@@ -88,7 +88,7 @@ interpret_stencil_expression (SCM expr,
 
           return;
         }
-      else if (head == ly_symbol2scm ("rotate-stencil"))
+      else if (scm_is_eq (head, ly_symbol2scm ("rotate-stencil")))
         {
           SCM args = scm_cadr (expr);
           SCM angle = scm_car (args);
@@ -104,7 +104,7 @@ interpret_stencil_expression (SCM expr,
 
           return;
         }
-      else if (head == ly_symbol2scm ("scale-stencil"))
+      else if (scm_is_eq (head, ly_symbol2scm ("scale-stencil")))
         {
           SCM args = scm_cadr (expr);
           SCM x_scale = scm_car (args);
@@ -142,7 +142,7 @@ find_font_function (void *fs, SCM x)
 {
   Font_list *me = (Font_list *) fs;
 
-  if (scm_car (x) == ly_symbol2scm ("placebox"))
+  if (scm_is_eq (scm_car (x), ly_symbol2scm ("placebox")))
     {
       SCM args = scm_cdr (x);
       SCM what = scm_caddr (args);
@@ -150,9 +150,9 @@ find_font_function (void *fs, SCM x)
       if (scm_is_pair (what))
         {
           SCM head = scm_car (what);
-          if (ly_symbol2scm ("text") == head)
+          if (scm_is_eq (head, ly_symbol2scm ("text")))
             me->fonts_ = scm_cons (scm_cadr (what), me->fonts_);
-          else if (head == ly_symbol2scm ("char"))
+          else if (scm_is_eq (head, ly_symbol2scm ("char")))
             me->fonts_ = scm_cons (scm_cadr (what), me->fonts_);
         }
     }
index ebf3cd6c15ad487bab6e67cde9c7891f3c525c35..f337beb3f4e555dbec5b3a69d26c44d277a53bef 100644 (file)
@@ -116,15 +116,15 @@ LY_DEFINE (ly_stencil_combine_at_edge, "ly:stencil-combine-at-edge",
   Stencil *s2 = Stencil::unsmob (second);
   Stencil result;
 
-  SCM_ASSERT_TYPE (s1 || first == SCM_BOOL_F || first == SCM_EOL,
+  SCM_ASSERT_TYPE (s1 || scm_is_false (first) || scm_is_null (first),
                    first, SCM_ARG1, __FUNCTION__, "Stencil, #f or ()");
-  SCM_ASSERT_TYPE (s2 || second == SCM_BOOL_F || second == SCM_EOL,
+  SCM_ASSERT_TYPE (s2 || scm_is_false (second) || scm_is_null (second),
                    second, SCM_ARG4, __FUNCTION__, "Stencil, #f or ()");
   LY_ASSERT_TYPE (is_axis, axis, 2);
   LY_ASSERT_TYPE (is_direction, direction, 3);
 
   Real p = 0.0;
-  if (padding != SCM_UNDEFINED)
+  if (!SCM_UNBNDP (padding))
     {
       LY_ASSERT_TYPE (scm_is_number, padding, 5);
       p = scm_to_double (padding);
@@ -163,15 +163,15 @@ LY_DEFINE (ly_stencil_stack, "ly:stencil-stack",
   Stencil *s2 = Stencil::unsmob (second);
   Stencil result;
 
-  SCM_ASSERT_TYPE (s1 || first == SCM_BOOL_F || first == SCM_EOL,
+  SCM_ASSERT_TYPE (s1 || scm_is_false (first) || scm_is_null (first),
                    first, SCM_ARG1, __FUNCTION__, "Stencil, #f or ()");
-  SCM_ASSERT_TYPE (s2 || second == SCM_BOOL_F || second == SCM_EOL,
+  SCM_ASSERT_TYPE (s2 || scm_is_false (second) || scm_is_null (second),
                    second, SCM_ARG4, __FUNCTION__, "Stencil, #f or ()");
   LY_ASSERT_TYPE (is_axis, axis, 2);
   LY_ASSERT_TYPE (is_direction, direction, 3);
 
   Real p = 0.0;
-  if (padding != SCM_UNDEFINED)
+  if (!SCM_UNBNDP (padding))
     {
       LY_ASSERT_TYPE (scm_is_number, padding, 5);
       p = scm_to_double (padding);
@@ -252,14 +252,14 @@ LY_DEFINE (ly_make_stencil, "ly:make-stencil",
                    expr, SCM_ARG1, __FUNCTION__, "registered stencil expression");
 
   Interval x;
-  if (xext != SCM_UNDEFINED)
+  if (!SCM_UNBNDP (xext))
     {
       LY_ASSERT_TYPE (is_number_pair, xext, 2);
       x = ly_scm2interval (xext);
     }
 
   Interval y;
-  if (yext != SCM_UNDEFINED)
+  if (!SCM_UNBNDP (yext))
     {
       LY_ASSERT_TYPE (is_number_pair, yext, 3);
       y = ly_scm2interval (yext);
index 41eb2f1e852498c7fc0cf454f9c9c892b124b307..980618ceaa5d965fdb8900372d77d60ff0350747 100644 (file)
@@ -55,7 +55,7 @@ Stencil::extent (Axis a) const
 bool
 Stencil::is_empty () const
 {
-  return (expr_ == SCM_EOL
+  return (scm_is_null (expr_)
           || dim_.is_empty ());
 }
 
index c1d0543f8c44ef3081ad5b58be0e759d40404825..bf8056e16aa88eb56c8087869ef37afc6bbb7594 100644 (file)
@@ -36,7 +36,7 @@ LY_DEFINE (ly_make_stream_event, "ly:make-stream-event",
   /* should be scm_list_p, but scm_list_p is expensive. */
   LY_ASSERT_TYPE (scm_is_pair, proplist, 2);
 
-  if (proplist == SCM_UNDEFINED)
+  if (SCM_UNBNDP (proplist))
     proplist = SCM_EOL;
 
   Stream_event *e = new Stream_event (cl, proplist);
index 674f22fda4d3c423141c88ba12fd4fdc52ea9523..7fb596c26475c7a088797601c14f978ce1bf19b6 100644 (file)
@@ -68,7 +68,7 @@ bool
 Stream_event::internal_in_event_class (SCM class_name)
 {
   SCM cl = get_property ("class");
-  return scm_c_memq (class_name, cl) != SCM_BOOL_F;
+  return scm_is_true (scm_c_memq (class_name, cl));
 }
 
 MAKE_SCHEME_CALLBACK (Stream_event, undump, 1);
@@ -87,9 +87,9 @@ Stream_event::make_transposable ()
       SCM val = scm_cdr (entry);
 
       if ((Pitch::is_smob (val)
-           || (prop == ly_symbol2scm ("element") && Music::is_smob (val))
-           || (prop == ly_symbol2scm ("elements") && scm_is_pair (val))
-           || (prop == ly_symbol2scm ("pitch-alist") && scm_is_pair (val)))
+           || (scm_is_eq (prop, ly_symbol2scm ("element")) && Music::is_smob (val))
+           || (scm_is_eq (prop, ly_symbol2scm ("elements")) && scm_is_pair (val))
+           || (scm_is_eq (prop, ly_symbol2scm ("pitch-alist")) && scm_is_pair (val)))
           && scm_is_false (scm_assq (prop, mutable_property_alist_)))
         mutable_property_alist_
           = scm_acons (prop, ly_music_deep_copy (val), mutable_property_alist_);
index ebc77e86ba0b17c24fc7d3b5903cf3e5ea64d51e..73a3c8ccc75cb9cdb99674f6809c75c36f0bb1d1 100644 (file)
@@ -132,10 +132,10 @@ Bracket_nesting_group::from_list (SCM x)
           node->from_list (entry);
           children_.push_back (node);
         }
-      else if (entry == ly_symbol2scm ("SystemStartBrace")
-               || entry == ly_symbol2scm ("SystemStartBracket")
-               || entry == ly_symbol2scm ("SystemStartBar")
-               || entry == ly_symbol2scm ("SystemStartSquare"))
+      else if (scm_is_eq (entry, ly_symbol2scm ("SystemStartBrace"))
+               || scm_is_eq (entry, ly_symbol2scm ("SystemStartBracket"))
+               || scm_is_eq (entry, ly_symbol2scm ("SystemStartBar"))
+               || scm_is_eq (entry, ly_symbol2scm ("SystemStartSquare")))
         symbol_ = entry;
       else
         children_.push_back (new Bracket_nesting_staff (0));
index 6a898559b317e7eb1fdaba6d93a8197100807474..563a035acc6f97f1b9ad3d099680af20a7ed19a0 100644 (file)
@@ -129,13 +129,13 @@ System_start_delimiter::print (SCM smob)
     }
 
   Stencil m;
-  if (glyph_sym == ly_symbol2scm ("bracket"))
+  if (scm_is_eq (glyph_sym, ly_symbol2scm ("bracket")))
     m = staff_bracket (me, len);
-  else if (glyph_sym == ly_symbol2scm ("brace"))
+  else if (scm_is_eq (glyph_sym, ly_symbol2scm ("brace")))
     m = staff_brace (me, len);
-  else if (glyph_sym == ly_symbol2scm ("bar-line"))
+  else if (scm_is_eq (glyph_sym, ly_symbol2scm ("bar-line")))
     m = simple_bar (me, len);
-  else if (glyph_sym == ly_symbol2scm ("line-bracket"))
+  else if (scm_is_eq (glyph_sym, ly_symbol2scm ("line-bracket")))
     m = line_bracket (me, len);
 
   m.translate_axis (ext.center (), Y_AXIS);
index 6d6b5ac8f3b2297dc72db4065c2b50491bc1426e..61779473c3573612599f600a3b6559e7db4c2fbf 100644 (file)
@@ -594,7 +594,7 @@ System::get_paper_system ()
       Grob *g = entries[j].grob_;
       Stencil st = g->get_print_stencil ();
 
-      if (st.expr () == SCM_EOL)
+      if (scm_is_null (st.expr ()))
         continue;
 
       Offset o;
index 42dd7e4b1fdb7e9351c8d178f1145a37b23e3ed5..4d47d77982a33d4ae34dff062a2862f0e11ed395 100644 (file)
@@ -111,12 +111,12 @@ Tab_note_heads_engraver::process_music ()
   bool length_changed = (note_events_.size () != fret_count);
   vsize index;
 
-  if (string_fret_finger != SCM_EOL)
+  if (!scm_is_null (string_fret_finger))
     for (vsize i = 0; i < fret_count; i++)
       {
         note_entry = scm_list_ref (string_fret_finger, scm_from_int (i));
         string_number = scm_car (note_entry);
-        if (string_number != SCM_BOOL_F)
+        if (scm_is_true (string_number))
           {
             fret = scm_cadr (note_entry);
             fret_label = scm_call_3 (fret_procedure,
index 909ab9b099666203e133796e53c78e328fff40a7..012718d6215cc94855dd25536df4485673a470e9 100644 (file)
@@ -91,7 +91,7 @@ Text_interface::interpret_string (SCM layout_smob,
                                      SCM_BOOL_F);
   SCM music_encodings = ly_lily_module_constant ("all-music-font-encodings");
 
-  bool is_music = (scm_memq (encoding, music_encodings) != SCM_BOOL_F);
+  bool is_music = scm_is_true (scm_memq (encoding, music_encodings));
   return fm->text_stencil (layout, str, is_music).smobbed_copy ();
 }
 
index f944454a71ccbaf9400305449f56f7adc8385d03..1faa3d94454c4c59ed12ae7e8393c05cae0129dd 100644 (file)
@@ -1200,7 +1200,8 @@ Tie_formatting_problem::set_manual_tie_configuration (SCM manual_configs)
             {
               spec.has_manual_position_ = true;
               spec.manual_position_ = scm_to_double (scm_car (entry));
-              spec.has_manual_delta_y_ = (scm_inexact_p (scm_car (entry)) == SCM_BOOL_T);
+              /* TODO: check whether inexact? is an appropriate condition here */
+              spec.has_manual_delta_y_ = (scm_is_true (scm_inexact_p (scm_car (entry))));
             }
 
           if (scm_is_number (scm_cdr (entry)))
index 0413495713a8d3637db91da615aa9a855392ab65..0ccf2c5beb3298e44e0f1d5e3e0814ed8ee029b6 100644 (file)
@@ -33,7 +33,7 @@ Tie_specification::from_grob (Grob *tie)
   SCM pos_scm = tie->get_property ("staff-position");
   if (scm_is_number (pos_scm))
     {
-      has_manual_delta_y_ = (scm_inexact_p (pos_scm) == SCM_BOOL_T);
+      has_manual_delta_y_ = !ly_is_rational (pos_scm);
       manual_position_ = scm_to_double (tie->get_property ("staff-position"));
       has_manual_position_ = true;
     }
index 53205cbb6cec18727a15ec91714570e3969b1634..46e42679aa104fecf90fc88a0dacbf9927d0a23a 100644 (file)
@@ -80,7 +80,7 @@ Time_signature_engraver::process_music ()
       time_signature_ = make_item ("TimeSignature", time_cause_);
       time_signature_->set_property ("fraction", fr);
 
-      if (last_time_fraction_ == SCM_BOOL_F)
+      if (scm_is_false (last_time_fraction_))
         time_signature_->set_property ("break-visibility",
                                        get_property ("initialTimeSignatureVisibility"));
 
@@ -104,7 +104,7 @@ Time_signature_engraver::process_music ()
 void
 Time_signature_engraver::stop_translation_timestep ()
 {
-  if (time_signature_ && (time_cause_ != SCM_EOL))
+  if (time_signature_ && !scm_is_null (time_cause_))
     {
       Moment *mp = Moment::unsmob (get_property ("measurePosition"));
       if (mp && (mp->main_part_ > Rational (0))
index 1368e7376246dfd2dd224633863995879e638f9c..168f1ad6de676f38d96f84fe8782b8c0e39c4924 100644 (file)
@@ -60,7 +60,7 @@ get_translator (SCM sym)
   if (global_translator_dict)
     global_translator_dict->try_retrieve (sym, &v);
 
-  if (v == SCM_BOOL_F)
+  if (scm_is_false (v))
     {
       warning (_f ("unknown translator: `%s'", ly_symbol2string (sym).c_str ()));
       return 0;
index 92655f21a4b9eaebfd7610eada175e54c1ab07d8..e14ed760820a2d411fb8512c25ac1f36d3b5f520 100644 (file)
 Translator_group *
 get_translator_group (SCM sym)
 {
-  if (sym == ly_symbol2scm ("Engraver_group"))
+  if (scm_is_eq (sym, ly_symbol2scm ("Engraver_group")))
     return new Engraver_group ();
-  else if (sym == ly_symbol2scm ("Performer_group"))
+  else if (scm_is_eq (sym, ly_symbol2scm ("Performer_group")))
     return new Performer_group ();
-  else if (sym == ly_symbol2scm ("Score_engraver"))
+  else if (scm_is_eq (sym, ly_symbol2scm ("Score_engraver")))
     return new Score_engraver ();
-  else if (sym == ly_symbol2scm ("Score_performer"))
+  else if (scm_is_eq (sym, ly_symbol2scm ("Score_performer")))
     return new Score_performer ();
 
   error (_f ("fatal error.  Couldn't find type: %s",
index c46b9e9f75ed0343b0e3e4e1798cff2273444cb5..2af774e414c254c402241b9a0a4524ba0f54cec7 100644 (file)
@@ -503,7 +503,7 @@ LY_DEFINE (ly_ttf_ps_name, "ly:ttf-ps-name",
   LY_ASSERT_TYPE (scm_is_string, ttf_file_name, 1);
 
   int i = 0;
-  if (idx != SCM_UNDEFINED)
+  if (!SCM_UNBNDP (idx))
     {
       LY_ASSERT_TYPE (scm_is_integer, idx, 2);
       i = scm_to_int (idx);
@@ -553,7 +553,7 @@ LY_DEFINE (ly_ttf_2_pfa, "ly:ttf->pfa",
   LY_ASSERT_TYPE (scm_is_string, ttf_file_name, 1);
 
   int i = 0;
-  if (idx != SCM_UNDEFINED)
+  if (!SCM_UNBNDP (idx))
     {
       LY_ASSERT_TYPE (scm_is_integer, idx, 2);
       i = scm_to_int (idx);
index 5c893784995e974df4ab6d027152de5b5df5b14d..28803d5bf6c3d1c9e0c0b26164da90e456d3dbaf 100644 (file)
@@ -268,7 +268,7 @@ Tuplet_bracket::print (SCM smob)
   */
   SCM bracket_vis_prop = me->get_property ("bracket-visibility");
   bool bracket_prop = ly_scm2bool (bracket_vis_prop); // Flag, user has set bracket-visibility prop.
-  bool bracket = (bracket_vis_prop == ly_symbol2scm ("if-no-beam"));
+  bool bracket = scm_is_eq (bracket_vis_prop, ly_symbol2scm ("if-no-beam"));
   if (scm_is_bool (bracket_vis_prop))
     bracket_visibility = bracket_prop;
   else if (bracket)
index bfe35480b159898f5971b0127e60fd42aabf226b..381aa994f38cbb567bf36ad630de61f0a2441963 100644 (file)
@@ -336,7 +336,7 @@ count_beams_not_touching_stem (SCM beaming)
 
   for (SCM s = scm_car (beaming); scm_is_pair (s); s = scm_cdr (s))
     {
-      if (scm_c_memq (scm_car (s), scm_cdr (beaming)) != SCM_BOOL_F)
+      if (scm_is_true (scm_c_memq (scm_car (s), scm_cdr (beaming))))
         ++count;
     }
 
index cc9a489472ab6af590fa297c78c79e5ac175eb06..a39e0cef59b2fac100b07f0680524008c117cddc 100644 (file)
@@ -247,7 +247,7 @@ Vaticana_ligature_engraver::align_heads (vector<Grob_info> const &primitives,
        */
 
       SCM glyph_name_scm = primitive->get_property ("glyph-name");
-      if (glyph_name_scm == SCM_EOL)
+      if (scm_is_null (glyph_name_scm))
         {
           primitive->programming_error ("Vaticana_ligature:"
                                         " undefined glyph-name ->"
@@ -260,7 +260,7 @@ Vaticana_ligature_engraver::align_heads (vector<Grob_info> const &primitives,
       if (prev_primitive) /* urgh, need prev_primitive only here */
         {
           SCM delta_pitch_scm = prev_primitive->get_property ("delta-position");
-          if (delta_pitch_scm != SCM_EOL)
+          if (!scm_is_null (delta_pitch_scm))
             delta_pitch = scm_to_int (delta_pitch_scm);
           else
             {
@@ -491,7 +491,7 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature,
 
       int delta_pitch;
       SCM delta_pitch_scm = primitive->get_property ("delta-position");
-      if (delta_pitch_scm != SCM_EOL)
+      if (!scm_is_null (delta_pitch_scm))
         delta_pitch = scm_to_int (delta_pitch_scm);
       else
         {
index fd95c43380e97123e942de836a732fa45727eee3..2066716b802738b705fed27b35207fa78e5400dd 100644 (file)
@@ -86,7 +86,7 @@ vaticana_brew_flexa (Grob *me,
 
   Real interval;
   SCM flexa_height_scm = me->get_property ("flexa-height");
-  if (flexa_height_scm != SCM_EOL)
+  if (!scm_is_null (flexa_height_scm))
     interval = scm_to_int (flexa_height_scm);
   else
     {
@@ -200,7 +200,7 @@ Stencil
 vaticana_brew_primitive (Grob *me)
 {
   SCM glyph_name_scm = me->get_property ("glyph-name");
-  if (glyph_name_scm == SCM_EOL)
+  if (scm_is_null (glyph_name_scm))
     {
       me->programming_error ("Vaticana_ligature: "
                              "undefined glyph-name -> ignoring grob");
@@ -222,7 +222,7 @@ vaticana_brew_primitive (Grob *me)
 
   SCM delta_pitch_scm = me->get_property ("delta-position");
   int delta_pitch;
-  if (delta_pitch_scm != SCM_EOL)
+  if (!scm_is_null (delta_pitch_scm))
     delta_pitch = scm_to_int (delta_pitch_scm);
   else
     delta_pitch = 0;
index fe568a5fd50bbbd7057371a1a2c67fc8b85916e0..60c8987b3eecd09dafb2551b474627273efc8778 100644 (file)
@@ -82,10 +82,10 @@ Volta_engraver::process_music ()
       SCM c = scm_car (cs);
 
       if (scm_is_pair (c)
-          && scm_car (c) == ly_symbol2scm ("volta")
+          && scm_is_eq (scm_car (c), ly_symbol2scm ("volta"))
           && scm_is_pair (scm_cdr (c)))
         {
-          if (scm_cadr (c) == SCM_BOOL_F)
+          if (scm_is_false (scm_cadr (c)))
             end = true;
           else
             start_string_ = scm_cadr (c);
index 09c2495f05dae8febe0184981b174d2f1d3cedf1..bcbc34f8cb3b9d3800436d495ac33c8ce65cc6e9 100644 (file)
@@ -85,8 +85,7 @@ Volta_repeat_iterator::add_repeat_command (SCM what)
   SCM current_reps = SCM_EOL;
   Context *where = get_outlet ()->where_defined (reps, &current_reps);
 
-  if (where
-      && (current_reps == SCM_EOL || scm_is_pair (current_reps)))
+  if (where && ly_cheap_is_list (current_reps))
     {
       current_reps = scm_cons (what, current_reps);
       where->set_property (reps, current_reps);