]> git.donarmstrong.com Git - lilypond.git/blob - scm/safe-lily.scm
* input/regression/new-markup-scheme.ly: oops. font-family=music
[lilypond.git] / scm / safe-lily.scm
1 ;;;; safe-lily.scm -- 
2 ;;;;
3 ;;;; source file of the GNU LilyPond music typesetter
4 ;;;; 
5 ;;;; (c)  2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
6
7 (define safe-objects
8   (map
9    (lambda (sym)
10      (cons sym (primitive-eval sym)))
11    '(ly:add-interface
12      ly:add-moment
13      ly:all-grob-interfaces
14      ly:all-output-backend-commands
15      ly:all-stencil-expressions
16      ly:bracket
17      ly:context-find
18      ly:context-id
19      ly:context-name
20      ly:context-parent
21      ly:context-property
22      ly:context-property-where-defined
23      ly:context-pushpop-property
24      ly:context-set-property!
25      ly:context-unset-property
26      ly:context?
27      ly:dimension?
28      ly:dir?
29      ly:div-moment
30      ly:duration-dot-count
31      ly:duration-factor
32      ly:duration-log
33      ly:duration<?
34      ly:duration?
35      ly:export
36      ly:font-get-glyph
37      ly:font-design-size
38      ly:font-file-name
39      ly:font-magnification
40      ly:font-metric?
41      ly:font-name
42      ly:format-output
43      ly:get-all-function-documentation
44      ly:get-all-translators
45      ly:get-default-font
46      ly:get-glyph
47      ly:get-option
48      ly:grob-alist-chain
49      ly:grob-extent
50      ly:grob-original
51      ly:grob-layout
52      ly:grob-parent
53      ly:grob-pq-less?
54      ly:grob-property
55      ly:grob-script-priority-less
56      ly:grob-set-property!
57      ly:grob-staff-position
58      ly:grob-suicide
59      ly:grob-system
60      ly:grob-translate-axis!
61      ly:grob?
62      ly:input-location
63      ly:input-location?
64      ly:input-message
65      ly:intlog2
66      ly:item-break-dir
67      ly:item?
68      ly:iterator?
69      ly:make-bare-music
70      ly:make-duration
71      ly:make-moment
72      ly:make-music-function
73      ly:make-pitch
74      ly:make-stencil
75      ly:moment<?
76      ly:moment?
77      ly:mul-moment
78      ly:music-compress
79      ly:music-deep-copy
80      ly:music-duration-compress
81      ly:music-duration-length
82      ly:music-length
83      ly:music-list?
84      ly:music-mutable-properties
85      ly:music-name
86      ly:music-property
87      ly:music-scorify
88      ly:music-set-property!
89      ly:music-transpose
90      ly:music?
91      ly:lily-parser?
92      ly:number->string
93      ly:option-usage
94      ly:output-def-clone
95      ly:output-def-scope
96      ly:output-description
97      ly:paper-book?
98      ly:layout-def?
99      ly:paper-get-font
100      ly:paper-get-number
101      ly:paper-system-break-before-penalty
102      ly:paper-system-extent
103      ly:paper-system-number
104      ly:paper-system-stencil
105      ly:paper-system?
106      ly:output-def-lookup
107      ly:parse-string
108      ly:parser-parse-string
109      ly:parser-print-book
110      ly:parser-print-score
111      ly:pitch-alteration
112      ly:pitch-diff
113      ly:pitch-notename
114      ly:pitch-octave
115      ly:pitch-quartertones
116      ly:pitch-semitones
117      ly:pitch-steps
118      ly:pitch-transpose
119      ly:pitch<?
120      ly:pitch?
121      ly:round-filled-box
122      ly:run-translator
123      ly:set-option
124      ly:set-point-and-click
125      ly:spanner-broken-into
126      ly:spanner-get-bound
127      ly:spanner?
128      ly:stencil-add
129      ly:stencil-align-to!
130      ly:stencil-combine-at-edge
131      ly:stencil-expr
132      ly:stencil-extent
133      ly:stencil-moved-to-edge
134      ly:stencil-set-extent!
135      ly:stencil-translate
136      ly:stencil-translate-axis
137      ly:stencil?
138      ly:text-dimension
139      ly:translator-description
140      ly:translator-name
141      ly:translator?
142      ly:transpose-key-alist
143      ly:unit
144      ly:version
145      ly:warn
146
147      ;; SCM-only functionality
148      set-global-staff-size
149
150      ;; FIXME: cannot change staff size in --safe-mode
151      ;;$defaultpaper
152      ;;$defaultmidi
153      ;;$defaultlayout
154
155      ;; need these for parsing init files:
156      ;; todo: should have a macro define-safe-public
157      DOUBLE-FLAT
158      DOUBLE-SHARP
159      FLAT
160      NATURAL
161      SEMI-FLAT
162      SEMI-SHARP
163      SEMI-TONE
164      SHARP
165      START
166      STOP
167      THREE-Q-FLAT
168      THREE-Q-SHARP
169
170      alist->hash-table
171      chord-name->german-markup
172      context-spec-music
173      default-chord-modifier-list
174      make-articulation
175      make-event-chord
176      make-music
177      make-penalty-music
178      make-span-event
179      make-voice-props-revert
180      make-voice-props-set
181      note-name->german-markup
182      sequential-music-to-chord-exceptions
183      set-default-paper-size
184      set-part-combine-listener
185
186      Accidental_interface::after_line_breaking
187      Accidental_interface::print
188      Ambitus::print
189      Arpeggio::print
190      Arpeggio::brew_chord_bracket
191      Arpeggio::width_callback
192      Axis_group_interface::group_extent_callback
193      Bar_line::before_line_breaking
194      Bar_line::get_staff_bar_size
195      Bar_line::print
196      Beam::after_line_breaking
197      Beam::before_line_breaking
198      Beam::check_concave
199      Beam::least_squares
200      Beam::print
201      Beam::quanting
202      Beam::shift_region_to_valid
203      Beam::slope_damping
204      Beam::space_function
205      Break_align_interface::alignment_callback
206      Breathing_sign::offset_callback
207      Chord_name::after_line_breaking
208      Clef::before_line_breaking
209      Clef::print
210      Cluster::print
211      Cluster_beacon::height
212      Custos::print
213      Dot_column::side_position
214      Dots::print
215      Hairpin::print
216      Hara_kiri_group_spanner::force_hara_kiri_callback
217      Hara_kiri_group_spanner::y_extent
218      Horizontal_bracket::print
219      Hyphen_spanner::print
220      Hyphen_spanner::set_spacing_rods
221      Key_signature_interface::print
222      Line_spanner::after_line_breaking
223      Line_spanner::print
224      Lyric_extender::print
225      Measure_grouping::print
226      Mensural_ligature::brew_ligature_primitive
227      Mensural_ligature::print
228      Multi_measure_rest::percent
229      Multi_measure_rest::print
230      Multi_measure_rest::set_spacing_rods
231      Note_head::print
232      Note_head::brew_ez_stencil
233      Ottava_bracket::print
234      Paper_column::before_line_breaking
235      Paper_column::print
236      Percent_repeat_item_interface::beat_slash
237      Percent_repeat_item_interface::double_percent
238      Piano_pedal_bracket::print
239      Rest::after_line_breaking
240      Rest::extent_callback
241      Rest::polyphonic_offset_callback
242      Rest::print
243      Script_column::before_line_breaking
244      Script_interface::before_line_breaking
245      Script_interface::print
246      Self_alignment_interface::aligned_on_parent
247      Self_alignment_interface::aligned_on_self
248      Self_alignment_interface::centered_on_other_axis_parent
249      Self_alignment_interface::centered_on_parent
250      Separating_group_spanner::set_spacing_rods
251      Side_position_interface::aligned_on_support_refpoints
252      Side_position_interface::aligned_side
253      Slur::after_line_breaking
254      Slur::height
255      Slur::print
256      Spacing_spanner::set_springs
257      Span_bar::before_line_breaking
258      Span_bar::get_bar_size
259      Span_bar::print
260      Span_bar::width_callback
261      Spanner::set_spacing_rods
262      Staff_symbol::print
263      Staff_symbol_referencer::callback
264      Stem::before_line_breaking
265      Stem::width_callback
266      Stem::height
267      Stem::offset_callback
268      Stem::print
269      Stem_tremolo::height
270      Stem_tremolo::print
271      Sustain_pedal::print
272      System_start_delimiter::after_line_breaking
273      System_start_delimiter::print
274      Text_interface::print
275      Text_spanner::print
276      Tie::print
277      Tie_column::after_line_breaking
278      Time_signature::print
279      Tuplet_bracket::after_line_breaking
280      Tuplet_bracket::before_line_breaking
281      Tuplet_bracket::print
282      Vaticana_ligature::brew_ligature_primitive
283      Vaticana_ligature::print
284      Volta_bracket_interface::print
285      )))
286
287 (define-public (make-safe-lilypond-module)
288   (let* ((m (make-safe-module)))
289     (for-each (lambda (p) (module-define! m (car p) (cdr p))) safe-objects)
290     m))