2004-10-02 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * make/lilypond.fedora.spec.in: rename file.
+
+ * lily/lily-lexer.cc (mark_smob): don't use ly_cdr() for getting
+ to-be-marked objects. Use SCM_CELL_WORD_1 instead.
+
+ * Documentation/user/changing-defaults.itely (Changing context
+ properties on the fly): typo.
+
* lily/slur.cc (outside_slur_callback): try three sample points
for determining collisions. This fixes: slur-script.ly.
are equivalent.
-@cindex @\once
+@cindex \once
Settings that should only apply to a single time-step can be entered
with @code{\once}, for example in
PACKAGE_NAME=LilyPond
MAJOR_VERSION=2
MINOR_VERSION=3
-PATCH_LEVEL=19
+PATCH_LEVEL=20
MY_PATCH_LEVEL=
inline bool ly_c_equal_p (SCM x, SCM y) {
return SCM_NFALSEP (scm_equal_p (x, y));
}
-inline SCM ly_cdr (SCM x) { return SCM_CDR (x); }
-inline SCM ly_car (SCM x) { return SCM_CAR (x); }
+inline SCM ly_cdr (SCM x) {
+ if (SCM_NCONSP(x))
+ abort();
+ return SCM_CDR (x);
+}
+inline SCM ly_car (SCM x) {
+ if (SCM_NCONSP(x))
+ abort();
+ return SCM_CAR (x);
+}
inline SCM ly_caar (SCM x) { return SCM_CAAR (x); }
inline SCM ly_cdar (SCM x) { return SCM_CDAR (x); }
inline SCM ly_cadr (SCM x) { return SCM_CADR (x); }
if (SCM_IMP (s))
return 0;
if (SCM_CAR (s) == (SCM)input_tag) // ugh.
- return (Input*) ly_cdr (s);
+ return (Input*) SCM_CDR (s);
else
return 0;
}
SCM
Lily_lexer::mark_smob (SCM s)
{
- Lily_lexer *lexer = (Lily_lexer*) ly_cdr (s);
+ Lily_lexer *lexer = (Lily_lexer*) SCM_CELL_WORD_1 (s);
scm_gc_mark (lexer->chordmodifier_tab_);
scm_gc_mark (lexer->pitchname_tab_stack_);
SCM
Lily_parser::mark_smob (SCM s)
{
- Lily_parser *parser = (Lily_parser*) ly_cdr (s);
+ Lily_parser *parser = (Lily_parser*) SCM_CELL_WORD_1 (s);
return (parser->lexer_) ? parser->lexer_->self_scm () : SCM_EOL;
}
SCM
Paper_system::mark_smob (SCM smob)
{
- Paper_system *system = (Paper_system*) ly_cdr (smob);
+ Paper_system *system = (Paper_system*) SCM_CELL_WORD_1 (smob);
return system-> stencil_.expr ();
}
Real slur_padding = robust_scm2double (script->get_property ("slur-padding"),
0.0); // todo: slur property, script property?
yext.widen (slur_padding);
+ Real EPS = 1e-3;
Interval bezext (curve.control_[0][X_AXIS],
curve.control_[3][X_AXIS]);
if (consider[k])
{
- ys[k] = curve.get_other_coordinate (X_AXIS, x);
+ ys[k] =
+ (fabs(bezext[LEFT] - x) < EPS)
+ ? curve.control_[0][Y_AXIS]
+ : ((fabs(bezext[RIGHT] - x) < EPS)
+ ? curve.control_[3][Y_AXIS]
+ : curve.get_other_coordinate (X_AXIS, x));
consider[k] = true;
if (yext.contains (ys[k]))
SCM
Stencil::mark_smob (SCM smob)
{
- Stencil *s = (Stencil*) ly_cdr (smob);
+ Stencil *s = (Stencil*) SCM_CELL_WORD_1 (smob);
return s->expr_;
}
--- /dev/null
+# -*-rpm-spec-mode-*-
+
+%define info yes
+%define docdir %{_docdir}/lilypond/
+
+Name: lilypond
+Version: @TOPLEVEL_VERSION@
+Release: 1
+License: GPL
+Group: Applications/Publishing
+Source0: ftp.lilypond.org:/pub/LilyPond/development/lilypond-@TOPLEVEL_VERSION@.tar.gz
+Summary: Create and print music notation
+URL: http://www.lilypond.org/
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+
+
+Buildrequires: t1utils bison flex mftrace ImageMagick
+Buildrequires: texinfo >= 4.6
+Buildrequires: guile-devel >= 1.6.4-8
+Requires: tetex tetex-latex libstdc++ python tetex-dvips tetex-latex
+Requires: guile >= 1.6.4-8 ec-fonts-mftraced >= 1.0.4
+
+%description
+LilyPond lets you create music notation. It produces
+beautiful sheet music from a high-level description file.
+
+%package documentation
+Summary: All LilyPond documentation, in HTML
+Group: Applications/Publishing
+# BuildArchitectures: noarch
+
+%description documentation
+Documentation and example files of LilyPond. An index is available at
+%{docdir}/web/Documentation/out-www/index.html
+
+%prep
+%setup
+
+%build
+
+# DO NOT use % { configure } , it hardcodes all paths, runs libtool,
+# so we can't do make prefixix=/tmp/ install.
+
+# In fact, do not take out the spaces between % and { in the above comment,
+# because RPM will gladly do a substitution anyway.
+
+./configure --disable-checking --prefix=%{_prefix} --enable-optimising
+
+
+make all
+make web
+make -C Documentation/user local_package_docdir=%{docdir} omf
+
+%install
+
+
+rm -rf $RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc
+
+make prefix="$RPM_BUILD_ROOT%{_prefix}" \
+ infodir="$RPM_BUILD_ROOT%{_infodir}" \
+ mandir="$RPM_BUILD_ROOT%{_mandir}" install
+
+#emacs
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d
+install -m 644 elisp/lilypond-init.el $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d
+
+#manual pages
+gzip -9fn $RPM_BUILD_ROOT%{_mandir}/man1/*
+
+
+# profile scripts.
+mkdir -p $RPM_BUILD_ROOT/etc/profile.d
+cp buildscripts/out/lilypond-profile $RPM_BUILD_ROOT/etc/profile.d/lilypond.sh
+cp buildscripts/out/lilypond-login $RPM_BUILD_ROOT/etc/profile.d/lilypond.csh
+
+# web doc
+make prefix="$RPM_BUILD_ROOT%{_prefix}" \
+ infodir="$RPM_BUILD_ROOT%{_infodir}" \
+ webdir="$RPM_BUILD_ROOT%{_prefix}/share/doc/lilypond/" web-install
+
+ln -sf ../../doc/lilypond/Documentation/user/out-www/*png $RPM_BUILD_ROOT%{_infodir}/lilypond/
+
+# info
+%if %{info}
+rm -f $RPM_BUILD_ROOT/%{_infodir}/dir
+gzip -9fn `find $RPM_BUILD_ROOT%{_infodir}/ -name '*.info'`
+%endif
+
+
+
+%post
+
+touch /tmp/.lilypond-install
+rm `find /var/lib/texmf -name 'feta*pk' -or -name 'feta*tfm' -or -name 'parmesan*pk' -or -name 'parmesan*tfm' -print` /tmp/.lilypond-install
+
+%if %{info}
+/sbin/install-info %{_infodir}/lilypond/lilypond.info.gz %{_infodir}/dir
+/sbin/install-info %{_infodir}/lilypond/music-glossary.info.gz %{_infodir}/dir
+%endif
+
+export PACKAGEDIR=%{_datadir}/lilypond/@TOPLEVEL_VERSION@
+if [ -d /usr/share/vim ]; then
+ VIMDIR=`find /usr/share/vim -name bugreport.vim`
+ VIMDIR=`dirname $VIMDIR`
+ for a in `cd $PACKAGEDIR/vim/ ; find -type d -name '*' ` ; do
+ mkdir -p $VIMDIR/$a
+ ln -s $PACKAGEDIR/vim/$a/*.vim $VIMDIR/$a/
+ done
+fi
+
+
+# chkfontpath --add=%{_datadir}/lilypond/@TOPLEVEL_VERSION@/fonts/type1/
+
+echo 'Logout first before using LilyPond.'
+
+%preun
+if [ -f /usr/share/lilypond/%{version}/ls-R ]; then
+ rm -f /usr/share/lilypond/%{version}/ls-R
+fi
+
+
+if [ -d /usr/share/vim ]; then
+ rm `find /usr/share/vim -name 'lilypond*.vim'`
+fi
+
+
+%if %{info}
+ /sbin/install-info --delete %{_infodir}/lilypond/lilypond.info.gz %{_infodir}/dir
+ /sbin/install-info --delete %{_infodir}/lilypond/music-glossary.info.gz %{_infodir}/dir
+%endif
+
+# chkfontpath --remove=%{_datadir}/share/lilypond/@TOPLEVEL_VERSION@/fonts/type1n/
+
+%postun
+
+%post documentation
+scrollkeeper-update
+
+%postun documentation
+scrollkeeper-update
+
+
+
+%files
+%defattr(-, root, root)
+%{_datadir}/emacs/site-lisp/lilypond*
+%{_datadir}/emacs/site-lisp/site-start.d/lilypond*
+
+%{_bindir}/abc2ly
+%{_bindir}/convert-ly
+%{_bindir}/etf2ly
+%{_bindir}/lilypond
+%{_bindir}/lilypond-latex
+%{_bindir}/midi2ly
+%{_bindir}/lilypond-book
+%{_bindir}/mup2ly
+
+%doc THANKS
+%doc COPYING
+%doc DEDICATION
+%doc README.txt
+%doc AUTHORS.txt
+%doc INSTALL.txt
+%doc NEWS.txt
+
+%if %{info}
+%{_infodir}/lilypond/
+%endif
+
+%{_mandir}/man1/abc2ly.1.gz
+%{_mandir}/man1/convert-ly.1.gz
+%{_mandir}/man1/etf2ly.1.gz
+%{_mandir}/man1/lilypond-latex.1.gz
+%{_mandir}/man1/lilypond.1.gz
+%{_mandir}/man1/midi2ly.1.gz
+%{_mandir}/man1/lilypond-book.1.gz
+%{_mandir}/man1/mup2ly.1.gz
+
+%{_datadir}/lilypond/@TOPLEVEL_VERSION@/
+%{_datadir}/locale/*/LC_MESSAGES/lilypond.mo
+
+%{_libdir}/lilypond/
+
+/etc/profile.d/lilypond.*
+
+
+%files documentation
+
+%defattr(-, root, root)
+
+%{docdir}
+%{_datadir}/omf/lilypond/@TOPLEVEL_VERSION@
+
+
+++ /dev/null
-# -*-rpm-spec-mode-*-
-
-%define info yes
-%define docdir %{_docdir}/lilypond/
-
-Name: lilypond
-Version: @TOPLEVEL_VERSION@
-Release: 1
-License: GPL
-Group: Applications/Publishing
-Source0: ftp.lilypond.org:/pub/LilyPond/development/lilypond-@TOPLEVEL_VERSION@.tar.gz
-Summary: Create and print music notation
-URL: http://www.lilypond.org/
-BuildRoot: %{_tmppath}/%{name}-%{version}-root
-
-
-Buildrequires: t1utils bison flex mftrace ImageMagick
-Buildrequires: texinfo >= 4.6
-Buildrequires: guile-devel >= 1.6.4-8
-Requires: tetex tetex-latex libstdc++ python tetex-dvips tetex-latex
-Requires: guile >= 1.6.4-8 ec-fonts-mftraced >= 1.0.4
-
-%description
-LilyPond lets you create music notation. It produces
-beautiful sheet music from a high-level description file.
-
-%package documentation
-Summary: All LilyPond documentation, in HTML
-Group: Applications/Publishing
-# BuildArchitectures: noarch
-
-%description documentation
-Documentation and example files of LilyPond. An index is available at
-%{docdir}/web/Documentation/out-www/index.html
-
-%prep
-%setup
-
-%build
-
-# DO NOT use % { configure } , it hardcodes all paths, runs libtool,
-# so we can't do make prefixix=/tmp/ install.
-
-# In fact, do not take out the spaces between % and { in the above comment,
-# because RPM will gladly do a substitution anyway.
-
-./configure --disable-checking --prefix=%{_prefix} --enable-optimising
-
-
-make all
-make web
-make -C Documentation/user local_package_docdir=%{docdir} omf
-
-%install
-
-
-rm -rf $RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc
-
-make prefix="$RPM_BUILD_ROOT%{_prefix}" \
- infodir="$RPM_BUILD_ROOT%{_infodir}" \
- mandir="$RPM_BUILD_ROOT%{_mandir}" install
-
-#emacs
-mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d
-install -m 644 elisp/lilypond-init.el $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/site-start.d
-
-#manual pages
-gzip -9fn $RPM_BUILD_ROOT%{_mandir}/man1/*
-
-
-# profile scripts.
-mkdir -p $RPM_BUILD_ROOT/etc/profile.d
-cp buildscripts/out/lilypond-profile $RPM_BUILD_ROOT/etc/profile.d/lilypond.sh
-cp buildscripts/out/lilypond-login $RPM_BUILD_ROOT/etc/profile.d/lilypond.csh
-
-# web doc
-make prefix="$RPM_BUILD_ROOT%{_prefix}" \
- infodir="$RPM_BUILD_ROOT%{_infodir}" \
- webdir="$RPM_BUILD_ROOT%{_prefix}/share/doc/lilypond/" web-install
-
-ln -sf ../../doc/lilypond/Documentation/user/out-www/*png $RPM_BUILD_ROOT%{_infodir}/lilypond/
-
-# info
-%if %{info}
-rm -f $RPM_BUILD_ROOT/%{_infodir}/dir
-gzip -9fn `find $RPM_BUILD_ROOT%{_infodir}/ -name '*.info'`
-%endif
-
-
-
-%post
-
-touch /tmp/.lilypond-install
-rm `find /var/lib/texmf -name 'feta*pk' -or -name 'feta*tfm' -or -name 'parmesan*pk' -or -name 'parmesan*tfm' -print` /tmp/.lilypond-install
-
-%if %{info}
-/sbin/install-info %{_infodir}/lilypond/lilypond.info.gz %{_infodir}/dir
-/sbin/install-info %{_infodir}/lilypond/music-glossary.info.gz %{_infodir}/dir
-%endif
-
-export PACKAGEDIR=%{_datadir}/lilypond/@TOPLEVEL_VERSION@
-if [ -d /usr/share/vim ]; then
- VIMDIR=`find /usr/share/vim -name bugreport.vim`
- VIMDIR=`dirname $VIMDIR`
- for a in `cd $PACKAGEDIR/vim/ ; find -type d -name '*' ` ; do
- mkdir -p $VIMDIR/$a
- ln -s $PACKAGEDIR/vim/$a/*.vim $VIMDIR/$a/
- done
-fi
-
-
-# chkfontpath --add=%{_datadir}/lilypond/@TOPLEVEL_VERSION@/fonts/type1/
-
-echo 'Logout first before using LilyPond.'
-
-%preun
-if [ -f /usr/share/lilypond/%{version}/ls-R ]; then
- rm -f /usr/share/lilypond/%{version}/ls-R
-fi
-
-
-if [ -d /usr/share/vim ]; then
- rm `find /usr/share/vim -name 'lilypond*.vim'`
-fi
-
-
-%if %{info}
- /sbin/install-info --delete %{_infodir}/lilypond/lilypond.info.gz %{_infodir}/dir
- /sbin/install-info --delete %{_infodir}/lilypond/music-glossary.info.gz %{_infodir}/dir
-%endif
-
-# chkfontpath --remove=%{_datadir}/share/lilypond/@TOPLEVEL_VERSION@/fonts/type1n/
-
-%postun
-
-%post documentation
-scrollkeeper-update
-
-%postun documentation
-scrollkeeper-update
-
-
-
-%files
-%defattr(-, root, root)
-%{_datadir}/emacs/site-lisp/lilypond*
-%{_datadir}/emacs/site-lisp/site-start.d/lilypond*
-
-%{_bindir}/abc2ly
-%{_bindir}/convert-ly
-%{_bindir}/etf2ly
-%{_bindir}/lilypond
-%{_bindir}/lilypond-latex
-%{_bindir}/midi2ly
-%{_bindir}/lilypond-book
-%{_bindir}/mup2ly
-
-%doc THANKS
-%doc COPYING
-%doc DEDICATION
-%doc README.txt
-%doc AUTHORS.txt
-%doc INSTALL.txt
-%doc NEWS.txt
-
-%if %{info}
-%{_infodir}/lilypond/
-%endif
-
-%{_mandir}/man1/abc2ly.1.gz
-%{_mandir}/man1/convert-ly.1.gz
-%{_mandir}/man1/etf2ly.1.gz
-%{_mandir}/man1/lilypond-latex.1.gz
-%{_mandir}/man1/lilypond.1.gz
-%{_mandir}/man1/midi2ly.1.gz
-%{_mandir}/man1/lilypond-book.1.gz
-%{_mandir}/man1/mup2ly.1.gz
-
-%{_datadir}/lilypond/@TOPLEVEL_VERSION@/
-%{_datadir}/locale/*/LC_MESSAGES/lilypond.mo
-
-%{_libdir}/lilypond/
-
-/etc/profile.d/lilypond.*
-
-
-%files documentation
-
-%defattr(-, root, root)
-
-%{docdir}
-%{_datadir}/omf/lilypond/@TOPLEVEL_VERSION@
-
-