whitespace as symbol separator.
* lily/side-position-interface.cc: Add slur-padding.
2005-08-11 Jan Nieuwenhuizen <janneke@gnu.org>
2005-08-11 Jan Nieuwenhuizen <janneke@gnu.org>
- * input/regression/slur-script.ly: Fixed.
+ * lily/lily-guile.cc (parse_symbol_list): Rewrite. Grok multiple
+ whitespace as symbol separator.
+
+ * lily/side-position-interface.cc: Add slur-padding.
+
+ * input/regression/slur-script.ly: Fixed. Backportme? This is
+ quite a large fix, and it never worked in a stable release; so not
+ really a regression.
* lily/phrasing-slur-engraver.cc (class Phrasing_slur_engraver):
Update cut and paste code from Slur_engraver.
* lily/phrasing-slur-engraver.cc (class Phrasing_slur_engraver):
Update cut and paste code from Slur_engraver.
STEPMAKE_TEMPLATES=documentation tex texinfo topdocs
LOCALSTEPMAKE_TEMPLATES=lilypond ly
STEPMAKE_TEMPLATES=documentation tex texinfo topdocs
LOCALSTEPMAKE_TEMPLATES=lilypond ly
-HTML_FILES=$(addprefix $(outdir)/, $(TEXI_FILES:.texi=.html) $(TELY_FILES:.tely=.html))
-
+HTML_FILES=$(TEXI_FILES:%.texi=$(outdir)/%.html) $(TELY_FILES:%.tely=$(outdir)/%.html)
+PDF_FILES=$(outdir)/NEWS.pdf
include $(depth)/make/stepmake.make
ifneq ($(out),www)
include $(depth)/make/stepmake.make
ifneq ($(out),www)
@end ifnottex
@unnumbered New features in 2.7 since 2.6
@end ifnottex
@unnumbered New features in 2.7 since 2.6
+@ifhtml
+This document is also available in @uref{source/Documentation/topdocs/out-www/NEWS.pdf,PDF}.
+@end ifhtml
+
+@item
+Text scripts such as fingering instructions and dynamics avoid
+collissions with Slurs
+
+@lilypond[fragment,relative=1]
+{
+ b_1( b <b d f>_1_3_5)
+ c-2_\markup { \italic {"cresc."}}( f c)
+ c-3( c\f c)
+}
+@end lilypond
+
@item
Tuplets can be made to reach the next non-tuplet note by setting the
@code{tupletFullLength} property,
@item
Tuplets can be made to reach the next non-tuplet note by setting the
@code{tupletFullLength} property,
Side_position_interface::add_support (line_spanner_, info.grob ());
}
Side_position_interface::add_support (line_spanner_, info.grob ());
}
-
-ADD_ACKNOWLEDGER (Dynamic_engraver,script);
-ADD_ACKNOWLEDGER (Dynamic_engraver,note_column);
-ADD_ACKNOWLEDGER (Dynamic_engraver,slur);
+ADD_ACKNOWLEDGER (Dynamic_engraver, script);
+ADD_ACKNOWLEDGER (Dynamic_engraver, note_column);
+ADD_ACKNOWLEDGER (Dynamic_engraver, slur);
ADD_TRANSLATOR (Dynamic_engraver,
/* descr */
ADD_TRANSLATOR (Dynamic_engraver,
/* descr */
#include "misc.hh"
#include "offset.hh"
#include "pitch.hh"
#include "misc.hh"
#include "offset.hh"
#include "pitch.hh"
+#include "string-convert.hh"
#include "source-file.hh"
#include "version.hh"
#include "warn.hh"
#include "source-file.hh"
#include "version.hh"
#include "warn.hh"
if (scm_is_pair (alist))
{
SCM trykey = scm_caar (alist);
if (scm_is_pair (alist))
{
SCM trykey = scm_caar (alist);
- if (scm_is_pair (trykey) && to_boolean (scm_equal_p (key, scm_cdr (trykey))))
+ if (scm_is_pair (trykey)
+ && to_boolean (scm_equal_p (key, scm_cdr (trykey))))
- else
- return ly_assoc_cdr (key, scm_cdr (alist));
+ return ly_assoc_cdr (key, scm_cdr (alist));
-/* LST has the form "sym1 sym2 sym3\nsym4\nsym5"
- i.e. \n and ' ' can be used interchangeably as separators. */
-parse_symbol_list (char const *lst)
+ly_string_array_to_scm (Array<String> a)
- char *s = strdup (lst);
- char *orig = s;
- SCM create_list = SCM_EOL;
-
- char *e = s + strlen (s) - 1;
- while (e >= s && isspace (*e))
- *e-- = 0;
-
- for (char *p = s; *p; p++)
- if (*p == '\n')
- *p = ' ';
-
- if (!s[0])
- s = 0;
+ SCM s = SCM_EOL;
+ for (int i = a.size () - 1; i >= 0; i--)
+ s = scm_cons (ly_symbol2scm (a[i].to_str0 ()), s);
+ return s;
+}
- while (s)
- {
- char *next = strchr (s, ' ');
- if (next)
- *next++ = 0;
-
- create_list = scm_cons (ly_symbol2scm (s), create_list);
- s = next;
- }
-
- free (orig);
- return create_list;
+/* LST is whitespace separated list of symbols. */
+SCM
+parse_symbol_list (char const *lst)
+{
+ String s = lst;
+ s.substitute ('\n', ' ');
+ s.substitute ('\t', ' ');
+ return ly_string_array_to_scm (String_convert::split (s, ' '));
(c) 1999--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
(c) 1999--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
+#include "script-interface.hh"
+
#include "directional-element-interface.hh"
#include "warn.hh"
#include "directional-element-interface.hh"
#include "warn.hh"
-#include "script-interface.hh"
#include "font-interface.hh"
#include "side-position-interface.hh"
#include "output-def.hh"
#include "font-interface.hh"
#include "side-position-interface.hh"
#include "output-def.hh"
"victim object relative to the support (left or right, up or down?)\n\n "
"The routine also takes the size the staff into account if "
"@code{staff-padding} is set. If undefined, the staff symbol is ignored.",
"victim object relative to the support (left or right, up or down?)\n\n "
"The routine also takes the size the staff into account if "
"@code{staff-padding} is set. If undefined, the staff symbol is ignored.",
- "staff-padding side-support-elements direction-source "
- "direction side-relative-direction minimum-space padding");
+ "direction "
+ "direction-source "
+ "minimum-space "
+ "padding "
+ "side-relative-direction "
+ "side-support-elements "
+ "slur-padding "
+ "staff-padding "
+ );
ADD_INTERFACE (Text_interface, "text-interface",
"A scheme markup text, see @usermanref{Text markup}.",
ADD_INTERFACE (Text_interface, "text-interface",
"A scheme markup text, see @usermanref{Text markup}.",
- "text baseline-skip word-space");
+ "baseline-skip direction text word-space");
$(foreach i, $(TO_TOP_FILES), \
cp $(i) $(builddir) && ) true
$(foreach i, $(TO_TOP_FILES), \
cp $(i) $(builddir) && ) true
-local-WWW: $(HTML_FILES) copy-to-top
+local-WWW: $(HTML_FILES) $(PDF_FILES) copy-to-top