]> git.donarmstrong.com Git - lilypond.git/blob - scm/safe-lily.scm
* scm/lily-library.scm (interval-translate): new function
[lilypond.git] / scm / safe-lily.scm
1 ;;;; safe-lily.scm -- 
2 ;;;;
3 ;;;; source file of the GNU LilyPond music typesetter
4 ;;;; 
5 ;;;; (c) 2004--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
6
7 (map
8  (lambda (sym)
9    (set! safe-objects (cons (cons sym (primitive-eval sym))
10                             safe-objects)))
11  '(ly:add-interface
12    ly:moment-add
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:moment-div
30    ly:duration-dot-count
31    ly:duration-factor
32    ly:duration-log
33    ly:duration<?
34    ly:duration?
35    ly:error
36    ly:export
37    ly:font-get-glyph
38    ly:font-design-size
39    ly:font-file-name
40    ly:font-magnification
41    ly:font-metric?
42    ly:font-name
43    ly:format-output
44    ly:get-all-function-documentation
45    ly:get-all-translators
46    ly:get-glyph
47    ly:get-option
48    ly:grob-alist-chain
49    ly:grob-default-font
50    ly:grob-extent
51    ly:grob-original
52    ly:grob-layout
53    ly:grob-parent
54    ly:grob-pq-less?
55    ly:grob-property
56    ly:grob-script-priority-less
57    ly:grob-set-property!
58    ly:grob-staff-position
59    ly:grob-suicide!
60    ly:grob-system
61    ly:grob-translate-axis!
62    ly:grob?
63    ly:input-file-line-char-column
64    ly:input-location?
65    ly:input-message
66    ly:intlog2
67    ly:item-break-dir
68    ly:item?
69    ly:iterator?
70    ly:make-music
71    ly:make-duration
72    ly:make-moment
73    ly:make-music-function
74    ly:make-pitch
75    ly:make-stencil
76    ly:moment<?
77    ly:moment?
78    ly:moment-mul
79    ly:music-compress
80    ly:music-deep-copy
81    ly:music-duration-compress
82    ly:music-duration-length
83    ly:music-length
84    ly:music-list?
85    ly:music-mutable-properties
86    ly:music-name
87    ly:music-property
88    ly:make-score
89    ly:music-set-property!
90    ly:music-transpose
91    ly:music?
92    ly:lily-parser?
93    ly:message
94    ly:number->string
95    ly:option-usage
96    ly:output-def-clone
97    ly:output-def-scope
98    ly:output-description
99    ly:paper-book?
100    ly:layout-def?
101    ly:paper-get-font
102    ly:paper-get-number
103    ly:paper-system?
104    ly:output-def-lookup
105    ly:parse-string
106    ly:parser-parse-string
107    ly:pitch-alteration
108    ly:pitch-diff
109    ly:pitch-notename
110    ly:pitch-octave
111    ly:pitch-quartertones
112    ly:pitch-semitones
113    ly:pitch-steps
114    ly:pitch-transpose
115    ly:pitch<?
116    ly:pitch?
117    ly:round-filled-box
118    ly:run-translator
119    ly:set-option
120    ly:set-point-and-click
121    ly:spanner-broken-into
122    ly:spanner-get-bound
123    ly:spanner?
124    ly:stencil-add
125    ly:stencil-aligned-to
126    ly:stencil-combine-at-edge
127    ly:stencil-expr
128    ly:stencil-extent
129    ly:stencil-moved-to-edge
130    ly:stencil-translate
131    ly:stencil-translate-axis
132    ly:stencil?
133    ly:text-dimension
134    ly:translator-description
135    ly:translator-name
136    ly:translator?
137    ly:transpose-key-alist
138    ly:unit
139    ly:usage
140    ly:version
141    ly:warning
142
143    ;; FIXME: cannot change staff size in --safe-mode
144    ;;$defaultpaper
145    ;;$defaultmidi
146    ;;$defaultlayout
147
148    Accidental_interface::after_line_breaking
149    Accidental_interface::print
150    Ambitus::print
151    Arpeggio::print
152    Arpeggio::brew_chord_bracket
153    Arpeggio::width_callback
154    Axis_group_interface::group_extent_callback
155    Bar_line::before_line_breaking
156    Bar_line::get_staff_bar_size
157    Bar_line::print
158    Beam::after_line_breaking
159    Beam::before_line_breaking
160    Beam::check_concave
161    Beam::least_squares
162    Beam::print
163    Beam::quanting
164    Beam::shift_region_to_valid
165    Beam::slope_damping
166    Beam::space_function
167    Break_align_interface::alignment_callback
168    Breathing_sign::offset_callback
169    Chord_name::after_line_breaking
170    Clef::before_line_breaking
171    Clef::print
172    Cluster::print
173    Cluster_beacon::height
174    Custos::print
175    Dot_column::side_position
176    Dots::print
177    Hairpin::print
178    Hara_kiri_group_spanner::force_hara_kiri_callback
179    Hara_kiri_group_spanner::y_extent
180    Horizontal_bracket::print
181    Hyphen_spanner::print
182    Hyphen_spanner::set_spacing_rods
183    Key_signature_interface::print
184    Line_spanner::after_line_breaking
185    Line_spanner::print
186    Lyric_extender::print
187    Measure_grouping::print
188    Mensural_ligature::brew_ligature_primitive
189    Mensural_ligature::print
190    Multi_measure_rest::percent
191    Multi_measure_rest::print
192    Multi_measure_rest::set_spacing_rods
193    Note_head::print
194    Note_head::brew_ez_stencil
195    Ottava_bracket::print
196    Paper_column::before_line_breaking
197    Paper_column::print
198    Percent_repeat_item_interface::beat_slash
199    Percent_repeat_item_interface::double_percent
200    Piano_pedal_bracket::print
201    Rest::after_line_breaking
202    Rest::extent_callback
203    Rest::polyphonic_offset_callback
204    Rest::print
205    Script_column::before_line_breaking
206    Script_interface::before_line_breaking
207    Script_interface::print
208    Self_alignment_interface::aligned_on_parent
209    Self_alignment_interface::aligned_on_self
210    Self_alignment_interface::centered_on_other_axis_parent
211    Self_alignment_interface::centered_on_parent
212    Separating_group_spanner::set_spacing_rods
213    Side_position_interface::aligned_on_support_refpoints
214    Side_position_interface::aligned_side
215    Slur::after_line_breaking
216    Slur::height
217    Slur::print
218    Spacing_spanner::set_springs
219    Span_bar::before_line_breaking
220    Span_bar::get_bar_size
221    Span_bar::print
222    Span_bar::width_callback
223    Spanner::set_spacing_rods
224    Staff_symbol::print
225    Staff_symbol_referencer::callback
226    Stem::before_line_breaking
227    Stem::width_callback
228    Stem::height
229    Stem::offset_callback
230    Stem::print
231    Stem_tremolo::height
232    Stem_tremolo::print
233    Sustain_pedal::print
234    System_start_delimiter::after_line_breaking
235    System_start_delimiter::print
236    Text_interface::print
237    Text_spanner::print
238    Tie::print
239    Tie_column::after_line_breaking
240    Time_signature::print
241    Tuplet_bracket::after_line_breaking
242    Tuplet_bracket::before_line_breaking
243    Tuplet_bracket::print
244    Vaticana_ligature::brew_ligature_primitive
245    Vaticana_ligature::print
246    Volta_bracket_interface::print
247    ))
248
249 (define-public (make-safe-lilypond-module)
250   (let* ((m (make-safe-module)))
251     (for-each (lambda (p) (module-define! m (car p) (cdr p))) safe-objects)
252     m))