X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fstencil-expression.cc;h=8d804196202368c1eaf1043cac78de4e91253fb2;hb=b872748c6aa8bb721ced458691b38ac2fac5dfc8;hp=ea9c08871979a16620974b071798210c0b6c63b3;hpb=a6a4b3fc2009f17a1a48cca0c11bfd3f38645937;p=lilypond.git diff --git a/lily/stencil-expression.cc b/lily/stencil-expression.cc index ea9c088719..8d80419620 100644 --- a/lily/stencil-expression.cc +++ b/lily/stencil-expression.cc @@ -1,35 +1,41 @@ /* - stencil-expression.cc -- keep track of which expressions are valid - stencil exps. + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2005--2015 Han-Wen Nienhuys - (c) 2005--2008 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "stencil.hh" +#include "protected-scm.hh" -static SCM heads; +static Protected_scm heads (SCM_EOL); void register_stencil_head (SCM symbol) { - if (!heads) - heads = scm_permanent_object (scm_cons (SCM_EOL, SCM_EOL)); - scm_set_object_property_x (symbol, ly_symbol2scm ("stencil-head?"), SCM_BOOL_T); - scm_set_cdr_x (heads, scm_cons (symbol, scm_cdr (heads))); + heads = scm_cons (symbol, heads); } 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 all_stencil_heads () { - return scm_cdr (heads); + return heads; } -