]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/safe-lily.scm
Merge master into nested-bookparts
[lilypond.git] / scm / safe-lily.scm
index 10e88ad7ec18ca52398826240205d1d1ef0606d4..5c79bba09093d27facfc162def12c2717369abdd 100644 (file)
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c)  2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;;; (c) 2004--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-(define safe-objects
-  (map
-   (lambda (sym)
-     (cons sym (primitive-eval sym)))
-   '(ly:add-interface
-     ly:add-moment
-     ly:all-grob-interfaces
-     ly:all-output-backend-commands
-     ly:all-stencil-expressions
-     ly:bracket
-     ly:context-find
-     ly:context-id
-     ly:context-name
-     ly:context-parent
-     ly:context-property
-     ly:context-property-where-defined
-     ly:context-pushpop-property
-     ly:context-set-property!
-     ly:context-unset-property
-     ly:context?
-     ly:dimension?
-     ly:dir?
-     ly:div-moment
-     ly:duration-dot-count
-     ly:duration-factor
-     ly:duration-log
-     ly:duration<?
-     ly:duration?
-     ly:export
-     ly:find-glyph-by-name
-     ly:font-design-size
-     ly:font-encoding-alist
-     ly:font-filename
-     ly:font-magnification
-     ly:font-metric?
-     ly:font-name
-     ly:format-output
-     ly:get-all-function-documentation
-     ly:get-all-translators
-     ly:get-default-font
-     ly:get-glyph
-     ly:get-option
-     ly:grob-alist-chain
-     ly:grob-extent
-     ly:grob-original
-     ly:grob-paper
-     ly:grob-parent
-     ly:grob-pq-less?
-     ly:grob-property
-     ly:grob-script-priority-less
-     ly:grob-set-property!
-     ly:grob-staff-position
-     ly:grob-suicide
-     ly:grob-system
-     ly:grob-translate-axis!
-     ly:grob?
-     ly:input-location
-     ly:input-location?
-     ly:input-message
-     ly:intlog2
-     ly:item-break-dir
-     ly:item?
-     ly:iterator?
-     ly:make-bare-music
-     ly:make-duration
-     ly:make-moment
-     ly:make-music-function
-     ly:make-pitch
-     ly:make-stencil
-     ly:moment<?
-     ly:moment?
-     ly:mul-moment
-     ly:music-compress
-     ly:music-deep-copy
-     ly:music-duration-compress
-     ly:music-duration-length
-     ly:music-length
-     ly:music-list?
-     ly:music-mutable-properties
-     ly:music-name
-     ly:music-property
-     ly:music-scorify
-     ly:music-set-property!
-     ly:music-transpose
-     ly:music?
-     ly:my-lily-parser?
-     ly:number->string
-     ly:option-usage
-     ly:output-def-clone
-     ly:output-def-scope
-     ly:output-description
-     ly:paper-book?
-     ly:paper-def?
-     ly:paper-get-font
-     ly:paper-get-number
-     ly:paper-system-break-penalty
-     ly:paper-system-extent
-     ly:paper-system-number
-     ly:paper-system-stencil
-     ly:paper-system?
-     ly:output-def-lookup
-     ly:parse-string
-     ly:parser-parse-string
-     ly:parser-print-book
-     ly:parser-print-score
-     ly:pitch-alteration
-     ly:pitch-diff
-     ly:pitch-notename
-     ly:pitch-octave
-     ly:pitch-quartertones
-     ly:pitch-semitones
-     ly:pitch-steps
-     ly:pitch-transpose
-     ly:pitch<?
-     ly:pitch?
-     ly:round-filled-box
-     ly:run-translator
-     ly:set-option
-     ly:score-bookify
-     ly:set-point-and-click
-     ly:spanner-broken-into
-     ly:spanner-get-bound
-     ly:spanner?
-     ly:stencil-add
-     ly:stencil-align-to!
-     ly:stencil-combine-at-edge
-     ly:stencil-expr
-     ly:stencil-extent
-     ly:stencil-moved-to-edge
-     ly:stencil-set-extent!
-     ly:stencil-translate
-     ly:stencil-translate-axis
-     ly:stencil?
-     ly:text-dimension
-     ly:translator-description
-     ly:translator-name
-     ly:translator?
-     ly:transpose-key-alist
-     ly:unit
-     ly:version
-     ly:warn
+(map
+ (lambda (sym)
+   (set! safe-objects (cons (cons sym (primitive-eval sym))
+                            safe-objects)))
+ '(ly:add-interface
+   ly:moment-add
+   ly:all-grob-interfaces
+   ly:all-output-backend-commands
+   ly:all-stencil-expressions
+   ly:bracket
+   ly:context-find
+   ly:context-id
+   ly:context-name
+   ly:context-parent
+   ly:context-property
+   ly:context-property-where-defined
+   ly:context-pushpop-property
+   ly:context-set-property!
+   ly:context-unset-property
+   ly:context?
+   ly:dimension?
+   ly:dir?
+   ly:moment-div
+   ly:duration-dot-count
+   ly:duration-factor
+   ly:duration-log
+   ly:duration<?
+   ly:duration?
+   ly:error
+   ly:export
+   ly:font-get-glyph
+   ly:font-design-size
+   ly:font-file-name
+   ly:font-magnification
+   ly:font-metric?
+   ly:font-name
+   ly:format-output
+   ly:get-all-function-documentation
+   ly:get-all-translators
+   ly:get-glyph
+   ly:get-option
+   ly:grob-alist-chain
+   ly:grob-default-font
+   ly:grob-extent
+   ly:grob-original
+   ly:grob-layout
+   ly:grob-parent
+   ly:grob-property
+   ly:grob-script-priority-less
+   ly:grob-set-property!
+   ly:grob-staff-position
+   ly:grob-suicide!
+   ly:grob-system
+   ly:grob-translate-axis!
+   ly:grob?
+   ly:input-file-line-char-column
+   ly:input-location?
+   ly:input-message
+   ly:intlog2
+   ly:item-break-dir
+   ly:item?
+   ly:iterator?
+   ly:make-music
+   ly:make-duration
+   ly:make-moment
+   ly:make-music-function
+   ly:make-pitch
+   ly:make-stencil
+   ly:moment<?
+   ly:moment?
+   ly:moment-mul
+   ly:music-compress
+   ly:music-deep-copy
+   ly:music-duration-compress
+   ly:music-duration-length
+   ly:music-length
+   ly:music-list?
+   ly:music-mutable-properties
+   ly:music-property
+   ly:make-score
+   ly:music-set-property!
+   ly:music-transpose
+   ly:music?
+   ly:lily-parser?
+   ly:message
+   ly:number->string
+   ly:option-usage
+   ly:output-def-clone
+   ly:output-def-lookup
+   ly:output-def-scope
+   ly:output-description
+   ly:paper-book?
+   ly:prob-property
+   ly:output-def?
+   ly:paper-get-font
+   ly:paper-get-number
+   ly:paper-system?
+   ly:parser-parse-string
+   ly:pitch-alteration
+   ly:pitch-diff
+   ly:pitch-notename
+   ly:pitch-octave
+   ly:pitch-quartertones
+   ly:pitch-semitones
+   ly:pitch-steps
+   ly:pitch-transpose
+   ly:pitch<?
+   ly:pitch?
+   ly:position-on-line?
+   ly:round-filled-box
+   ly:run-translator
+   ly:set-option
+   ly:set-point-and-click
+   ly:spanner-broken-into
+   ly:spanner-bound
+   ly:spanner?
+   ly:staff-symbol-line-thickness
+   ly:stencil-add
+   ly:stencil-aligned-to
+   ly:stencil-combine-at-edge
+   ly:stencil-expr
+   ly:stencil-extent
+   ly:stencil-translate
+   ly:stencil-translate-axis
+   ly:stencil?
+   ly:text-dimension
+   ly:translator-description
+   ly:translator-name
+   ly:translator?
+   ly:transpose-key-alist
+   ly:unit
+   ly:usage
+   ly:version
+   ly:warning
 
-     ;; need these for parsing init files:
-     ;; todo: should have a macro define-safe-public
-     DOUBLE-FLAT
-     THREE-Q-FLAT
-     FLAT
-     SEMI-FLAT
-     NATURAL
-     SEMI-SHARP
-     SHARP
-     THREE-Q-SHARP
-     DOUBLE-SHARP
-     SEMI-TONE
-     START
-     STOP
-     alist->hash-table
-     default-chord-modifier-list
-     sequential-music-to-chord-exceptions
-     make-music
-     make-articulation
-     make-event-chord
-     make-penalty-music
-     make-span-event
-     set-start-grace-properties
-     set-stop-grace-properties
-     set-default-paper-size
-     set-part-combine-listener
-     context-spec-music
-     make-voice-props-revert
-     make-voice-props-set
-     chord-name->german-markup
-     note-name->german-markup
-     default-toplevel-music-handler
-     default-toplevel-book-handler
-     default-toplevel-score-handler
+   ;; FIXME: cannot change staff size in --safe-mode
+   ;;$defaultpaper
+   ;;$defaultmidi
+   ;;$defaultlayout
 
-     Accidental_interface::after_line_breaking
-     Accidental_interface::print
-     Ambitus::print
-     Arpeggio::print
-     Arpeggio::brew_chord_bracket
-     Arpeggio::width_callback
-     Axis_group_interface::group_extent_callback
-     Bar_line::before_line_breaking
-     Bar_line::get_staff_bar_size
-     Bar_line::print
-     Beam::after_line_breaking
-     Beam::before_line_breaking
-     Beam::check_concave
-     Beam::least_squares
-     Beam::print
-     Beam::quanting
-     Beam::shift_region_to_valid
-     Beam::slope_damping
-     Beam::space_function
-     Break_align_interface::alignment_callback
-     Breathing_sign::offset_callback
-     Chord_name::after_line_breaking
-     Clef::before_line_breaking
-     Clef::print
-     Cluster::print
-     Cluster_beacon::height
-     Custos::print
-     Dot_column::side_position
-     Dots::print
-     Hairpin::print
-     Hara_kiri_group_spanner::force_hara_kiri_callback
-     Hara_kiri_group_spanner::y_extent
-     Horizontal_bracket::print
-     Hyphen_spanner::print
-     Hyphen_spanner::set_spacing_rods
-     Key_signature_interface::print
-     Line_spanner::after_line_breaking
-     Line_spanner::print
-     Lyric_extender::print
-     Measure_grouping::print
-     Mensural_ligature::brew_ligature_primitive
-     Mensural_ligature::print
-     Multi_measure_rest::percent
-     Multi_measure_rest::print
-     Multi_measure_rest::set_spacing_rods
-     Note_head::extent
-     Note_head::print
-     Note_head::brew_ez_stencil
-     Ottava_bracket::print
-     Paper_column::before_line_breaking
-     Paper_column::print
-     Percent_repeat_item_interface::beat_slash
-     Percent_repeat_item_interface::double_percent
-     Piano_pedal_bracket::print
-     Rest::after_line_breaking
-     Rest::extent_callback
-     Rest::polyphonic_offset_callback
-     Rest::print
-     Script_column::before_line_breaking
-     Script_interface::before_line_breaking
-     Script_interface::print
-     Self_alignment_interface::aligned_on_parent
-     Self_alignment_interface::aligned_on_self
-     Self_alignment_interface::centered_on_other_axis_parent
-     Self_alignment_interface::centered_on_parent
-     Separating_group_spanner::set_spacing_rods
-     Side_position_interface::aligned_on_support_refpoints
-     Side_position_interface::aligned_side
-     Slur::after_line_breaking
-     Slur::height
-     Slur::print
-     Spacing_spanner::set_springs
-     Span_bar::before_line_breaking
-     Span_bar::get_bar_size
-     Span_bar::print
-     Span_bar::width_callback
-     Spanner::set_spacing_rods
-     Staff_symbol::print
-     Staff_symbol_referencer::callback
-     Stem::before_line_breaking
-     Stem::dim_callback
-     Stem::height
-     Stem::off_callback
-     Stem::print
-     Stem_tremolo::height
-     Stem_tremolo::print
-     Sustain_pedal::print
-     System_start_delimiter::after_line_breaking
-     System_start_delimiter::print
-     Text_item::print
-     Text_spanner::print
-     Tie::print
-     Tie_column::after_line_breaking
-     Time_signature::print
-     Tuplet_bracket::after_line_breaking
-     Tuplet_bracket::before_line_breaking
-     Tuplet_bracket::print
-     Vaticana_ligature::brew_ligature_primitive
-     Vaticana_ligature::print
-     Volta_bracket_interface::print
-     )))
+   ly:accidental-interface::print
+   ly:ambitus::print
+   ly:arpeggio::print
+   ly:arpeggio::brew-chord-bracket
+   ly:bar-line::print
+   ly:breathing-sign::offset-callback
+   ly:clef::print
+   ly:cluster::print
+   ly:cluster-beacon::height
+   ly:custos::print
+   ly:dots::print
+   ly:hairpin::print
+   ly:hara-kiri-group-spanner::force-hara-kiri-callback
+   ly:hara-kiri-group-spanner::y-extent
+   ly:horizontal-bracket::print
+   ly:lyric-hyphen::print
+   ly:lyric-hyphen::set-spacing-rods
+   ly:key-signature-interface::print
+   ly:line-spanner::print
+   ly:lyric-extender::print
+   ly:measure-grouping::print
+   ly:mensural-ligature::brew-ligature-primitive
+   ly:mensural-ligature::print
+   ly:multi-measure-rest::percent
+   ly:multi-measure-rest::print
+   ly:multi-measure-rest::set-spacing-rods
+   ly:note-head::print
+;;   ly:note-head::brew-ez-stencil
+   ly:ottava-bracket::print
+   ly:paper-column::print
+   ly:percent-repeat-item-interface::beat-slash
+   ly:percent-repeat-item-interface::double-percent
+   ly:piano-pedal-bracket::print
+   ly:rest::print
+   ly:script-interface::print
+   ly:slur::height
+   ly:slur::print
+   ly:spacing-spanner::set-springs
+   ly:span-bar::print
+   ly:spanner::set-spacing-rods
+   ly:staff-symbol::print
+   ly:staff-symbol-referencer::callback
+   ly:stem::height
+   ly:stem::offset-callback
+   ly:stem::print
+   ly:stem-tremolo::height
+   ly:stem-tremolo::print
+   ly:sustain-pedal::print
+   ly:system-start-delimiter::print
+   ly:text-interface::print
+   ly:tie::print
+   ly:time-signature::print
+   ly:tuplet-bracket::print
+   ly:vaticana-ligature::brew-ligature-primitive
+   ly:vaticana-ligature::print
+   ly:volta-bracket-interface::print
+   ))
 
 (define-public (make-safe-lilypond-module)
   (let* ((m (make-safe-module)))