* po update.
* windows doc update.
-
+
* Add mktextfm wrapper for windows (thanks Mats).
+
+1.4.7.mb1
+==========
+
+* Bugfix: span-bars and hara-kiri.
+
+* Bugfix: lilypond-book, avoid exception on some geometry options
+
+* Bugfix: fontSize affects also time signatures.
+
+
+1.4.7.hwn1
+==========
+
+* Backported compatibility fixes for GUILE 1.5
+
+* default-neutral-direction -> neutral-direction
+
+* Danish .po file.
+
1.4.7
=====
-->
+<META name="keywords" content="gnu lilypond sheet music notation typesetter free software">
+
<!-- Layout shamelessly inspired by François Pinard's TP pages -->
<!--
<table align=left>
<tr><td bgcolor="#e8e8ff">
- <b>Documentation</b>
+ <b>What is LilyPond</b>
</td></tr>
<tr><td><font size="-1">
- <a href="@TOP@Documentation/out-www/index.html#everyone">General information</a><br>
- <a href="@TOP@Documentation/out-www/index.html#newbies">For new users</a><br>
- <a href="@TOP@Documentation/out-www/index.html#users">For users</a><br>
- <a href="@TOP@Documentation/out-www/index.html#developers">For developers</a><br>
- <a href="@TOP@Documentation/out-www/index.html#background">Background information</a><br>
+ <a href="@TOP@index.html#everyone">General information</a><br>
+ <a href="@TOP@short-examples.html">Simple examples</a><br>
+ <a href="@TOP@long-examples.html">Complex examples</a><br>
</font></td></tr>
<tr><td bgcolor="#e8e8ff">
<b>Download </b>
</td></tr>
<tr><td><font size="-1">
- <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-source">Source</a><br>
- <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">Binary</a><br>
+ <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">Linux</a><br>
+ <a href="@TOP@Documentation/windows/out-www/installing.html">Windows</a><br>
+ <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-source">Source code</a><br>
</font></td></tr>
<tr><td bgcolor="#e8e8ff">
- <b>Music</b>
+ <b>Documentation</b>
</td></tr>
<tr><td><font size="-1">
- <a href="@TOP@short-examples.html">Short examples</a><br>
- <a href="@TOP@long-examples.html">Longer examples</a><br>
- <a href="http://www.mutopiaproject.org/">Mutopia Project</a><br>
-
- <a href="http://www.lilypond.org/wiki?DownloadLilyPondScores">Other URLs</a><br>
+ <a href="@TOP@Documentation/user/out-www/lilypond/Tutorial.html">Tutorial</a><br>
+ <a href="@TOP@Documentation/user/out-www/lilypond/lilypond.html">Manual</a><br>
+ <a href="@TOP@Documentation/user/out-www/glossary.html">Glossary</a><br>
+ <a href="@TOP@Documentation/out-www/index.html">other ...</a><br>
<br>
</font></td></tr>
<tr><td bgcolor="#e8e8ff">
- <b>Mailing Lists</b>
+ <b>Support</b>
</td></tr>
<tr><td><font size="-1">
- <a href="@TOP@Documentation/out-www/index.html#mailing-lists">About the lists</a><br>
- <a href="http://mail.gnu.org/mailman/listinfo/lilypond-user/">LilyPond users</a><br>
- <a href="http://mail.gnu.org/mailman/listinfo/lilypond-devel/">Development</a><br>
- <a href="http://mail.gnu.org/mailman/listinfo/bug-lilypond/">Bugs</a><br>
- <a href="http://mail.gnu.org/mailman/listinfo/info-lilypond/">Announcements</a><br>
+ <a href="@TOP@Documentation/topdocs/out-www/README.html#mailing-lists">Mailing lists</a><br>
+ <a href="http://www.lilypond.org/wiki/">WikiWiki</a><br>
+ <a href="http://www.lilypond.org/wiki?LilyPondFaqs">FAQs</a><br>
<br>
</font></td></tr>
<tr><td bgcolor="#e8e8ff"><b>External sites</b></td></tr>
<tr><td><font size="-1">
- <a href="http://www.lilypond.org/development">Development version</a><br>
- <a href="http://www.lilypond.org/stable">Stable version</a><br>
- <a href="http://www.lilypond.org/wiki/">WikiWiki</a><br>
- <a href="ftp://ftp.lilypond.org/pub">FTP site</a><br>
- <a href="http://www.mutopiaproject.org/">Mutopia archive</a><br>
-
+ <a href="http://www.lilypond.org/development">lilypond.org/development</a><br>
+ <a href="http://www.lilypond.org/stable">lilypond.org/stable</a><br>
+ <a href="ftp://ftp.lilypond.org/pub">ftp.lilypond.org</a><br>
+ <a href="http://www.mutopiaproject.org/">Mutopia</a><br>
+ <a href="http://www.lilypond.org/wiki?DownloadLilyPondScores">Other music online</a><br>
<br>
</font></td></tr>
</table>
For Debian in development ("unstable", the future 2.3 or 3.0):
- apt-get install task-debian-devel task-c++-dev \
- python-base libguile9-dev tetex-bin libkpathsea-dev \
+ apt-get install binutils cpp gcc libc6-dev \
+ g++ libstdc++2.10-dev \
+ python-base libguile-dev tetex-bin libkpathsea-dev \
tetex-extra flex bison texinfo bibtex2html groff gs \
netpbm m4 gettext
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=4
-PATCH_LEVEL=7
-MY_PATCH_LEVEL=jcn2
+PATCH_LEVEL=8
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
then
AC_STEPMAKE_WARN("Guile version "$need_guile_version" or newer is needed")
fi
+ changequote(<<, >>)dnl
+ GUILE_MAJOR_VERSION=`expr $guile_version : '\([0-9]*\)'`
+ GUILE_MINOR_VERSION=`expr $guile_version : '[0-9]*\.\([0-9]*\)'`
+ changequote([, ])dnl
GUILE_FLAGS
AC_PATH_PROG(GUILE, guile, error)
AC_SUBST(GUILE)
+ AC_DEFINE_UNQUOTED(GUILE_MAJOR_VERSION, $GUILE_MAJOR_VERSION)
+ AC_DEFINE_UNQUOTED(GUILE_MINOR_VERSION, $GUILE_MINOR_VERSION)
])
AC_DEFUN(AC_STEPMAKE_INIT, [
AC_DEFUN(AC_STEPMAKE_KPATHSEA, [
kpathsea_b=yes
+ #FIXME --with-xxx is meant for specifying a PATH too,
+ # so this should read: --enable-kpathsea,
+ # or --with-kpathsea-include=PATH --with-kpathsea-lib=PATH
AC_ARG_WITH(kpathsea,
[ --with-kpathsea use kpathsea lib. Default: on],
- [kpathsea_b=$enableval])
+ [kpathsea_b=$with_kpathsea])
- if test "$kpathsea_b" = "yes"; then
+ if test "$kpathsea_b" != "no"; then
AC_HAVE_HEADERS(kpathsea/kpathsea.h)
AC_CHECK_LIB(kpathsea, kpse_find_file)
AC_CHECK_FUNCS(kpse_find_file,, AC_ERROR(Cannot find kpathsea functions. You should install kpathsea; see INSTALL.txt. Rerun ./configure --without-kpathsea only if kpathsea is not available for your platform.))
fi
AC_MSG_CHECKING(whether to use kpathsea)
- if test "$kpathsea_b" = yes; then
+ if test "$kpathsea_b" != no; then
AC_MSG_RESULT(yes)
KPATHSEA=1
else
#
# For now let people define these in their environments
#
- : ${MFPLAIN_MP=`kpsewhich mp mfplain.mp`}
+ : ${MFPLAIN_MP=`kpsewhich --format mp mfplain.mp`}
AC_MSG_RESULT($MFPLAIN_MP)
AC_MSG_CHECKING(for inimetapost flags)
/* define if you have sys/stat.h */
#define STAT_MACROS_BROKEN 0
+
+/* define GUILE major version */
+#define GUILE_MAJOR_VERSION 0
+
+/* define GUILE minor version */
+#define GUILE_MINOR_VERSION 0
#
# For now let people define these in their environments
#
- : ${MFPLAIN_MP=`kpsewhich mp mfplain.mp`}
+ : ${MFPLAIN_MP=`kpsewhich --format mp mfplain.mp`}
echo "$ac_t""$MFPLAIN_MP" 1>&6
echo $ac_n "checking for inimetapost flags""... $ac_c" 1>&6
warn_b=yes
fi
-
+ GUILE_MAJOR_VERSION=`expr $guile_version : '\([0-9]*\)'`
+ GUILE_MINOR_VERSION=`expr $guile_version : '[0-9]*\.\([0-9]*\)'`
+
## The GUILE_FLAGS macro.
echo $ac_n "checking for Guile""... $ac_c" 1>&6
-echo "configure:2884: checking for Guile" >&5
+echo "configure:2886: checking for Guile" >&5
if ! $guile_config link > /dev/null ; then
echo "$ac_t"""cannot execute $guile_config"" 1>&6
{ echo "configure: error: "cannot find guile-config; is Guile installed?"" 1>&2; exit 1; }
# Extract the first word of "guile", so it can be a program name with args.
set dummy guile; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2899: checking for $ac_word" >&5
+echo "configure:2901: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GUILE'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
fi
+ cat >> confdefs.h <<EOF
+#define GUILE_MAJOR_VERSION $GUILE_MAJOR_VERSION
+EOF
+
+ cat >> confdefs.h <<EOF
+#define GUILE_MINOR_VERSION $GUILE_MINOR_VERSION
+EOF
+
kpathsea_b=yes
+ #FIXME --with-xxx is meant for specifying a PATH too,
+ # so this should read: --enable-kpathsea,
+ # or --with-kpathsea-include=PATH --with-kpathsea-lib=PATH
# Check whether --with-kpathsea or --without-kpathsea was given.
if test "${with_kpathsea+set}" = set; then
withval="$with_kpathsea"
- kpathsea_b=$enableval
+ kpathsea_b=$with_kpathsea
fi
- if test "$kpathsea_b" = "yes"; then
+ if test "$kpathsea_b" != "no"; then
for ac_hdr in kpathsea/kpathsea.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2949: checking for $ac_hdr" >&5
+echo "configure:2962: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2954 "configure"
+#line 2967 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2959: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2972: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
done
echo $ac_n "checking for kpse_find_file in -lkpathsea""... $ac_c" 1>&6
-echo "configure:2986: checking for kpse_find_file in -lkpathsea" >&5
+echo "configure:2999: checking for kpse_find_file in -lkpathsea" >&5
ac_lib_var=`echo kpathsea'_'kpse_find_file | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lkpathsea $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2994 "configure"
+#line 3007 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
kpse_find_file()
; return 0; }
EOF
-if { (eval echo configure:3008: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
for ac_func in kpse_find_file
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3038: checking for $ac_func" >&5
+echo "configure:3051: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3043 "configure"
+#line 3056 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:3069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
fi
echo $ac_n "checking whether to use kpathsea""... $ac_c" 1>&6
-echo "configure:3096: checking whether to use kpathsea" >&5
- if test "$kpathsea_b" = yes; then
+echo "configure:3109: checking whether to use kpathsea" >&5
+ if test "$kpathsea_b" != no; then
echo "$ac_t""yes" 1>&6
KPATHSEA=1
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3117: checking for $ac_word" >&5
+echo "configure:3130: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_BIBTEX2HTML'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:3158: checking for 8-bit clean memcmp" >&5
+echo "configure:3171: checking for 8-bit clean memcmp" >&5
if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_func_memcmp_clean=no
else
cat > conftest.$ac_ext <<EOF
-#line 3166 "configure"
+#line 3179 "configure"
#include "confdefs.h"
#ifdef __cplusplus
extern "C" void exit(int) throw();
}
EOF
-if { (eval echo configure:3179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_memcmp_clean=yes
else
test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:3197: checking for vprintf" >&5
+echo "configure:3210: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3202 "configure"
+#line 3215 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
; return 0; }
EOF
-if { (eval echo configure:3228: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:3252: checking for _doprnt" >&5
+echo "configure:3265: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3257 "configure"
+#line 3270 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
; return 0; }
EOF
-if { (eval echo configure:3283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
for ac_func in memmem snprintf vsnprintf gettext isinf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3310: checking for $ac_func" >&5
+echo "configure:3323: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3315 "configure"
+#line 3328 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:3341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3381: checking for $ac_word" >&5
+echo "configure:3394: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$MAKEINFO" != "error"; then
echo $ac_n "checking whether makeinfo can split html by @node""... $ac_c" 1>&6
-echo "configure:3413: checking whether makeinfo can split html by @node" >&5
+echo "configure:3426: checking whether makeinfo can split html by @node" >&5
mkdir -p out
makeinfo --html --output=out/split <<EOF
\input texinfo
# Extract the first word of "perl", so it can be a program name with args.
set dummy perl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3441: checking for $ac_word" >&5
+echo "configure:3454: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
\score{
\notes\relative c{
- \property Voice.Stem \override #'default-neutral-direction = #-1
+ \property Voice.Stem \override #'neutral-direction = #-1
b''4 ~ b8()b8 e4 e,
}
fragment = \notes {
[b''8 b]
- \property Voice.Beam \set #'default-neutral-direction = #-1
+ \property Voice.Beam \set #'neutral-direction = #-1
[b b]
}
\header { texidoc = "
The direction of a perfectly centred beams can be
controlled through @code{Voice.Beam}'s grob-property
-@code{default-neutral-direction}
+@code{neutral-direction}
"}
\paper { linewidth = -1.}
\score {\notes \relative c {
[b''8 b]
- \property Voice.Beam \set #'default-neutral-direction = #-1
+ \property Voice.Beam \set #'neutral-direction = #-1
[b b]
}}
All_font_metrics::~All_font_metrics ()
{
- scm_unprotect_object (afm_p_dict_->self_scm ());
- scm_unprotect_object (tfm_p_dict_->self_scm ());
+ scm_gc_unprotect_object (afm_p_dict_->self_scm ());
+ scm_gc_unprotect_object (tfm_p_dict_->self_scm ());
}
Adobe_font_metric *
afm_p_dict_->set (sname,val);
- scm_unprotect_object (val);
+ scm_gc_unprotect_object (val);
Adobe_font_metric *afm
unsmob_metrics (val)->description_ = gh_cons (name_str, gh_double2scm (1.0));
tfm_p_dict_->set (sname, val);
- scm_unprotect_object (val);
+ scm_gc_unprotect_object (val);
}
return
*/
if (Stem::beam_l ((*stem_l_arr_p_)[i]))
{
- scm_unprotect_object (beam_p->self_scm ());
+ scm_gc_unprotect_object (beam_p->self_scm ());
return 0;
}
Beam::add_stem (beam_p, (*stem_l_arr_p_)[i]);
n->set_mus_property ("duration", dur);
n->set_mus_property ("inversion", SCM_BOOL_T);
list = gh_cons (n->self_scm (), list);
- scm_unprotect_object (n->self_scm ());
+ scm_gc_unprotect_object (n->self_scm ());
}
else
warning (_f ("invalid inversion pitch: not part of chord: %s",
n->set_mus_property ("duration", dur);
n->set_mus_property ("bass", SCM_BOOL_T);
list = gh_cons (n->self_scm (), list);
- scm_unprotect_object (n->self_scm ());
+ scm_gc_unprotect_object (n->self_scm ());
}
for (SCM i = pitches; gh_pair_p (i); i = gh_cdr (i))
n->set_mus_property ("pitch", gh_car (i));
n->set_mus_property ("duration", dur);
list = gh_cons (n->self_scm (), list);
- scm_unprotect_object (n->self_scm ());
+ scm_gc_unprotect_object (n->self_scm ());
}
Simultaneous_music*v = new Request_chord (SCM_EOL);
#include "cxx-function-smob.hh"
#include "ly-smobs.icc"
-static long callback_tag;
+static scm_t_bits callback_tag;
static
SCM mark_smob (SCM)
void init_cxx_function_smobs ()
{
- callback_tag = scm_make_smob_type_mfpe ("callback", 0,
- mark_smob, free_smob,
- print_smob, 0);
-
- scm_make_gsubr ("c++-function?", 1, 0, 0, (Scheme_function_unknown) cxx_function_type_p);
+ callback_tag = scm_make_smob_type ("callback", 0);
+ scm_set_smob_mark (callback_tag, mark_smob);
+ scm_set_smob_free (callback_tag, free_smob);
+ scm_set_smob_print (callback_tag, print_smob);
+ scm_set_smob_equalp (callback_tag, 0);
+
+ scm_c_define_gsubr ("c++-function?", 1, 0, 0, (Scheme_function_unknown) cxx_function_type_p);
}
SCM
static void
add_funcs ()
{
- scm_make_gsubr ("make-duration", 2, 0, 0, (Scheme_function_unknown)make_duration);
+ scm_c_define_gsubr ("make-duration", 2, 0, 0, (Scheme_function_unknown)make_duration);
}
ADD_SCM_INIT_FUNC (duration, add_funcs);
design_sz_sym = scm_permanent_object (ly_symbol2scm ("font-design-size"));
wild_sym = scm_permanent_object (ly_symbol2scm ("*"));
- scm_make_gsubr ("ly-get-default-font", 1 , 0, 0, (Scheme_function_unknown) ly_font_interface_get_default_font);
+ scm_c_define_gsubr ("ly-get-default-font", 1 , 0, 0, (Scheme_function_unknown) ly_font_interface_get_default_font);
}
smobify_self ();
}
-Font_metric::Font_metric (Font_metric const &s)
+Font_metric::Font_metric (Font_metric const &)
{
}
static void
font_metric_init ()
{
- scm_make_gsubr ("ly-find-glyph-by-name", 2 , 0, 0, (Scheme_function_unknown) ly_find_glyph_by_name);
+ scm_c_define_gsubr ("ly-find-glyph-by-name", 2 , 0, 0, (Scheme_function_unknown) ly_find_glyph_by_name);
}
ADD_SCM_INIT_FUNC (font_metric_init, font_metric_init);
{
interfaces_sym = scm_permanent_object (ly_symbol2scm ("interfaces"));
- scm_make_gsubr ("ly-get-grob-property", 2, 0, 0, (Scheme_function_unknown)ly_get_grob_property);
- scm_make_gsubr ("ly-set-grob-property", 3, 0, 0, (Scheme_function_unknown)ly_set_grob_property);
- scm_make_gsubr ("ly-get-spanner-bound", 2 , 0, 0, (Scheme_function_unknown) spanner_get_bound);
+ scm_c_define_gsubr ("ly-get-grob-property", 2, 0, 0, (Scheme_function_unknown)ly_get_grob_property);
+ scm_c_define_gsubr ("ly-set-grob-property", 3, 0, 0, (Scheme_function_unknown)ly_set_grob_property);
+ scm_c_define_gsubr ("ly-get-spanner-bound", 2 , 0, 0, (Scheme_function_unknown) spanner_get_bound);
}
bool
#ifndef LILY_GUILE_HH
#define LILY_GUILE_HH
-#include <guile/gh.h>
#include <libguile.h>
+/*
+ TODO: the GH interface is deprecated as of GUILE 1.6
+
+ Remove all gh_XXX functions.
+ */
+#include <guile/gh.h>
+
+#include "config.h"
+
+
+/* Guile 1.3.4 compatibility */
+#if GUILE_MINOR_VERSION < 4
+
+#define scm_bits_t SCM
#define fix_guile_1_3_4_scm_puts(scm_data, port) scm_puts ((char*)scm_data, port)
#define scm_puts(scm_data, port) fix_guile_1_3_4_scm_puts (scm_data, port)
+#endif
+
+/* Guile 1.4.x compatibility */
+#if GUILE_MINOR_VERSION < 5
+
+#define scm_t_bits scm_bits_t
+
+#define fix_guile_1_4_gh_scm2newstr(str, lenp) gh_scm2newstr (str, (int*)lenp)
+#define gh_scm2newstr(str, lenp) fix_guile_1_4_gh_scm2newstr (str, lenp)
+
+#define fix_guile_1_4_scm_primitive_eval(form) scm_eval_3 (form, 1, SCM_EOL)
+#define scm_primitive_eval(form) fix_guile_1_4_scm_primitive_eval (form)
+
+#define scm_c_define_gsubr scm_make_gsubr
+#define scm_c_eval_string(str) gh_eval_str ((char*)str)
+#define scm_c_memq scm_sloppy_memq
+#define scm_gc_protect_object scm_protect_object
+#define scm_gc_unprotect_object scm_unprotect_object
+#define scm_list_n scm_listify
+#define SCM_STRING_CHARS SCM_CHARS
+#define SCM_STRING_LENGTH SCM_LENGTH
+#endif
#include "direction.hh"
#include "flower-proto.hh"
#define SCM_UNPACK(x) ( x)
#endif
+
+
+
+
/*
conversion functions follow the GUILE naming convention, i.e.
#define IMPLEMENT_TYPE_P(CL, FUNCNAME)\
void init_type_p_ ## CL ()\
{\
- scm_make_gsubr (FUNCNAME, 1, 0, 0, (Scheme_function_unknown) CL::smob_p);\
+ scm_c_define_gsubr (FUNCNAME, 1, 0, 0, (Scheme_function_unknown) CL::smob_p);\
}\
ADD_SCM_INIT_FUNC (init_type_p_ ## CL, init_type_p_ ## CL)
#define IMPLEMENT_SIMPLE_SMOBS(CL) \
-long CL::smob_tag_; \
+scm_t_bits CL::smob_tag_; \
SCM \
CL::smob_p (SCM s) \
{ \
CL::smobify_self () \
{ \
SCM s = unprotected_smobify_self ();\
- scm_protect_object (s);\
+ scm_gc_protect_object (s);\
return s;\
}\
SCM \
class Bla {
Csmob *ptr;
- ~Bla () { scm_unprotect_object (ptr->self_scm_); }
+ ~Bla () { scm_gc_unprotect_object (ptr->self_scm_); }
};
friend class Non_existant_class ; \
SCM smobbed_self () const; \
private:\
- static long smob_tag_; \
+ static scm_t_bits smob_tag_; \
static SCM mark_smob (SCM); \
- static scm_sizet free_smob (SCM s); \
+ static size_t free_smob (SCM s); \
static int print_smob (SCM s, SCM p, scm_print_state*); \
public: \
static SCM equal_p (SCM a, SCM b);\
= scm_make_smob_type_mfpe ("input", 0,
mark_smob, free_smob,
print_smob, 0);
- scm_make_gsubr ("ly-input-location?", 1, 0, 0, (Scheme_function_unknown)ly_input_p);
+ scm_c_define_gsubr ("ly-input-location?", 1, 0, 0, (Scheme_function_unknown)ly_input_p);
}
ly_scm2string (SCM s)
{
assert (gh_string_p (s));
- int len;
+ size_t len;
char * p = gh_scm2newstr (s , &len);
String r (p);
static void
init_functions ()
{
- scm_make_gsubr ("ly-warn", 1, 0, 0, (Scheme_function_unknown)ly_warning);
- scm_make_gsubr ("ly-version", 0, 0, 0, (Scheme_function_unknown)ly_version);
- scm_make_gsubr ("ly-gulp-file", 1,0, 0, (Scheme_function_unknown)ly_gulp_file);
- scm_make_gsubr ("dir?", 1,0, 0, (Scheme_function_unknown)ly_isdir_p);
+ scm_c_define_gsubr ("ly-warn", 1, 0, 0, (Scheme_function_unknown)ly_warning);
+ scm_c_define_gsubr ("ly-version", 0, 0, 0, (Scheme_function_unknown)ly_version);
+ scm_c_define_gsubr ("ly-gulp-file", 1,0, 0, (Scheme_function_unknown)ly_gulp_file);
+ scm_c_define_gsubr ("dir?", 1,0, 0, (Scheme_function_unknown)ly_isdir_p);
- scm_make_gsubr ("ly-number->string", 1, 0,0, (Scheme_function_unknown) ly_number2string);
+ scm_c_define_gsubr ("ly-number->string", 1, 0,0, (Scheme_function_unknown) ly_number2string);
#ifdef TEST_GC
{
elem_p->pscore_l_ = pscore_l_;
Pointer_group_interface::add_element (this, "all-elements",elem_p);
- scm_unprotect_object (elem_p->self_scm ());
+ scm_gc_unprotect_object (elem_p->self_scm ());
}
void
if (m && ly_axis_p (axis) && ly_number_pair_p (np))
{
Interval iv = ly_scm2interval (np);
- m->dim_[Axis (gh_scm2int (axis))] = ly_scm2interval (np);
+ m->dim_[Axis (gh_scm2int (axis))] = iv;
}
else
warning ("ly-set-molecule-extent!: invalid arguments");
static void
molecule_init ()
{
- scm_make_gsubr ("ly-make-molecule", 3, 0, 0, (Scheme_function_unknown) make_molecule);
- scm_make_gsubr ("ly-combine-molecule-at-edge", 5 , 0, 0, (Scheme_function_unknown) Molecule::ly_molecule_combined_at_edge);
- scm_make_gsubr ("ly-set-molecule-extent!", 3 , 0, 0, (Scheme_function_unknown) Molecule::ly_set_molecule_extent_x);
- scm_make_gsubr ("ly-get-molecule-extent", 2 , 0, 0, (Scheme_function_unknown) Molecule::ly_get_molecule_extent);
+ scm_c_define_gsubr ("ly-make-molecule", 3, 0, 0, (Scheme_function_unknown) make_molecule);
+ scm_c_define_gsubr ("ly-combine-molecule-at-edge", 5 , 0, 0, (Scheme_function_unknown) Molecule::ly_molecule_combined_at_edge);
+ scm_c_define_gsubr ("ly-set-molecule-extent!", 3 , 0, 0, (Scheme_function_unknown) Molecule::ly_set_molecule_extent_x);
+ scm_c_define_gsubr ("ly-get-molecule-extent", 2 , 0, 0, (Scheme_function_unknown) Molecule::ly_get_molecule_extent);
}
ADD_SCM_INIT_FUNC (molecule,molecule_init);
int
Molecule::print_smob (SCM s, SCM port, scm_print_state *)
{
- Molecule *r = (Molecule *) gh_cdr (s);
-
scm_puts ("#<Molecule ", port);
- /* String str (r->str ());
+#if 0
+ Molecule *r = (Molecule *) gh_cdr (s);
+ String str (r->str ());
scm_puts ((char *)str.ch_C (), port);*/
+#endif
+
scm_puts (" >", port);
return 1;
void
init_moments ()
{
- scm_make_gsubr ("make-moment", 2 , 0, 0, (Scheme_function_unknown) make_rational);
+ scm_c_define_gsubr ("make-moment", 2 , 0, 0, (Scheme_function_unknown) make_rational);
}
ADD_SCM_INIT_FUNC (moms,init_moments);
translator_p_dict_p_ = new Scope (translator_tab_);
smobify_self ();
- scm_unprotect_object (variable_tab_->self_scm ());
- scm_unprotect_object (translator_tab_->self_scm ());
+ scm_gc_unprotect_object (variable_tab_->self_scm ());
+ scm_gc_unprotect_object (translator_tab_->self_scm ());
}
Music_output_def::~Music_output_def ()
style_sheet_ = SCM_EOL;
scaled_fonts_ = SCM_EOL;
smobify_self ();
- scm_unprotect_object (variable_tab_->self_scm ());
- scm_unprotect_object (translator_tab_->self_scm ());
+ scm_gc_unprotect_object (variable_tab_->self_scm ());
+ scm_gc_unprotect_object (translator_tab_->self_scm ());
scope_p_ = new Scope (variable_tab_);
{
set_mus_property ("elements",
gh_append2 (music_list (), gh_cons (m->self_scm (), SCM_EOL)));
- scm_unprotect_object (m->self_scm ());
+ scm_gc_unprotect_object (m->self_scm ());
}
Music_sequence::Music_sequence (SCM l)
if (unsmob_music (m))
{
SCM ss = unsmob_music (m)->clone ()->self_scm ();
- scm_unprotect_object (ss);
+ scm_gc_unprotect_object (ss);
return ss;
}
else if (gh_pair_p (m))
else
{
SCM s = get_music (ly_scm2string (type))->self_scm ();
- scm_unprotect_object (s);
+ scm_gc_unprotect_object (s);
return s;
}
}
static void
init_functions ()
{
- scm_make_gsubr ("ly-get-mus-property", 2, 0, 0, (Scheme_function_unknown)ly_get_mus_property);
- scm_make_gsubr ("ly-set-mus-property", 3, 0, 0, (Scheme_function_unknown)ly_set_mus_property);
- scm_make_gsubr ("ly-make-music", 1, 0, 0, (Scheme_function_unknown)ly_make_music);
- scm_make_gsubr ("ly-music-name", 1, 0, 0, (Scheme_function_unknown)ly_music_name);
+ scm_c_define_gsubr ("ly-get-mus-property", 2, 0, 0, (Scheme_function_unknown)ly_get_mus_property);
+ scm_c_define_gsubr ("ly-set-mus-property", 3, 0, 0, (Scheme_function_unknown)ly_set_mus_property);
+ scm_c_define_gsubr ("ly-make-music", 1, 0, 0, (Scheme_function_unknown)ly_make_music);
+ scm_c_define_gsubr ("ly-music-name", 1, 0, 0, (Scheme_function_unknown)ly_music_name);
}
ADD_SCM_INIT_FUNC (musicscm,init_functions);
ADD_MUSIC(Music);
My_lily_lexer::~My_lily_lexer ()
{
delete keytable_p_;
- scm_unprotect_object (toplevel_variable_tab_->self_scm ());
+ scm_gc_unprotect_object (toplevel_variable_tab_->self_scm ());
delete scope_p_ ;
}
SCM val = Scaled_font_metric::make_scaled_font_metric (f, m);
scaled_fonts_ = scm_acons (key, val, scaled_fonts_);
- scm_unprotect_object (val);
+ scm_gc_unprotect_object (val);
return dynamic_cast<Scaled_font_metric*> (unsmob_metrics (val));
}
}
| lilypond_header {
if (global_header_p)
- scm_unprotect_object (global_header_p->self_scm ());
+ scm_gc_unprotect_object (global_header_p->self_scm ());
global_header_p = $1;
}
| score_block {
identifier_init:
score_block {
$$ = $1->self_scm ();
- scm_unprotect_object ($$);
+ scm_gc_unprotect_object ($$);
}
| output_def {
$$ = $1->self_scm ();
- scm_unprotect_object ($$);
+ scm_gc_unprotect_object ($$);
}
| translator_spec_block {
$$ = $1;
}
| Music {
$$ = $1->self_scm ();
- scm_unprotect_object ($$);
+ scm_gc_unprotect_object ($$);
}
| post_request {
$$ = $1->self_scm ();
- scm_unprotect_object ($$);
+ scm_gc_unprotect_object ($$);
}
| explicit_duration {
$$ = $1;
$$->set_spot (THIS->here_input ());
SCM m = $1->self_scm ();
- scm_unprotect_object (m);
+ scm_gc_unprotect_object (m);
$$->music_ = m;
}
| SCORE_IDENTIFIER {
$$->set_spot (THIS->here_input ());
}
| score_body lilypond_header {
- scm_unprotect_object ($2->self_scm ());
+ scm_gc_unprotect_object ($2->self_scm ());
$$->header_p_ = $2;
}
| score_body output_def {
| Music_list Music {
SCM s = $$;
SCM c = gh_cons ($2->self_scm (), SCM_EOL);
- scm_unprotect_object ($2->self_scm ()); /* UGH */
+ scm_gc_unprotect_object ($2->self_scm ()); /* UGH */
if (gh_pair_p (gh_cdr (s)))
gh_set_cdr_x (gh_cdr (s), c); /* append */
else
if (beg)
{
r-> set_mus_property ("body", beg->self_scm ());
- scm_unprotect_object (beg->self_scm ());
+ scm_gc_unprotect_object (beg->self_scm ());
}
r->set_mus_property ("repeat-count", gh_int2scm (times >? 1));
{
alts->truncate (times);
r-> set_mus_property ("alternatives", alts->self_scm ());
- scm_unprotect_object (alts->self_scm ());
+ scm_gc_unprotect_object (alts->self_scm ());
}
SCM func = scm_eval2 (ly_symbol2scm ("repeat-name-to-ctor"), SCM_EOL);
SCM result = gh_call1 (func, $2);
CONTEXT STRING Music {
Context_specced_music *csm = new Context_specced_music (SCM_EOL);
csm->set_mus_property ("element", $3->self_scm ());
- scm_unprotect_object ($3->self_scm ());
+ scm_gc_unprotect_object ($3->self_scm ());
csm->set_mus_property ("context-type",$2);
csm->set_mus_property ("context-id", ly_str02scm (""));
chm->set_mus_property ("element", $3->self_scm ());
chm->set_mus_property ("iterator-ctor", Auto_change_iterator::constructor_cxx_function);
- scm_unprotect_object ($3->self_scm ());
+ scm_gc_unprotect_object ($3->self_scm ());
chm->set_mus_property ("what", $2);
$$ = chm;
| GRACE Music {
$$ = new Grace_music (SCM_EOL);
$$->set_mus_property ("element", $2->self_scm ());
- scm_unprotect_object ($2->self_scm ());
+ scm_gc_unprotect_object ($2->self_scm ());
}
| CONTEXT string '=' string Music {
Context_specced_music *csm = new Context_specced_music (SCM_EOL);
csm->set_mus_property ("element", $5->self_scm ());
- scm_unprotect_object ($5->self_scm ());
+ scm_gc_unprotect_object ($5->self_scm ());
csm->set_mus_property ("context-type", $2);
csm->set_mus_property ("context-id", $4);
$$->set_mus_property ("element", mp->self_scm ());
- scm_unprotect_object (mp->self_scm ());
+ scm_gc_unprotect_object (mp->self_scm ());
$$->set_mus_property ("numerator", gh_int2scm (n));
$$->set_mus_property ("denominator", gh_int2scm (d));
$$->compress (Moment (n,d));
p->transpose (pit);
$$->set_mus_property ("element", p->self_scm ());
- scm_unprotect_object (p->self_scm ());
+ scm_gc_unprotect_object (p->self_scm ());
}
| TRANSPOSE steno_tonic_pitch Music {
$$ = new Transposed_music (SCM_EOL);
p->transpose (pit);
$$->set_mus_property ("element", p->self_scm ());
- scm_unprotect_object (p->self_scm ());
+ scm_gc_unprotect_object (p->self_scm ());
}
| APPLY embedded_scm Music {
$$ = new Relative_octave_music (SCM_EOL);
$$->set_mus_property ("element", p->self_scm ());
- scm_unprotect_object (p->self_scm ());
+ scm_gc_unprotect_object (p->self_scm ());
$$->set_mus_property ("last-pitch", p->to_relative_octave (pit).smobbed_copy ());
Lyric_combine_music * l = new Lyric_combine_music (SCM_EOL);
l->set_mus_property ("music", $2->self_scm ());
l->set_mus_property ("lyrics", $3->self_scm ());
- scm_unprotect_object ($3->self_scm ());
- scm_unprotect_object ($2->self_scm ());
+ scm_gc_unprotect_object ($3->self_scm ());
+ scm_gc_unprotect_object ($2->self_scm ());
$$ = l;
}
;
p->set_mus_property ("one", $3->self_scm ());
p->set_mus_property ("two", $4->self_scm ());
- scm_unprotect_object ($3->self_scm ());
- scm_unprotect_object ($4->self_scm ());
+ scm_gc_unprotect_object ($3->self_scm ());
+ scm_gc_unprotect_object ($4->self_scm ());
$$ = p;
Context_specced_music *csm = new Context_specced_music (SCM_EOL);
csm->set_mus_property ("element", t->self_scm ());
- scm_unprotect_object (t->self_scm ());
+ scm_gc_unprotect_object (t->self_scm ());
$$ = csm;
$$->set_spot (THIS->here_input ());
Context_specced_music *csm = new Context_specced_music (SCM_EOL);
csm->set_mus_property ("element", t->self_scm ());
- scm_unprotect_object (t->self_scm ());
+ scm_gc_unprotect_object (t->self_scm ());
$$ = csm;
$$->set_spot (THIS->here_input ());
t->set_mus_property ("grob-value", $8);
Context_specced_music *csm = new Context_specced_music (SCM_EOL);
csm->set_mus_property ("element", t->self_scm ());
- scm_unprotect_object (t->self_scm ());
+ scm_gc_unprotect_object (t->self_scm ());
$$ = csm;
$$->set_spot (THIS->here_input ());
t->set_mus_property ("grob-value", $8);
Context_specced_music *csm = new Context_specced_music (SCM_EOL);
csm->set_mus_property ("element", t->self_scm ());
- scm_unprotect_object (t->self_scm ());
+ scm_gc_unprotect_object (t->self_scm ());
$$ = csm;
$$->set_spot (THIS->here_input ());
Context_specced_music *csm = new Context_specced_music (SCM_EOL);
csm->set_mus_property ("element", t->self_scm ());
- scm_unprotect_object (t->self_scm ());
+ scm_gc_unprotect_object (t->self_scm ());
$$ = csm;
$$->set_spot (THIS->here_input ());
Context_specced_music *csm = new Context_specced_music (SCM_EOL);
csm->set_mus_property ("element", t->self_scm ());
- scm_unprotect_object (t->self_scm ());
+ scm_gc_unprotect_object (t->self_scm ());
$$ = csm;
$$->set_spot (THIS->here_input ());
Context_specced_music * sp = new Context_specced_music (SCM_EOL);
sp->set_mus_property ("element", p->self_scm ());
- scm_unprotect_object (p->self_scm ());
+ scm_gc_unprotect_object (p->self_scm ());
$$ =sp ;
sp-> set_mus_property ("context-type", ly_str02scm ( "Score"));
Music * p = new Music (SCM_EOL);
set_music_properties (p, gh_car (s));
l = gh_cons (p->self_scm (), l);
- scm_unprotect_object (p->self_scm ());
+ scm_gc_unprotect_object (p->self_scm ());
}
Sequential_music * seq = new Sequential_music (SCM_EOL);
seq->set_mus_property ("elements", l);
Context_specced_music * sp = new Context_specced_music (SCM_EOL);
sp->set_mus_property ("element", seq->self_scm ());
- scm_unprotect_object (seq->self_scm ());
+ scm_gc_unprotect_object (seq->self_scm ());
$$ =sp ;
sp-> set_mus_property ("context-type", ly_str02scm ("Staff"));
- scm_unprotect_object (p3->self_scm ());
- scm_unprotect_object (p2->self_scm ());
- scm_unprotect_object (p1->self_scm ());
- scm_unprotect_object (seq->self_scm ());
+ scm_gc_unprotect_object (p3->self_scm ());
+ scm_gc_unprotect_object (p2->self_scm ());
+ scm_gc_unprotect_object (p1->self_scm ());
+ scm_gc_unprotect_object (seq->self_scm ());
$$ = sp;
add_funcs ()
{
// should take list?: (make-pitch ' (octave name accidental))
- scm_make_gsubr ("make-pitch", 3, 0, 0, (Scheme_function_unknown)make_pitch);
+ scm_c_define_gsubr ("make-pitch", 3, 0, 0, (Scheme_function_unknown)make_pitch);
- scm_make_gsubr ("pitch-octave", 1, 0, 0, (Scheme_function_unknown)pitch_octave);
- scm_make_gsubr ("pitch-notename", 1, 0, 0, (Scheme_function_unknown)pitch_notename);
- scm_make_gsubr ("pitch-alteration", 1, 0, 0, (Scheme_function_unknown)pitch_alteration);
- scm_make_gsubr ("pitch-semitones", 1, 0, 0, (Scheme_function_unknown)pitch_semitones);
- scm_make_gsubr ("Pitch::transpose", 2, 0, 0, (Scheme_function_unknown) pitch_transpose);
+ scm_c_define_gsubr ("pitch-octave", 1, 0, 0, (Scheme_function_unknown)pitch_octave);
+ scm_c_define_gsubr ("pitch-notename", 1, 0, 0, (Scheme_function_unknown)pitch_notename);
+ scm_c_define_gsubr ("pitch-alteration", 1, 0, 0, (Scheme_function_unknown)pitch_alteration);
+ scm_c_define_gsubr ("pitch-semitones", 1, 0, 0, (Scheme_function_unknown)pitch_semitones);
+ scm_c_define_gsubr ("Pitch::transpose", 2, 0, 0, (Scheme_function_unknown) pitch_transpose);
}
ADD_SCM_INIT_FUNC (pitch, add_funcs);
Property_engraver::~Property_engraver ()
{
if (prop_dict_)
- scm_unprotect_object (prop_dict_->self_scm ());
+ scm_gc_unprotect_object (prop_dict_->self_scm ());
}
void
Protected_scm::Protected_scm (SCM s)
{
- object_ = SCM_NIMP (s) ? scm_protect_object (s): s;
+ object_ = SCM_NIMP (s) ? scm_gc_protect_object (s): s;
}
Protected_scm::Protected_scm (Protected_scm const &s)
{
- object_ = SCM_NIMP (s.object_) ? scm_protect_object (s.object_) : s.object_;
+ object_ = SCM_NIMP (s.object_) ? scm_gc_protect_object (s.object_) : s.object_;
}
Protected_scm &
return *this;
if (SCM_NIMP (object_))
- scm_unprotect_object (object_);
+ scm_gc_unprotect_object (object_);
- object_ = SCM_NIMP (s) ? scm_protect_object (s): s;
+ object_ = SCM_NIMP (s) ? scm_gc_protect_object (s): s;
return *this;
}
{
if (SCM_NIMP (object_))
{
- scm_unprotect_object (object_);
+ scm_gc_unprotect_object (object_);
}
}
{
assert (unsmob (s));
char str[1000];
- sprintf (str, "#<Scheme_hash_table 0x%0x ", s);
+ sprintf (str, "#<Scheme_hash_table 0x%0x ", SCM_UNPACK (s));
scm_puts (str, p);
Scheme_hash_table *me = unsmob (s);
for (Scm_stl_map::const_iterator i = me->begin (); i != me->end (); i++)
static void
init_functions ()
{
- scm_make_gsubr ("set-lily-option", 2, 0, 0, (Scheme_function_unknown)set_lily_option);
+ scm_c_define_gsubr ("set-lily-option", 2, 0, 0, (Scheme_function_unknown)set_lily_option);
}
Music * m =unsmob_music (s.music_);
music_ = m?m->clone ()->self_scm () : SCM_EOL;
- scm_unprotect_object (music_);
+ scm_gc_unprotect_object (music_);
for (int i=0; i < s.def_p_arr_.size (); i++)
def_p_arr_.push (s.def_p_arr_[i]->clone ());
{
header_p_ = (s.header_p_) ? new Scheme_hash_table (*s.header_p_): 0;
- scm_unprotect_object (header_p_->self_scm ());
+ scm_gc_unprotect_object (header_p_->self_scm ());
}
}
}
Music_output * output = trans_p->get_output_p ();
- scm_unprotect_object (trans_p->self_scm ());
+ scm_gc_unprotect_object (trans_p->self_scm ());
if (verbose_global_b)
progress_indication (_f ("elapsed time: %.2f seconds", timer.read ()));
clear_scores ()
{
for (int i=0; i < score_global_array.size (); i++)
- scm_unprotect_object (score_global_array[i]->self_scm ());
+ scm_gc_unprotect_object (score_global_array[i]->self_scm ());
score_global_array.clear ();
inclusion_global_array.clear ();
if (global_header_p)
- scm_unprotect_object (global_header_p ->self_scm ());
+ scm_gc_unprotect_object (global_header_p ->self_scm ());
global_header_p =0;
}
// compose span_bar_mol
Molecule span_bar_mol = Molecule::Molecule ();
- Grob *prev_staff_bar = 0;
- Real prev_staff_bar_length = 0.0;
+ Interval prev_extent;
for (SCM elts = first_elt;
gh_pair_p (elts);
elts = gh_cdr (elts))
{
SCM smobbed_staff_bar = gh_car (elts);
- SCM smobbed_staff_bar_molecule =
- Bar::brew_molecule (smobbed_staff_bar);
Grob *staff_bar = unsmob_grob (smobbed_staff_bar);
- Real staff_bar_length =
- unsmob_molecule (smobbed_staff_bar_molecule)->
- extent (Y_AXIS).length ();
+ Interval ext = staff_bar->extent (refp, Y_AXIS);
- if (prev_staff_bar) {
+ if (ext.empty_b ())
+ continue;
+
+ if (!prev_extent.empty_b ()) {
Interval l;
- l[LEFT] = prev_staff_bar->extent (refp, Y_AXIS)[UP];
- l[RIGHT] = staff_bar->extent (refp, Y_AXIS)[DOWN];
-
- SCM smobbed_staff_bar = gh_car (elts);
- Grob *staff_bar = unsmob_grob (smobbed_staff_bar);
+ l[LEFT] = prev_extent[UP];
+ l[RIGHT] = ext[DOWN];
+
+ //SCM smobbed_staff_bar = gh_car (elts);
+ //Grob *staff_bar = unsmob_grob (smobbed_staff_bar);
SCM smobbed_interstaff_bar_molecule =
Bar::compound_barline (staff_bar, glyph_str, l.length()).
smobbed_copy ();
-
+
Molecule *interstaff_bar_mol =
unsmob_molecule (smobbed_interstaff_bar_molecule);
-
- yoffs += prev_staff_bar_length; // skip staff bar
+
+ yoffs += prev_extent.length (); // skip staff bar
yoffs += 0.5 * (l[RIGHT] - l[LEFT]); // compensate interstaff bar centering
interstaff_bar_mol->translate_axis (yoffs, Y_AXIS);
yoffs += 0.5 * (l[RIGHT] - l[LEFT]);
-
+
span_bar_mol.add_molecule (*interstaff_bar_mol);
}
- prev_staff_bar = staff_bar;
- prev_staff_bar_length = staff_bar_length;
+ prev_extent = ext;
}
return span_bar_mol.smobbed_copy ();
tr->daddy_trans_l_ = tg;
tr->output_def_l_ = tg->output_def_l_;
- scm_unprotect_object (str);
+ scm_gc_unprotect_object (str);
}
}
return l;
Scheme_hash_table * tab = new Scheme_hash_table (*s.properties_dict ());
properties_scm_ = tab->self_scm ();
- scm_unprotect_object (tab->self_scm ());
+ scm_gc_unprotect_object (tab->self_scm ());
}
Scheme_hash_table*
Scheme_hash_table *tab = new Scheme_hash_table ;
properties_scm_ = tab->self_scm ();
- scm_unprotect_object (tab->self_scm ());
+ scm_gc_unprotect_object (tab->self_scm ());
}
void
void
add_trans_scm_funcs ()
{
- scm_make_gsubr ("ly-get-trans-property", 2, 0, 0, (Scheme_function_unknown)ly_get_trans_property);
- scm_make_gsubr ("ly-set-trans-property", 3, 0, 0, (Scheme_function_unknown)ly_set_trans_property);
+ scm_c_define_gsubr ("ly-get-trans-property", 2, 0, 0, (Scheme_function_unknown)ly_get_trans_property);
+ scm_c_define_gsubr ("ly-set-trans-property", 3, 0, 0, (Scheme_function_unknown)ly_set_trans_property);
}
ADD_SCM_INIT_FUNC (trans_scm, add_trans_scm_funcs);
{
if (volta_span_p_)
Volta_spanner::add_column (volta_span_p_,item);
- if (end_volta_span_p_)
- Volta_spanner::add_column (end_volta_span_p_,item);
+
+ /*
+ don't add to end_volta_span_p_, since this note is really after the
+ spanner.
+ */
}
if (Bar::has_interface (item))
{
Begin3
Title: LilyPond
-Version: 1.4.7
-Entered-date: 23AUG01
+Version: 1.4.8
+Entered-date: 24SEP01
Description: @BLURB@
Keywords: music notation typesetting midi fonts engraving
Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
janneke@gnu.org (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 1000k lilypond-1.4.7.tar.gz
+ 1000k lilypond-1.4.8.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 1000k lilypond-1.4.7.tar.gz
+ 1000k lilypond-1.4.8.tar.gz
Copying-policy: GPL
End
%define info yes
Name: lilypond
-Version: 1.4.7
+Version: 1.4.8
Release: 1
License: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.7.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.8.tar.gz
Summary: Create and print music notation
URL: http://www.cs.uu.nl/~hanwen/lilypond
BuildRoot: /tmp/lilypond-install
Distribution: SuSE Linux 7.0 (i386)
Name: lilypond
-Version: 1.4.7
+Version: 1.4.8
Release: 2
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.7.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.8.tar.gz
# music notation software for.. ?
Summary: A program for printing sheet music.
URL: http://www.lilypond.org/
--- /dev/null
+# Danish translation of lilypond
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Keld Simonsen <keld@dkuug.dk>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: lilypond 1.4.6\n"
+"POT-Creation-Date: 2001-06-14 13:22+0200\n"
+"PO-Revision-Date: 2001-09-22 21:00+0200\n"
+"Last-Translator: Keld Simonsen <keld@dkuug.dk>\n"
+"Language-Team: Danish <dansk@klid.dk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ly2dvi.py:105
+msgid "Generate .dvi with LaTeX for LilyPond"
+msgstr "Generér .dvi med LaTeX for LilyPond"
+
+#: data-file.cc:118 input.cc:85 ly2dvi.py:190 midi-parser.cc:100 mup2ly.py:93
+#: update-lily.py:118 warn.cc:23
+msgid "warning: "
+msgstr "advarsel: "
+
+#: input.cc:90 ly2dvi.py:205 ly2dvi.py:804 mup2ly.py:98 mup2ly.py:188
+#: update-lily.py:123 update-lily.py:211 warn.cc:9 warn.cc:17
+msgid "error: "
+msgstr "fejl: "
+
+#: ly2dvi.py:206 mup2ly.py:100 update-lily.py:125
+msgid "Exiting ... "
+msgstr "Afslutter... "
+
+#: ly2dvi.py:264 mup2ly.py:158 update-lily.py:183
+#, c-format
+msgid "Usage: %s [OPTION]... FILE"
+msgstr "Brug: %s [FLAG]... FIL"
+
+#: ly2dvi.py:268 main.cc:120 main.cc:148 mup2ly.py:162 update-lily.py:187
+msgid "Options:"
+msgstr "Flag:"
+
+#: ly2dvi.py:272 main.cc:124 main.cc:171 mup2ly.py:168 update-lily.py:191
+#, c-format
+msgid "Report bugs to %s"
+msgstr ""
+"Rapportér programfejl til %s\n"
+"Rapportér fejl i oversættelsen til <dansk@klid.dk>"
+
+#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:208
+#, c-format
+msgid "Invoking `%s'"
+msgstr "Starter \"%s\""
+
+#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:211
+#, c-format
+msgid "command exited with value %d"
+msgstr "kommandoen afsluttede med værdi %d"
+
+#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:213
+msgid "(ignored)"
+msgstr "(ignoreret)"
+
+# hær er det spørg om rensning af en temporærkatalog
+#: ly2dvi.py:321
+#, c-format
+msgid "Cleaning %s..."
+msgstr "Renser %s..."
+
+#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:237
+#, c-format
+msgid "no such setting: %s"
+msgstr "indstillingen findes ikke: %s"
+
+#: ly2dvi.py:349 main.cc:112
+msgid "write Makefile dependencies for every input file"
+msgstr "skriv Makefile-afhængigheder for hver inddatafil"
+
+# forklaring af flag -h
+#: ly2dvi.py:350 main.cc:96 main.cc:108 mup2ly.py:1117 update-lily.py:251
+msgid "this help"
+msgstr "denne hjælp"
+
+#: ly2dvi.py:351 main.cc:110 main.cc:115
+msgid "DIR"
+msgstr "KATALOG"
+
+#: ly2dvi.py:351
+msgid "add DIR to LilyPond's search path"
+msgstr "tilføj KATALOG til LilyPonds søgesti"
+
+# %s er programmets navn
+#: ly2dvi.py:352
+#, c-format
+msgid "keep all output, and name the directory %s.dir"
+msgstr "behold al uddata, og navngiv kataloget %s.dir"
+
+#: ly2dvi.py:353
+msgid "don't run LilyPond"
+msgstr "kør ikke LilyPond"
+
+#: ly2dvi.py:354 main.cc:113
+msgid "produce MIDI output only"
+msgstr "lav kun MIDI-uddata"
+
+#: ly2dvi.py:355 main.cc:99 main.cc:111 main.cc:114
+msgid "FILE"
+msgstr "FIL"
+
+#: ly2dvi.py:355
+msgid "write ouput to FILE"
+msgstr "skriv uddata til FIL"
+
+#: ly2dvi.py:357
+msgid "generate PostScript output"
+msgstr "lav PostScript-uddata"
+
+#: ly2dvi.py:358
+msgid "KEY=VAL"
+msgstr "NØGLE=VÆRDI"
+
+#: ly2dvi.py:358
+msgid "change global setting KEY to VAL"
+msgstr "ændr global indstilling NØGLE til VÆRDI"
+
+# Førklaring til --verbose (borde være længre)
+#: ly2dvi.py:359 main.cc:118 mup2ly.py:1120 update-lily.py:255
+msgid "verbose"
+msgstr "udførlig uddata"
+
+#: ly2dvi.py:360 main.cc:105 main.cc:117 mup2ly.py:1121 update-lily.py:256
+msgid "print version number"
+msgstr "vis versionsnummer"
+
+#: ly2dvi.py:361 main.cc:107 main.cc:119 mup2ly.py:1122 update-lily.py:258
+msgid "show warranty and copyright"
+msgstr "vis garanti og copyright"
+
+#: ly2dvi.py:383 ly2dvi.py:578 ly2dvi.py:603
+#, c-format
+msgid "Running %s..."
+msgstr "Kør %s..."
+
+#: ly2dvi.py:396
+#, c-format
+msgid "Analyzing %s..."
+msgstr "Analyserer %s..."
+
+#: ly2dvi.py:452
+#, c-format
+msgid "no lilypond output found for %s"
+msgstr "ingen lilyponduddata fundet for %s"
+
+#: ly2dvi.py:494
+#, c-format
+msgid "invalid value: %s"
+msgstr "ugyldigt værdi: %s"
+
+# hær er det spørg om skrivning til en fil
+#: ly2dvi.py:781 scores.cc:44
+#, c-format
+msgid "dependencies output to `%s'..."
+msgstr "afhængigheder udskrevet til \"%s\"..."
+
+# hær er det spørg om skrivning til en fil (første parametern er t.ex
+# DVI, LATEX, MIDI, TEX)
+#: ly2dvi.py:791
+#, c-format
+msgid "%s output to `%s'..."
+msgstr "%s udskrevet til \"%s\"..."
+
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:793
+#: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
+#, c-format
+msgid "can't find file: `%s'"
+msgstr "kan ikke finde fil: \"%s\""
+
+#: ly2dvi.py:804
+msgid "no files specified on command line."
+msgstr "ingen filer angivne på kommandolinjen."
+
+#: mup2ly.py:51
+msgid "Convert mup to ly"
+msgstr "Konvertér mup til ly"
+
+# %s er progravnavnet (mup2ly)
+#: mup2ly.py:166
+#, c-format
+msgid "%s is far from completed. Not all constructs are recognised."
+msgstr "%s er langt fra færdig, og kan ikke genkende alle konstruktioner."
+
+#: mup2ly.py:964
+#, c-format
+msgid "no such context: %s"
+msgstr "omgivelse findes ikke: %s"
+
+#: mup2ly.py:1115
+msgid "debug"
+msgstr "fejlsøgningsuddata"
+
+#: mup2ly.py:1116
+msgid "define macro NAME [optional expansion EXP]"
+msgstr "definér makro NAVN [valfri makroudvidelse EXP]"
+
+#: main.cc:114 mup2ly.py:1118
+msgid "write output to FILE"
+msgstr "skriv uddata til FIL"
+
+#: mup2ly.py:1119
+msgid "only pre-process"
+msgstr "kun forbehandling"
+
+#: mup2ly.py:1200
+#, c-format
+msgid "Processing `%s'..."
+msgstr "Behandler \"%s\"..."
+
+#: mup2ly.py:1219
+#, c-format
+msgid "Writing `%s'..."
+msgstr "Skriver \"%s\"..."
+
+#: update-lily.py:51
+msgid "Fetch and rebuild from latest source package"
+msgstr "Hent og byg om fra seneste kildekodepakke"
+
+#: update-lily.py:223
+#, c-format
+msgid "Cleaning `%s'..."
+msgstr "Renser \"%s\"..."
+
+#: update-lily.py:243
+#, c-format
+msgid "unpack and build in DIR [%s]"
+msgstr "udpak og byg i DIR [%s]"
+
+#: update-lily.py:244
+msgid "execute COMMAND, subtitute:"
+msgstr "kør COMMAND, erstat:"
+
+#: update-lily.py:245
+msgid "%b: build root"
+msgstr "%b: rod for opbygning"
+
+#: update-lily.py:246
+#, c-format
+msgid "%n: package name"
+msgstr "%n: pakkenavn"
+
+#: update-lily.py:247
+msgid "%r: release directory"
+msgstr "%r: katalog for programudgivelse"
+
+#: update-lily.py:248
+msgid "%t: tarball"
+msgstr "%t: tarball"
+
+#: update-lily.py:249
+msgid "%v: package version"
+msgstr "%v: pakkeversion"
+
+#: update-lily.py:252
+#, c-format
+msgid "keep all output, and name the directory %s"
+msgstr "behold al uddata, og døb kataloget til %s"
+
+#: update-lily.py:253
+msgid "upon failure notify EMAIL[,EMAIL]"
+msgstr "ved fejl, underret EMAIL[,EMAIL]"
+
+#: update-lily.py:254
+msgid "remove previous build"
+msgstr "fjern foregående bygning"
+
+#: update-lily.py:257
+#, c-format
+msgid "fetch and build URL [%s]"
+msgstr "hent og byg URL [%s]"
+
+#: update-lily.py:365
+#, c-format
+msgid "Listing `%s'..."
+msgstr "Lister \"%s\"..."
+
+#: update-lily.py:426
+#, c-format
+msgid "latest is: %s"
+msgstr "seneste er: %s"
+
+#: update-lily.py:427
+#, c-format
+msgid "relax, %s is up to date"
+msgstr "slap af, %s er seneste version"
+
+#: update-lily.py:435 update-lily.py:448
+#, c-format
+msgid "Fetching `%s'..."
+msgstr "Henter \"%s\"..."
+
+#: update-lily.py:457
+#, c-format
+msgid "Building `%s'..."
+msgstr "Bygger \"%s\"..."
+
+#: data-file.cc:54
+msgid "EOF in a string"
+msgstr "EOF i en streng"
+
+#: getopt-long.cc:145
+#, c-format
+msgid "option `%s' requires an argument"
+msgstr "flag \"%s\" kræver et argument"
+
+#: getopt-long.cc:149
+#, c-format
+msgid "option `%s' doesn't allow an argument"
+msgstr "flag.gan \"%s\" tillader intet argument"
+
+#: getopt-long.cc:153
+#, c-format
+msgid "unrecognized option: `%s'"
+msgstr "ukendt flag: \"%s\""
+
+#: getopt-long.cc:160
+#, c-format
+msgid "invalid argument `%s' to option `%s'"
+msgstr "ugyldigt argument \"%s\" til flag \"%s\""
+
+#: input.cc:96
+msgid "non fatal error: "
+msgstr "ikke-fatal fejl: "
+
+#: input.cc:104 source-file.cc:63 source-file.cc:156
+msgid "position unknown"
+msgstr "ukendt position"
+
+# det handlar om mmap hær
+#: mapped-file-storage.cc:74
+msgid "can't map file"
+msgstr "kan ikke lave \"mmap\" på filen"
+
+#: lilypond-stream.cc:111 mapped-file-storage.cc:87 paper-stream.cc:45
+#: scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23
+#, c-format
+msgid "can't open file: `%s'"
+msgstr "kan ikke åbne fil: \"%s\""
+
+#: simple-file-storage.cc:56
+#, c-format
+msgid "Huh? Got %d, expected %d characters"
+msgstr "Øh? Fik %d, forventede %d tegn"
+
+#: text-stream.cc:10
+msgid "<stdin>"
+msgstr "<stdin>"
+
+#: warn.cc:36
+msgid "programming error: "
+msgstr "programmeringsfejl: "
+
+#: warn.cc:36
+msgid " (Continuing; cross thumbs)"
+msgstr " (Fortsætter, kryds fingrene)"
+
+#: afm.cc:59
+#, c-format
+msgid "can't find character number: %d"
+msgstr "kan ikke finde tegnnummer: %d"
+
+#: afm.cc:74
+#, c-format
+msgid "can't find character called: `%s'"
+msgstr "kan ikke finde tegn som hedder: \"%s\""
+
+#: afm.cc:124
+#, c-format
+msgid "Error parsing AFM file: `%s'"
+msgstr "Fejl ved tolkning af AFM-fil: \"%s\""
+
+#: all-font-metrics.cc:95
+#, c-format
+msgid "checksum mismatch for font file: `%s'"
+msgstr "fejlagtig checksum for skrifttypefil: \"%s\""
+
+#: all-font-metrics.cc:97
+#, c-format
+msgid "does not match: `%s'"
+msgstr "matcher ikke: \"%s\""
+
+#: all-font-metrics.cc:102
+msgid " Rebuild all .afm files, and remove all .pk and .tfm files. Rerun with -V to show font paths."
+msgstr " Genopbyg alle .afm-filer, og fjern alle .pk- og .tfm-filer. Kør igen med -V for at vise skrifttypesøgestier."
+
+#: all-font-metrics.cc:167
+#, c-format
+msgid "can't find font: `%s'"
+msgstr "kan ikke finde skrifttype: \"%s\""
+
+#: all-font-metrics.cc:168
+msgid "Loading default font"
+msgstr "Indlæser standardskrifttype"
+
+#: all-font-metrics.cc:183
+#, c-format
+msgid "can't find default font: `%s'"
+msgstr "kan ikke finde standardskrifttype: \"%s\""
+
+#: all-font-metrics.cc:184 includable-lexer.cc:51 scores.cc:137
+#, c-format
+msgid "(search path: `%s')"
+msgstr "(søgesti: \"%s\")"
+
+#: all-font-metrics.cc:185
+msgid "Giving up"
+msgstr "Giver op"
+
+#: auto-change-iterator.cc:43 change-iterator.cc:59
+#: part-combine-music-iterator.cc:97
+msgid "Can't switch translators, I'm there already"
+msgstr "Kan ikke skifte oversætter, jeg er her allerede"
+
+#: beam.cc:86
+msgid "beam has less than two stems"
+msgstr "bjælke har mindre end to nodehalse"
+
+#: beam.cc:637
+msgid "weird beam vertical offset"
+msgstr "underligt lodret afstand for bjælke"
+
+#: beam-engraver.cc:91 beam-engraver.cc:124
+msgid "can't find start of beam"
+msgstr "kan ikke finde start på bjælke"
+
+#: beam-engraver.cc:158
+msgid "already have a beam"
+msgstr "har allerede en bjælke"
+
+#: beam-engraver.cc:222
+msgid "unterminated beam"
+msgstr "uafsluttet bjælke"
+
+#: beam-engraver.cc:260 chord-tremolo-engraver.cc:195
+msgid "stem must have Rhythmic structure"
+msgstr "nodehals skal have en rytmisk struktur"
+
+#: beam-engraver.cc:272
+msgid "stem doesn't fit in beam"
+msgstr "nodehalsen passer ikke i bjælke"
+
+#: beam-engraver.cc:273
+msgid "beam was started here"
+msgstr "bjælken startede her"
+
+#: break-align-item.cc:136
+#, c-format
+msgid "unknown spacing pair `%s', `%s'"
+msgstr "ukendt afstandspar \"%s\", \"%s\""
+
+#: change-iterator.cc:21
+#, c-format
+msgid "can't change `%s' to `%s'"
+msgstr "kan ikke ændre \"%s\" til \"%s\""
+
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_ = change_l ()->change_to_id_str_;
+#.
+#: change-iterator.cc:78
+msgid "I'm one myself"
+msgstr "Jeg er selv én"
+
+#: change-iterator.cc:81
+msgid "none of these in my family"
+msgstr "ingen af disse i min familie"
+
+#: chord.cc:369
+#, c-format
+msgid "invalid subtraction: not part of chord: %s"
+msgstr "ugyldig subtraktion: ikke del af akkord: %s"
+
+# "pitch" hær skal alltså være en ton i et akkord
+#: chord.cc:398
+#, c-format
+msgid "invalid inversion pitch: not part of chord: %s"
+msgstr "ugyldig tone for inversion: ikke del af en akkord: %s"
+
+#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:192
+msgid "unterminated chord tremolo"
+msgstr "ikke-afsluttet akkordtremolo"
+
+#: chord-tremolo-iterator.cc:48
+msgid "no one to print a tremolos"
+msgstr "der er ingen som kan skrive en tremolo"
+
+#: collision.cc:127
+msgid "Too many clashing notecolumns. Ignoring them."
+msgstr "For mange sammenhængende nodekolonner. Ignorerer dem."
+
+#: dimensions.cc:13
+msgid "NaN"
+msgstr "-"
+
+#: dynamic-engraver.cc:197 span-dynamic-performer.cc:86
+msgid "can't find start of (de)crescendo"
+msgstr "kan ikke finde starten på crescendo/diminuendo"
+
+#: dynamic-engraver.cc:222
+msgid "already have a crescendo"
+msgstr "har allerede et crescendo"
+
+#: dynamic-engraver.cc:223
+msgid "already have a decrescendo"
+msgstr "har allerede et diminuendo"
+
+#: dynamic-engraver.cc:317
+msgid "unterminated (de)crescendo"
+msgstr "uafsluttet crescendo/diminuendo"
+
+#: extender-engraver.cc:97
+msgid "unterminated extender"
+msgstr "uafsluttet udvider"
+
+#: extender-engraver.cc:109
+msgid "Nothing to connect extender to on the left. Ignoring extender request."
+msgstr "Der er ingenting at forbinde udvideren mod til venstre. Ignorerer ønsket om udvider"
+
+#: folded-repeat-iterator.cc:78
+msgid "no one to print a repeat brace"
+msgstr "det er ingen som kan skrive et gentagelsestegn"
+
+#: font-interface.cc:237
+msgid "couldn't find any font satisfying "
+msgstr "kunne ikke finde nogen skrifttype som opfylder "
+
+#: gourlay-breaking.cc:157
+msgid "No feasible line breaking found"
+msgstr "Ingen mulig linjebrydning fandtes"
+
+#: grace-iterator.cc:43
+msgid "no Grace context available"
+msgstr "ingen prydomgivelse tilgængelig"
+
+#: grace-position-engraver.cc:96
+msgid "Unattached grace notes. Attaching to last musical column."
+msgstr "Ikke-fæstede prydsnoder. Fæster ved sidste musikkolonne."
+
+#: hairpin.cc:93
+msgid "decrescendo too small"
+msgstr "diminuendo for lille"
+
+#: hairpin.cc:94
+msgid "crescendo too small"
+msgstr "crescendo for lille"
+
+#: hyphen-engraver.cc:90
+msgid "unterminated hyphen"
+msgstr "uafsluttet bindestreg"
+
+#: hyphen-engraver.cc:102
+msgid "Nothing to connect hyphen to on the left. Ignoring hyphen request."
+msgstr "Det er ingenting at forbinde bindestregen mod til venstre. Ignorerer bindestregsforespørgslen."
+
+#: key-engraver.cc:99
+msgid "Conflicting key signatures found."
+msgstr "Konfliktende tonartssignaturer fundet."
+
+#: key-engraver.cc:100
+msgid "This was the other key definition."
+msgstr "Dette var den anden tonartsdefinition."
+
+#: key-performer.cc:77
+msgid "FIXME: key change merge"
+msgstr "FIX: tonartsskiftsfletning"
+
+#: lily-guile.cc:141
+#, c-format
+msgid "(load path: `%s')"
+msgstr "(indlæsningssøgesti: \"%s\""
+
+#: line-of-score.cc:96
+#, c-format
+msgid "Element count %d."
+msgstr "Elementantal %d."
+
+#: line-of-score.cc:253 paper-score.cc:77
+#, c-format
+msgid "Element count %d "
+msgstr "Elementantal %d "
+
+#: line-of-score.cc:267
+msgid "Calculating column positions..."
+msgstr "Beregner kolonnepositioner..."
+
+#: lyric-phrasing-engraver.cc:284
+msgid "lyrics found without any matching notehead"
+msgstr "tekst fundet uden noget matchende nodehoved"
+
+#: lyric-phrasing-engraver.cc:289
+msgid "Huh? Melismatic note found to have associated lyrics."
+msgstr "Øh? Melismatisk node har tilhørende tekst."
+
+#: main.cc:104
+msgid "EXPR"
+msgstr "UDTR"
+
+#: main.cc:104
+msgid "evalute EXPR as Scheme after .scm init is read"
+msgstr "evaluér UDTR som Scheme efter .scm-init er læst"
+
+#. another bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format
+#: main.cc:107
+msgid "EXT"
+msgstr "FMT"
+
+#: main.cc:107
+msgid "use output format EXT (scm, ps, tex or as)"
+msgstr "brug uddataformat FMT (scm, ps, tex eller as)"
+
+#: main.cc:109
+msgid "FIELD"
+msgstr "FELT"
+
+#: main.cc:109
+msgid "write header field to BASENAME.FIELD"
+msgstr "skriv rubrikfælt til BASNAVN.FELT"
+
+#: main.cc:110
+msgid "add DIR to search path"
+msgstr "tilføj KATALOG til søgestien"
+
+#: main.cc:111
+msgid "use FILE as init file"
+msgstr "brug FIL som init-fil"
+
+#: main.cc:115
+msgid "prepend DIR to dependencies"
+msgstr "tilføj KATALOG efter afhængigheder"
+
+#: main.cc:116
+msgid "inhibit file output naming and exporting"
+msgstr "hindr navngivning af filuddata og eksportering"
+
+#.
+#. No version number or newline here. It confuses help2man
+#.
+#: main.cc:136
+#, c-format
+msgid "Usage: %s [OPTION]... FILE..."
+msgstr "Brug: %s [FLAG]... FIL..."
+
+#: main.cc:138
+msgid "Typeset music and or play MIDI from FILE"
+msgstr "Typesæt musik og/eller afspil MIDI fra FIL"
+
+#: main.cc:142
+msgid ""
+"LilyPond is a music typesetter. It produces beautiful sheet music\n"
+"using a high level description file as input. LilyPond is part of \n"
+"the GNU Project.\n"
+msgstr ""
+"LilyPond er en musiktypesætter. Den producerer smukke noder fra en\n"
+"højniveaubeskrivning af musikken i en fil. LilyPond er en del af\n"
+"GNU-projektet.\n"
+
+#: main.cc:152
+msgid "This binary was compiled with the following options:"
+msgstr "Dette program blev oversat med følgende flag:"
+
+#: main.cc:56 main.cc:179
+#, c-format
+msgid ""
+"This is free software. It is covered by the GNU General Public License,\n"
+"and you are welcome to change it and/or distribute copies of it under\n"
+"certain conditions. Invoke as `%s --warranty' for more information.\n"
+msgstr ""
+"Dette er frit programmel. Det dækkes af \"GNU General Public License\",\n"
+"og du må ændre og/eller distribuere kopier af det under visse\n"
+"betingelser. Kør \"%s --warranty\" for mere information.\n"
+
+#: main.cc:63 main.cc:186 main.cc:198
+#, c-format
+msgid "Copyright (c) %s by"
+msgstr "Copyright © %s af"
+
+#: main.cc:196
+msgid "GNU LilyPond -- The music typesetter"
+msgstr "GNU Lilypond -- Musiktypesætteren"
+
+#: main.cc:72 main.cc:204
+msgid ""
+" This program is free software; you can redistribute it and/or\n"
+"modify it under the terms of the GNU General Public License version 2\n"
+"as published by the Free Software Foundation.\n"
+"\n"
+" This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n"
+"General Public License for more details.\n"
+"\n"
+" You should have received a copy (refer to the file COPYING) of the\n"
+"GNU General Public License along with this program; if not, write to\n"
+"the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n"
+"USA.\n"
+msgstr ""
+"Dette program er frit programmel. Du kan distribuere det og/eller\n"
+"ændre det under betingelserne i GNU General Public License version 2,\n"
+"udgivet af Free Software Foundation.\n"
+"\n"
+"Dette program distribueres i håb om at det vil være nyttigt, men\n"
+"UDEN NOGEN SOM HELST GARANTI, endog uden underforstået garanti om\n"
+"SALGBARHED eller EGNETHED FOR NOGET SPECIELT FORMÅL. Se GNU General\n"
+"Public License for yderligere information.\n"
+"\n"
+"Du bør have fået en kopi af GNU General Public License sammen med\n"
+"dette program. Hvis ikke, skriv til Free Software Foundation, Inc., 59\n"
+"Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+
+#: midi-item.cc:139
+#, c-format
+msgid "no such instrument: `%s'"
+msgstr "instrumentet findes ikke: \"%s\""
+
+#: midi-item.cc:228
+msgid "silly duration"
+msgstr "tåbelig længde"
+
+#: midi-item.cc:241
+msgid "silly pitch"
+msgstr "tåbelig tone"
+
+#: musical-request.cc:28
+#, c-format
+msgid "Transposition by %s makes accidental larger than two"
+msgstr "Transponering med %s gør accicental større end to"
+
+#: music.cc:232
+msgid "ly_get_mus_property (): Not a Music"
+msgstr "ly_get_mus_property (): Ikke en \"Music\""
+
+#: music.cc:246
+msgid "ly_set_mus_property (): Not a symbol"
+msgstr "ly_set_mus_property (): ikke et symbol"
+
+#: music.cc:258
+msgid "ly_set_mus_property (): not of type Music"
+msgstr "ly_set_mus_property (): ikke af typen \"Music\""
+
+#: music.cc:272
+msgid "ly_make_music (): Not a string"
+msgstr "ly_make_music (): Ikke en streng"
+
+#: music.cc:292
+msgid "ly_music_name (): Not a music expression"
+msgstr "ly_music_name (): Ikke et musikudtryk"
+
+#: music-output-def.cc:115
+#, c-format
+msgid "can't find `%s' context"
+msgstr "kan ikke finde omgivelsen \"%s\""
+
+#: my-lily-lexer.cc:139
+#, c-format
+msgid "Identifier name is a keyword: `%s'"
+msgstr "Identificerernavn er et nøgleord: \"%s\""
+
+#: my-lily-lexer.cc:159
+#, c-format
+msgid "error at EOF: %s"
+msgstr "fejl ved filslutning: %s"
+
+#: midi-score-parser.cc:94 my-lily-parser.cc:47
+msgid "Parsing..."
+msgstr "Tolker..."
+
+#: my-lily-parser.cc:57
+msgid "Braces don't match"
+msgstr "Krølleparenteser passer ikke"
+
+#: output-property-music-iterator.cc:20 request-chord-iterator.cc:76
+#, c-format
+msgid "Junking request: `%s'"
+msgstr "Stryger forespørgslen: \"%s\""
+
+#: paper-def.cc:109
+#, c-format
+msgid "paper output to `%s'..."
+msgstr "papirsuddata til \"%s\"..."
+
+#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:99
+msgid ", at "
+msgstr ", ved "
+
+#: paper-outputter.cc:232
+#, c-format
+msgid "writing header field `%s' to `%s'..."
+msgstr "skriver rubrikfelt \"%s\" til \"%s\"..."
+
+#: paper-score.cc:80
+msgid "Preprocessing elements..."
+msgstr "Forbehandler element..."
+
+#: paper-score.cc:114
+msgid "Outputting Score, defined at: "
+msgstr "Udskriver partitur, defineret ved: "
+
+#: paper-stream.cc:41
+#, c-format
+msgid "can't create directory: `%s'"
+msgstr "kan ikke oprette katalog: \"%s\""
+
+#: paper-stream.cc:55
+msgid "Error syncing file (disk full?)"
+msgstr "Fejl ved synkning af fil (disken fuld?)"
+
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_ = change_l ()->change_to_id_str_;
+#.
+#: part-combine-music-iterator.cc:116
+#, c-format
+msgid "I'm one myself: `%s'"
+msgstr "Jag er selv én: \"%s\""
+
+#: part-combine-music-iterator.cc:119
+#, c-format
+msgid "none of these in my family: `%s'"
+msgstr "ingen af disse i min familie: \"%s\""
+
+#: percent-repeat-engraver.cc:117
+msgid "Don't know how to handle a percent repeat of this length."
+msgstr "Véd ikke hvordan en procentgentagelse af denne længde skal håndteres."
+
+#: percent-repeat-iterator.cc:53
+msgid "no one to print a percent"
+msgstr "der er ingen som kan skrive en procent"
+
+#: performance.cc:51
+msgid "Track ... "
+msgstr "Spor... "
+
+#: performance.cc:83
+msgid "Creator: "
+msgstr "Skaber: "
+
+#: performance.cc:113
+#, c-format
+msgid "from musical definition: %s"
+msgstr "fra musikdefinition: %s"
+
+#: performance.cc:168
+#, c-format
+msgid "MIDI output to `%s'..."
+msgstr "MIDI-uddata til \"%s\"..."
+
+#: phrasing-slur-engraver.cc:119
+msgid "unterminated phrasing slur"
+msgstr "uafsluttet fraseringsbue"
+
+#: phrasing-slur-engraver.cc:134
+msgid "can't find start of phrasing slur"
+msgstr "kan ikke finde start på fraseringsbue"
+
+#: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
+#: piano-pedal-performer.cc:87
+#, c-format
+msgid "can't find start of piano pedal: `%s'"
+msgstr "kan ikke finde start på pianopedal: \"%s\""
+
+#: pitch.cc:25
+msgid "Pitch arguments out of range"
+msgstr "Toneargument udenfor intervallet"
+
+#: property-engraver.cc:121
+#, c-format
+msgid ""
+"`%s' is deprecated. Use\n"
+" \\property %s.%s \\override #'%s = #%s"
+msgstr ""
+"\"%s\" er forældet. Brug\n"
+" \\property %s.%s \\override #'%s = #%s"
+
+#: property-engraver.cc:145
+#, c-format
+msgid "Wrong type for property: %s, type: %s, value found: %s, type: %s"
+msgstr "Forkert type for egenskab: %s, type: %s, værdi fundet: %s, type: %s"
+
+#: rest-collision.cc:194
+msgid "too many colliding rests"
+msgstr "for mange kolliderende pauser"
+
+#: rest-collision.cc:198
+msgid "too many notes for rest collision"
+msgstr "for mange noder for pausesammenstød"
+
+#: scm-option.cc:59
+msgid "Scheme options:"
+msgstr "Scheme-flag:"
+
+#: score.cc:78
+msgid "Interpreting music..."
+msgstr "Tolker musik..."
+
+#: score.cc:92
+msgid "Need music in a score"
+msgstr "Behøver musik i partitur"
+
+#. should we? hampers debugging.
+#: score.cc:105
+msgid "Errors found/*, not processing score*/"
+msgstr "Fejl fundne/*, behandler ikke partitur*/"
+
+#: score.cc:112
+#, c-format
+msgid "elapsed time: %.2f seconds"
+msgstr "tidsforbrug: %.2f sekunder"
+
+#: score-engraver.cc:188
+#, c-format
+msgid "unbound spanner `%s'"
+msgstr "ubunden bro \"%s\""
+
+#: scores.cc:106
+msgid "Score contains errors; will not process it"
+msgstr "Partitur indholder fejl; vil ikke behandle det"
+
+#: scores.cc:152
+#, c-format
+msgid "Now processing: `%s'"
+msgstr "Behandler nu: \"%s\""
+
+#: script-engraver.cc:66
+#, c-format
+msgid "Don't know how to interpret articulation `%s'"
+msgstr "Kan ikke tolke artikulering \"%s\""
+
+#. this shouldn't happen, but let's continue anyway.
+#: separation-item.cc:47
+msgid "Separation_item: I've been drinking too much"
+msgstr "Separation_item: Jeg har drukket for meget"
+
+#: slur.cc:48
+msgid "Putting slur over rest. Ignoring."
+msgstr "Sætter bue over pause. Ignorerer."
+
+#: slur.cc:383
+msgid "Slur over rest?"
+msgstr "Bue over pause?"
+
+#: slur-engraver.cc:127
+msgid "unterminated slur"
+msgstr "uafsluttet bue"
+
+#. How to shut up this warning, when Voice_devnull_engraver has
+#. eaten start request?
+#: slur-engraver.cc:144
+msgid "can't find start of slur"
+msgstr "kan ikke finde start på bue"
+
+#: stem.cc:116
+msgid "Weird stem size; check for narrow beams"
+msgstr "Mærkelig nodehalsstørrelse; tjek for smalle bjælker"
+
+#: stem-engraver.cc:115
+#, c-format
+msgid "Adding note head to incompatible stem (type = %d)"
+msgstr "Tilføjer nodehoved til inkompatibel bue (type = %d)"
+
+#: text-spanner.cc:121
+msgid "Text_spanner too small"
+msgstr "Tekst_bro for lille"
+
+#: text-spanner-engraver.cc:94
+msgid "can't find start of text spanner"
+msgstr "kan ikke finde start på tekstbro"
+
+#: text-spanner-engraver.cc:114
+msgid "already have a text spanner"
+msgstr "har allerede en tekstbro"
+
+#: text-spanner-engraver.cc:169
+msgid "unterminated text spanner"
+msgstr "uafsluttet tekstbro"
+
+#: tfm.cc:77
+#, c-format
+msgid "can't find ascii character: %d"
+msgstr "kan ikke finde ASCII-tegn: %d"
+
+#: tfm-reader.cc:106
+#, c-format
+msgid "TFM header of `%s' has only %u word (s)"
+msgstr "TFM-rubrik i \"%s\" har kun %u ord"
+
+#: tfm-reader.cc:140
+#, c-format
+msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
+msgstr "%s: TFM-fil har %u parametre, hvilket er mere end de %u jeg kan håndtere"
+
+#. How to shut up this warning, when no notes appeared because
+#. they were suicided by Thread_devnull_engraver?
+#: tie-engraver.cc:220 tie-performer.cc:173
+msgid "No ties were created!"
+msgstr "Ingen buer blev lavet!"
+
+#: tie-engraver.cc:240
+msgid "lonely tie"
+msgstr "ensom bue"
+
+#: time-scaled-music-iterator.cc:25
+msgid "no one to print a tuplet start bracket"
+msgstr "der findes ingen som kan skrive en startparentes for tuppel"
+
+#: timing-translator.cc:38
+#, c-format
+msgid "barcheck failed at: %s"
+msgstr "taktkontrol mislykkedes ved: %s"
+
+#: translator-ctors.cc:40
+#, c-format
+msgid "unknown translator: `%s'"
+msgstr "ukendt oversætter: \"%s\""
+
+#: translator-def.cc:99
+msgid "Program has no such type"
+msgstr "Programmet har ingen sådan type"
+
+#: translator-def.cc:105
+#, c-format
+msgid "Already contains: `%s'"
+msgstr "Indholder allerede: \"%s\""
+
+#: translator-def.cc:106
+#, c-format
+msgid "Not adding translator: `%s'"
+msgstr "Tilføjer ikke oversætter: \"%s\""
+
+#: translator-def.cc:224
+#, c-format
+msgid "can't find: `%s'"
+msgstr "kan ikke finde: \"%s\""
+
+#: translator-group.cc:146
+#, c-format
+msgid "can't find or create `%s' called `%s'"
+msgstr "kan ikke finde eller oprette \"%s\" kaldet \"%s\""
+
+#: translator-group.cc:231
+#, c-format
+msgid "can't find or create: `%s'"
+msgstr "kan ikke finde eller oprette: \"%s\""
+
+#: translator-group.cc:414
+#, c-format
+msgid "Can't find property type-check for `%s'. Perhaps you made a typing error? Doing assignment anyway."
+msgstr "Kan ikke finde egenskabstypekontrol for \"%s\". Måske har du lavet en tastefejl? Laver tildeling alligevel."
+
+#: translator-group.cc:428
+#, c-format
+msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
+msgstr "Typekontrol for \"%s\" mislykkedes; værdi \"%s\" skal have typen \"%s\""
+
+#. programming_error?
+#: translator-group.cc:447
+msgid "ly-get-trans-property: expecting a Translator_group argument"
+msgstr "ly-get-trans-property: forventede et Translator_group-argument"
+
+#: volta-engraver.cc:87
+msgid "No volta spanner to end"
+msgstr "Ingen reprisebro til slut"
+
+#: volta-engraver.cc:104
+msgid "Already have a volta spanner. Stopping that one prematurely."
+msgstr "Har allerede en reprisebro. Stopper denne for tidligt."
+
+#: volta-engraver.cc:108
+msgid "Also have a stopped spanner. Giving up."
+msgstr "Har også en stoppet bro. Giver op."
+
+#: parser.yy:121
+#, c-format
+msgid "Expecting %d arguments"
+msgstr "Forventer %d argumenter"
+
+#: parser.yy:423
+msgid "Identifier should have alphabetic characters only"
+msgstr "Identificerer må kun indeholde alfabetiske tegn"
+
+#: parser.yy:697
+msgid "More alternatives than repeats. Junking excess alternatives."
+msgstr "Flere alternativer end repriser. Stryger tiloversblevne alternativer."
+
+#: parser.yy:761
+msgid "Second argument must be a symbol"
+msgstr "Andet argument skal være et symbol"
+
+#: parser.yy:766
+msgid "First argument must be a procedure taking 1 argument"
+msgstr "Første argument skal være en procedure som tager 1 argument"
+
+#: parser.yy:1263
+msgid "Expecting string as script definition"
+msgstr "Forventer streng som skriptdefinition"
+
+#: parser.yy:1273
+msgid "Can't specify direction for this request"
+msgstr "Kan ikke angive retning for denne forespørgsel"
+
+#: parser.yy:1398
+msgid "Expecting musical-pitch value"
+msgstr "Forventer nodeværdi"
+
+#: parser.yy:1409
+msgid "Must have duration object"
+msgstr "Skal have tidslængdeobjekt"
+
+#: parser.yy:1418 parser.yy:1426
+msgid "Have to be in Lyric mode for lyrics"
+msgstr "Skal være i teksttilstand (Lyric mode) for tekst"
+
+#: parser.yy:1579 parser.yy:1636
+#, c-format
+msgid "not a duration: %d"
+msgstr "ikke en tidslængde: %d"
+
+#: parser.yy:1645
+msgid "Have to be in Note mode for notes"
+msgstr "Skal være i nodetilstand (Note mode) for noder"
+
+#: parser.yy:1731
+msgid "Have to be in Chord mode for chords"
+msgstr "Skal være i akkordtilstand (Chord mode) for akkord"
+
+#: parser.yy:1910
+msgid "need integer number arg"
+msgstr "behøver heltalsargument"
+
+#: lexer.ll:174
+msgid "EOF found inside a comment"
+msgstr "filslutning fundet inden i en kommentar"
+
+#: lexer.ll:188
+msgid "\\maininput disallowed outside init files"
+msgstr "\\maininput forbudt udenfor init-filer"
+
+#: lexer.ll:212
+#, c-format
+msgid "wrong or undefined identifier: `%s'"
+msgstr "fejlagtig eller udefineret identificerer: \"%s\""
+
+#. backup rule
+#: lexer.ll:221
+msgid "Missing end quote"
+msgstr "Mangler slutcitationstegn"
+
+#. backup rule
+#: lexer.ll:243 lexer.ll:247
+msgid "white expected"
+msgstr "forventede mellemrum"
+
+#: lexer.ll:256
+msgid "Can't evaluate Scheme in safe mode"
+msgstr "Kan ikke evaluere Scheme i sikker tilstand"
+
+#: lexer.ll:349
+msgid "Brace found at end of lyric. Did you forget a space?"
+msgstr "Krølleparentes fundet i slutning af tekst. Glemte du et mellemrum?"
+
+#: lexer.ll:457
+#, c-format
+msgid "invalid character: `%c'"
+msgstr "ugyldigt tegn: \"%c\""
+
+#: lexer.ll:538
+#, c-format
+msgid "unknown escaped string: `\\%s'"
+msgstr "ukendt \"escaped\" streng: \"\\%s\""
+
+#: lexer.ll:617
+#, c-format
+msgid "Oldest supported input version: %s"
+msgstr "Ældste inddataversion som understøttes: %s"
+
+#: lexer.ll:629
+#, c-format
+msgid "incorrect lilypond version: %s (%s, %s)"
+msgstr "fejlagtig lilypond-version: %s (%s, %s)"
+
+#: lexer.ll:630
+msgid "Consider converting the input with the convert-ly script"
+msgstr "Overvej at konvertere inddata med skriptet \"convert-ly\""
+
+#: lilypond-item.cc:161
+#, c-format
+msgid "#32 in quarter: %d"
+msgstr "#32 i fjerdedel: %d"
+
+#: lilypond-score.cc:108
+#, c-format
+msgid "LY output to `%s'..."
+msgstr "LY-uddata til \"%s\"..."
+
+#: lilypond-score.cc:119
+#, c-format
+msgid "track %d:"
+msgstr "spor %d:"
+
+#: lilypond-score.cc:155
+msgid "Processing..."
+msgstr "Behandler..."
+
+#: lilypond-score.cc:164
+msgid "Creating voices..."
+msgstr "Laver stemmer..."
+
+#: lilypond-score.cc:168
+msgid "track "
+msgstr "spor "
+
+#: lilypond-score.cc:177
+msgid "NOT Filtering tempo..."
+msgstr "Filtrerer IKKE tempo..."
+
+#: lilypond-score.cc:186
+msgid "NOT Quantifying columns..."
+msgstr "Kvantificerer IKKE kolonner..."
+
+#: lilypond-score.cc:190
+msgid "Quantifying columns..."
+msgstr "Kvantificerer kolonner..."
+
+#: lilypond-score.cc:223
+msgid "Settling columns..."
+msgstr "Bestemmer kolonner..."
+
+#: lilypond-staff.cc:209
+msgid "% MIDI copyright:"
+msgstr "% MIDI-copyright:"
+
+#: lilypond-staff.cc:210
+msgid "% MIDI instrument:"
+msgstr "% MIDI-instrument:"
+
+#: lilypond-stream.cc:37
+#, c-format
+msgid "lily indent level: %d"
+msgstr "indenteringsniveau for lily: %d"
+
+# Kanske man ikke skal oversætta, men når får de tage bort _() i stællet for
+# at skrive en fånig kommentar
+#. Maybe better not to translate these?
+#: lilypond-stream.cc:83
+msgid "% Creator: "
+msgstr "% Kreatør: "
+
+#: lilypond-stream.cc:88
+msgid "% Automatically generated"
+msgstr "% Automatgenereret"
+
+#: lilypond-stream.cc:97
+#, c-format
+msgid "% from input file: "
+msgstr "% fra inddatafil: "
+
+#: main.cc:94
+msgid "write exact durations, e.g.: a4*385/384"
+msgstr "skriv eksakte tidslængder, fx: a4*385/384"
+
+#: main.cc:95
+msgid "enable debugging output"
+msgstr "aktivér fejlsøgningsuddata"
+
+#: main.cc:97
+msgid "ACC[:MINOR]"
+msgstr "TONE[:MOL]"
+
+#: main.cc:97
+msgid "set key: ACC +sharps/-flads; :1 minor"
+msgstr "sæt tonart: TONE +forhøjelser/-sænkninger; :1 mol"
+
+#: main.cc:98
+msgid "don't output tuplets, double dots or rests, smallest is 32"
+msgstr "udskriv ikke tupler, dobbeltpunktninger eller pauser, mindste er 32"
+
+#: main.cc:99
+msgid "set FILE as default output"
+msgstr "sæt FIL som standarduddata"
+
+#: main.cc:100
+msgid "don't output tuplets"
+msgstr "udskriv ikke tupler"
+
+#: main.cc:101
+msgid "be quiet"
+msgstr "vær stille"
+
+#: main.cc:102
+msgid "don't output rests or skips"
+msgstr "udskriv ikke pauser eller hop"
+
+#: main.cc:103
+msgid "DUR"
+msgstr "LÆNGDE"
+
+#: main.cc:103
+msgid "set smallest duration"
+msgstr "indstil mindste længde"
+
+#: main.cc:104
+msgid "don't timestamp the output"
+msgstr "tidsstempl ikke uddata"
+
+#: main.cc:106
+msgid "be verbose"
+msgstr "vær udførlig"
+
+#: main.cc:108
+msgid "assume no double dotted notes"
+msgstr "antag ingen dobbeltpunktede noder"
+
+#: main.cc:115
+#, c-format
+msgid "Usage: %s [OPTION]... [FILE]"
+msgstr "Brug: %s [FLAG]... [FIL]"
+
+#: main.cc:117
+msgid "Translate MIDI-file to lilypond"
+msgstr "Oversæt MIDI-fil til lilypond"
+
+#: main.cc:131
+#, c-format
+msgid "no_double_dots: %d\n"
+msgstr "no_double_dots: %d\n"
+
+#: main.cc:133
+#, c-format
+msgid "no_rests: %d\n"
+msgstr "no_rests: %d\n"
+
+#: main.cc:135
+#, c-format
+msgid "no_quantify_b_s: %d\n"
+msgstr "no_quantify_b_s: %d\n"
+
+#: main.cc:137
+#, c-format
+msgid "no_smaller_than: %d (1/%d)\n"
+msgstr "no_smaller_than: %d (1/%d)\n"
+
+#: main.cc:140
+#, c-format
+msgid "no_tuplets: %d\n"
+msgstr "no_tuplets: %d\n"
+
+#: midi-parser.cc:64
+msgid "zero length string encountered"
+msgstr "streng med længde nul mødtes"
+
+#: midi-score-parser.cc:44
+msgid "MIDI header expected"
+msgstr "forventede MIDI-rubrik"
+
+#: midi-score-parser.cc:49
+msgid "invalid header length"
+msgstr "ugyldig rubriklængde"
+
+#: midi-score-parser.cc:52
+msgid "invalid MIDI format"
+msgstr "ugyldigt MIDI-format"
+
+#: midi-score-parser.cc:55
+msgid "invalid number of tracks"
+msgstr "ugyldigt antal spor"
+
+#: midi-score-parser.cc:58
+msgid "can't handle non-metrical time"
+msgstr "kan ikke håndtere ikke-metrisk tid"
+
+#: midi-track-parser.cc:68
+#, c-format
+msgid "Junking note-end event: channel = %d, pitch = %d"
+msgstr "Stryger nodeslutshændelse: kanal = %d, tone = %d"
+
+#: midi-track-parser.cc:124
+msgid "invalid running status"
+msgstr "ugyldig kørselstatus"
+
+#: midi-track-parser.cc:328
+msgid "unimplemented MIDI meta-event"
+msgstr "uimplementeret MIDI-metahændelse"
+
+#: midi-track-parser.cc:333
+msgid "invalid MIDI event"
+msgstr "ugyldig MIDI-hændelse"
+
+#: midi-track-parser.cc:348
+msgid "MIDI track expected"
+msgstr "forventede MIDI-spor"
+
+#: midi-track-parser.cc:353
+msgid "invalid track length"
+msgstr "ugyldig sporlængde"
(volta . ((font-family . number) (font-relative-size . -2)))
(tuplet . ((font-family . roman) (font-shape . italic) (font-relative-size . -1)))
- (timesig . ((font-family . number) (font-relative-size . 0)))
- (timesig-symbol . ((font-family . music) (font-relative-size . 0)))
+ (timesig . ((font-family . number)))
+ (timesig-symbol . ((font-family . music)))
(mmrest . ((font-family . number) (font-relative-size . 1)))
- (mmrest-symbol . ((font-family . music) (font-relative-size . 0)))
+ (mmrest-symbol . ((font-family . music)))
(mark . ((font-family . number) (font-relative-size . 1)))
(script . ((font-family . roman) (font-relative-size . -1)))
elif name[-5:] == 'paper':
self.m_papersize = name
else:
- self._set_dimen('m_geo_'+name, value)
+ pass
+ # what is _set_dimen ?? /MB
+ #self._set_dimen('m_geo_'+name, value)
def __setattr__(self, name, value):
if type(value) == type("") and \
dimension_conversion_dict.has_key (value[-2:]):
then
AC_STEPMAKE_WARN("Guile version "$need_guile_version" or newer is needed")
fi
+ changequote(<<, >>)dnl
+ GUILE_MAJOR_VERSION=`expr $guile_version : '\([0-9]*\)'`
+ GUILE_MINOR_VERSION=`expr $guile_version : '[0-9]*\.\([0-9]*\)'`
+ changequote([, ])dnl
GUILE_FLAGS
AC_PATH_PROG(GUILE, guile, error)
AC_SUBST(GUILE)
+ AC_DEFINE_UNQUOTED(GUILE_MAJOR_VERSION, $GUILE_MAJOR_VERSION)
+ AC_DEFINE_UNQUOTED(GUILE_MINOR_VERSION, $GUILE_MINOR_VERSION)
])
AC_DEFUN(AC_STEPMAKE_INIT, [
AC_DEFUN(AC_STEPMAKE_KPATHSEA, [
kpathsea_b=yes
+ #FIXME --with-xxx is meant for specifying a PATH too,
+ # so this should read: --enable-kpathsea,
+ # or --with-kpathsea-include=PATH --with-kpathsea-lib=PATH
AC_ARG_WITH(kpathsea,
[ --with-kpathsea use kpathsea lib. Default: on],
- [kpathsea_b=$enableval])
+ [kpathsea_b=$with_kpathsea])
- if test "$kpathsea_b" = "yes"; then
+ if test "$kpathsea_b" != "no"; then
AC_HAVE_HEADERS(kpathsea/kpathsea.h)
AC_CHECK_LIB(kpathsea, kpse_find_file)
AC_CHECK_FUNCS(kpse_find_file,, AC_ERROR(Cannot find kpathsea functions. You should install kpathsea; see INSTALL.txt. Rerun ./configure --without-kpathsea only if kpathsea is not available for your platform.))
fi
AC_MSG_CHECKING(whether to use kpathsea)
- if test "$kpathsea_b" = yes; then
+ if test "$kpathsea_b" != no; then
AC_MSG_RESULT(yes)
KPATHSEA=1
else
#
# For now let people define these in their environments
#
- : ${MFPLAIN_MP=`kpsewhich mp mfplain.mp`}
+ : ${MFPLAIN_MP=`kpsewhich --format mp mfplain.mp`}
AC_MSG_RESULT($MFPLAIN_MP)
AC_MSG_CHECKING(for inimetapost flags)