+2002-11-27 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * scripts/ly2dvi.py (include_path): print warning if failing anything.
+
+ * python/lilylib.py (error): add space
+
+2002-11-25 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * GNUmakefile.in (EXTRA_DIST_FILES): add lilypond.words for
+ distribution.
+
+2002-11-24 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * lily/paper-outputter.cc (Paper_outputter): close port when
+ finishing score.
+
2002-11-26 Jan Nieuwenhuizen <janneke@gnu.org>
* scm/sodipodi.scm: Fixes.
2002-11-20 Han-Wen Nienhuys <hanwen@cs.uu.nl>
- * lily/beam-engraver.cc (stop_translation_timestep): reset now_stop_ev_
+ * lily/beam-engraver.cc (stop_translation_timestep): reset
+ now_stop_ev_
* lily/scm-option.cc: add parse-protect to ly:set-option
* lily/include/ligature-bracket.hh: removed
* lily/ligature-bracket.cc: removed
- * lilypond-mode.el (LilyPond-expand-alist): set LaTeX extension to .tex
+ * lilypond-mode.el (LilyPond-expand-alist): set LaTeX extension to
+ .tex
* lily/beam.cc (set_beaming): don't change beam count on rests.
(brew_molecule): always set flag-width > 0.
2002-11-19 Heikki Junes <hjunes@cc.hut.fi>
- * lilypond-mode.el: LilyPond-imenu-generic-re: only alphabetic chars,
- remove instructions; instead, refer to lilypond-init.el and
+ * lilypond-mode.el: LilyPond-imenu-generic-re: only alphabetic
+ chars, remove instructions; instead, refer to lilypond-init.el and
Documentation/topdocs/INSTALL.texi.
* lilypond.words: add identifiers and reserved words.
README_FILES = ChangeLog COPYING DEDICATION NEWS README.mandrake ROADMAP THANKS
README_TXT_FILES = AUTHORS.txt README.txt INSTALL.txt
IN_FILES := $(wildcard *.in)
-EXTRA_DIST_FILES = $(wildcard *.el) vimrc VERSION $(README_FILES) $(SCRIPTS) $(IN_FILES) emacsclient.patch lexer-gcc-3.0.patch server.el.patch darwin.patch .cvsignore lexer-gcc-3.1.sh
+EXTRA_DIST_FILES = $(wildcard *.el) vimrc VERSION $(README_FILES) $(SCRIPTS) $(IN_FILES) emacsclient.patch lexer-gcc-3.0.patch server.el.patch darwin.patch .cvsignore lexer-gcc-3.1.sh lilypond.words
NON_ESSENTIAL_DIST_FILES = $(README_TXT_FILES)
INSTALLATION_DIR=$(local_lilypond_datadir)
INSTALLATION_FILES=$(configuration) VERSION
LY_DEFINE (ly_get_grob_property,
"ly:get-grob-property", 2, 0, 0, (SCM grob, SCM sym),
- "Get the value of a value in grob @var{g} of property @var{sym}. It
-will return @code{'()} (end-of-list) if @var{g} doesn't have @var{sym} set.
-
-Grob properties are stored as GUILE association lists, with symbols as
-keys. All lookup functions identify undefined properties with
-end-of-list (i.e. @code{'()} in Scheme or @code{SCM_EOL} in C)
-
-Properties are stored in two ways:
-@itemize @bullet
-@item mutable properties.
-Grob properties that change from object to object. The storage of
-these are private to a grob. For example pointers to other grobs are
-always stored in the mutable properties.
-
-@item immutable properties.
-Grob properties that are shared across different grobs of the same
-type. The storage is shared, and hence it is read-only. Typically, this
-is used to store function callbacks, and default settings. They are
-initially read from @file{scm/grob-description.scm}.
-@end itemize
-
-")
+ "Get the value of a value in grob @var{g} of property @var{sym}. It\n"
+"will return @code{'()} (end-of-list) if @var{g} doesn't have @var{sym} set.\n"
+"\n"
+"Grob properties are stored as GUILE association lists, with symbols as\n"
+"keys. All lookup functions identify undefined properties with\n"
+"end-of-list (i.e. @code{'()} in Scheme or @code{SCM_EOL} in C)\n"
+"\n"
+"Properties are stored in two ways:\n"
+"@itemize @bullet\n"
+"@item mutable properties.\n"
+"Grob properties that change from object to object. The storage of\n"
+"these are private to a grob. For example pointers to other grobs are\n"
+"always stored in the mutable properties.\n"
+"\n"
+"@item immutable properties.\n"
+"Grob properties that are shared across different grobs of the same\n"
+"type. The storage is shared, and hence it is read-only. Typically, this\n"
+"is used to store function callbacks, and default settings. They are\n"
+"initially read from @file{scm/grob-description.scm}.\n"
+"@end itemize\n"
+"\n")
{
Grob * sc = unsmob_grob (grob);
SCM_ASSERT_TYPE (sc, grob, SCM_ARG1, __FUNCTION__, "grob");
Paper_outputter::~Paper_outputter ()
{
-
+ scm_close_port (file_);
+ file_ = SCM_EOL;
}
*/
-
;
}
else
{
warning (_("Unknown internal option!"));
}
-
return SCM_UNSPECIFIED;
}
-
-
%
% Running LilyPond on this file generates the documentation
%
-#(ly:set-parse-protect #f)
+#(ly:set-option 'parse-protect #f)
#(load-from-path "generate-documentation.scm")
sys.stderr.write (s)
def warning (s):
- sys.stderr.write (__main__.program_name + ":" + _ ("warning: ") + s + '\n')
+ sys.stderr.write (__main__.program_name + ": " + _ ("warning: ") + s + '\n')
def error (s):
- sys.stderr.write (__main__.program_name + ":" + _ ("error: ") + s + '\n')
+ sys.stderr.write (__main__.program_name + ": " + _ ("error: ") + s + '\n')
def exit (i):
if __main__.verbose_p:
(not (eq? #f (memq symbol (ly:get-grob-property elt 'interfaces))))))
+;;
+(define-public (smart-bar-check n)
+ "Make a bar check that checks for a specific bar number.
+"
+ (let*
+ (
+ (m (make-music-by-name 'ApplyContext))
+ )
+
+ (define (checker tr)
+ (let* ((bn (ly:get-context-property tr 'currentBarNumber)))
+ (if (= bn n)
+ #t
+ (error
+ (format "Bar check failed, we should have reached ~a, instead at ~a\n"
+ n bn ))
+ )))
+
+ (ly:set-mus-property! m 'procedure checker)
+ m
+ ))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; warn for bare chords at start.
if extra['orientation'] and extra['orientation'][0] == 'landscape':
opts = opts + ' -tlandscape'
+
if 'PDF' in targets:
- opts = opts + ' -Ppdf -G0 -u lilypond.map'
+ where = os.popen ('kpsewhich feta20.pfa').read()
+
+ pfa_file = None
+ if where:
+ try:
+ pfa_file = open (where, 'r')
+ except IOError:
+ pass
+
+ if pfa_file:
+ opts = opts + ' -Ppdf -G0 -u lilypond.map'
+ else:
+ ly.warning (_ ('''Trying create PDF, but no PFA fonts found.
+Using bitmap fonts instead. This will look poorly.'''))
cmd = 'dvips %s -o%s %s' % (opts, outbase + '.ps', outbase + '.dvi')
ly.system (cmd)
try:
run_lilypond (files, dep_prefix)
except:
+ ### ARGH. This also catches python programming errors.
+ ### this should only catch lilypond nonzero exit status
+ ### --hwn
+
+
# TODO: friendly message about LilyPond setup/failing?
#
- # TODO: lilypond should fail with different
- # error codes for:
- # - guile setup/startup failure
- # - font setup failure
- # - init.ly setup failure
- # - parse error in .ly
- # - unexpected: assert/core dump
targets = []
if verbose_p:
traceback.print_exc ()
-
+ else:
+ ly.warning (_("Running LilyPond failed. Rerun with --verbose for a trace."))
+
# Our LilyPond pseudo filter always outputs to 'lelie'
# have subsequent stages and use 'lelie' output.
if pseudo_filter_p:
if 'PS' in targets:
try:
run_dvips (outbase, extra_init)
+
except:
if 'PS' in targets:
targets.remove ('PS')
if verbose_p:
traceback.print_exc ()
+ else:
+ ly.warning (_("Failed to make PS file. Rerun with --verbose for a trace."))
if 'PNG' in targets:
ly.make_preview (outbase)
targets.remove ('PS')
if verbose_p:
traceback.print_exc ()
+ else:
+ ly.warning (_("Running LaTeX falied. Rerun with --verbose for a trace."))
+
# add DEP to targets?
if track_dependencies_p: