/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2000--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 2000--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Input *
Context_def::origin () const
{
- return Input::unsmob (input_location_);
+ return unsmob<Input> (input_location_);
}
Context_def::Context_def (Context_def const &s)
{
}
-const char Context_def::type_p_name_[] = "ly:context-def?";
+const char * const Context_def::type_p_name_ = "ly:context-def?";
int
-Context_def::print_smob (SCM port, scm_print_state *)
+Context_def::print_smob (SCM port, scm_print_state *) const
{
scm_puts ("#<Context_def ", port);
scm_display (context_name_, port);
}
SCM
-Context_def::mark_smob ()
+Context_def::mark_smob () const
{
ASSERT_LIVE_IS_ALLOWED (self_scm ());
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;
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");
{
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);
}
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;
vector<Context_def *> accepteds;
for (SCM s = accepted; scm_is_pair (s); s = scm_cdr (s))
- if (Context_def *t = Context_def::unsmob (find_context_def (odef,
+ if (Context_def *t = unsmob<Context_def> (find_context_def (odef,
scm_car (s))))
accepteds.push_back (t);
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
- && (scm_is_pair (arg)
- || ly_is_procedure (arg)
- || get_translator (arg)))
- l1 = scm_delete_x (arg, l1);
+ else if (scm_is_eq (tag, ly_symbol2scm ("remove")))
+ l1 = scm_delq_x (arg, l1);
}
return l1;
" @samp{property-ops}, @samp{context-name}, @samp{group-type}.")
{
LY_ASSERT_SMOB (Context_def, def, 1);
- Context_def *cd = Context_def::unsmob (def);
+ Context_def *cd = unsmob<Context_def> (def);
LY_ASSERT_TYPE (ly_is_symbol, sym, 2);
SCM res = cd->lookup (sym);
LY_ASSERT_SMOB (Context_def, def, 1);
LY_ASSERT_SMOB (Context_mod, mod, 2);
- Context_def *cd = Context_def::unsmob (def)->clone ();
+ Context_def *cd = unsmob<Context_def> (def)->clone ();
- for (SCM s = Context_mod::unsmob (mod)->get_mods ();
+ for (SCM s = unsmob<Context_mod> (mod)->get_mods ();
scm_is_pair (s);
s = scm_cdr (s))
cd->add_context_mod (scm_car (s));