David Kastrup [Wed, 26 Dec 2012 21:09:55 +0000 (22:09 +0100)]
Issue 3049: Parser outputs Lyric events for illegal note names
Well, after this patch this is what we still do (using void-music with
duration and post events seems even worse of a followup reaction,
silently dropping duration and post events not much better).
But additionally, an error is flagged. The complaint is "have to be
in Lyric mode for lyrics" which is accurate since in Lyric mode
arbitrary strings and markups may be accepted. At the point the error
is flagged, we don't necessarily have encountered an unquoted string,
so "bad note name" might be even more misleading. Before this issue
originated, the parser likely bombed out with "Unexpected STRING", and
frankly that's not really better than "have to be in Lyric mode".
Johannes Rohrer [Sun, 23 Dec 2012 10:41:16 +0000 (10:41 +0000)]
Makefile: Add dependencies for internals.itexi
Issue 3020
The texinfo file internals.texi for the Internals Reference is
generated from ly/generate-documentation.ly, which in turn relies on
scm/document*.scm and their recursive dependencies to do the actual
work. In the process, settings encoded in various other files get
documented, e.g. from ly/engraver-init.ly and scm/define-*.scm.
Changes to such files do not necessitate, nor trigger, recompiling the
LilyPond binary; yet the only dependency marked for internals.texi in
Documentation/GNUmakefile was on $(LILYPOND_BINARY).
Fix this, for this is obviously inconvenient when hacking the
Internals Reference.
Rather than tediously maintaining a specific list that grows
incomplete whenever the scope of the IR expands, make internals.texi
depend on $(INIT_LY_SOURCES) and $(SCHEME_SOURCES) altogether, similar
to the rules in make/ly-rules.make.
David Kastrup [Thu, 13 Dec 2012 16:15:27 +0000 (17:15 +0100)]
Issue 1029: \thumb should behave like other fingerings
This changes \thumb from a script to an actual bona-fide fingering.
The size tweak is a bit ugly: it might make some sense to resize the
actual glyph to match fingerings, but maybe it should then also be
relocated from "scripts.thumb".
Remove several obsolete vars and functions unlikely to be still in use.
[...]
* lisp/progmodes/compile.el (compile-internal): Remove obsolete
function.
(compilation-parse-errors-function): Fix typo.
[...]
-;; This is a rough emulation of the old hack, until the transition to new
-;; compile is complete.
-(defun compile-internal (command error-message
- &optional _name-of-mode parser
- error-regexp-alist name-function
- _enter-regexp-alist _leave-regexp-alist
- file-regexp-alist _nomessage-regexp-alist
- _no-async highlight-regexp _local-map)
- (if parser
- (error "Compile now works very differently, see `compilation-error-regexp
- (let ((compilation-error-regexp-alist
- (append file-regexp-alist (or error-regexp-alist
- compilation-error-regexp-alist)))
- (compilation-error (replace-regexp-in-string "^No more \\(.+\\)s\\.?"
- "\\1" error-message)))
- (compilation-start command nil name-function highlight-regexp)))
-(make-obsolete 'compile-internal 'compilation-start "22.1")
-
I have for now omitted all optional arguments to compilation-start
since they are incompatible to previous usage:
compilation-start is an autoloaded compiled Lisp function in
`compile.el'.
Run compilation command COMMAND (low level interface).
If COMMAND starts with a cd command, that becomes the `default-directory'.
The rest of the arguments are optional; for them, nil means use the default.
MODE is the major mode to set in the compilation buffer. Mode
may also be t meaning use `compilation-shell-minor-mode' under `comint-mode'.
If NAME-FUNCTION is non-nil, call it with one argument (the mode name)
to determine the buffer name. Otherwise, the default is to
reuses the current buffer if it has the proper major mode,
else use or create a buffer with name based on the major mode.
If HIGHLIGHT-REGEXP is non-nil, `next-error' will temporarily highlight
the matching section of the visited source line; the default is to use the
global value of `compilation-highlight-regexp'.
David Kastrup [Thu, 13 Dec 2012 10:53:02 +0000 (11:53 +0100)]
Issue 2172: Get line and column numbers right.
This uses 1-based columns on all error output, as is the standard for
GNU programs. It also flags version errors as being for line 1
instead of line 0 since the latter confuses Emacs' compilation mode.
The same column convention is used for point-and-click column numbers
in textedit:// URIs. In contrast, the byte offsets into a line (also
in those URIs) are retained 0-based.
For point-and-click, this yields the correct results when using the
definitions for emacs and gvim in scm/editor.scm, the editors
configured to interpret the column number.
It is to be expected that Lilypond-specific shells (like Frescobaldi
called via Okular for point-and-click) have specialized on the
previous wrong behavior and will now exhibit the kind of one-off
behavior that non-LilyPond specific programs did previously when
encountering the error messages.
I don't see a good migration strategy for those except possibly
looking for the version number of LilyPond and deciding whether to do
one-off calculations depending on that.
Adds mention of \kievanOn and \kievanOff functions
to Ancient notation -> Kievan notation documentation
and corrects examples, given changes to the notation
in Issue 2868.
David Kastrup [Wed, 19 Dec 2012 11:50:06 +0000 (12:50 +0100)]
Replace some faulty code examples in the "Czech" learning/tweaks
Since those are contained in as-yet untranslated German passages,
I copied the respective code examples from the current German
documentation. No attempt at updating the corresponding texts
has been made.
David Kastrup [Tue, 11 Dec 2012 12:48:30 +0000 (13:48 +0100)]
Issue 3013: Amend \overrideProperty example
It has been overlooked by convert-ly due to interspersed comments, and
it could make use of a subproperty override (which is supported by
\overrideProperty by now).
Trevor Daniels [Sun, 2 Dec 2012 11:15:07 +0000 (11:15 +0000)]
Doc: improve example of using positions property (2993)
The current example is positioned properly even
without the override. This changes the example
to one in which the slur and phrasing slur collide
by default.
David Kastrup [Mon, 26 Nov 2012 10:54:38 +0000 (11:54 +0100)]
Remove "selective" contextmods.
This reverts those parts of commit 70365334614c31a82e9a3860c9eb9334cdc2879a that have been responsible
for allowing context-mods to contain modifications restricted to
certain context types. It also removes use of this feature from
context-mod-from-music which is used for harvesting music into context
modifications.
As a result, any overrides in music used inside of context mods are
interpreted without looking at their actually targeted contexts. It
turned out that this "feature" offered more confusion than benefits.
David Kastrup [Sat, 24 Nov 2012 09:27:55 +0000 (10:27 +0100)]
Issue 2974: music-functions-init.ly: Avoid unnecessary use of $ instead of #
$ creates unnecessary copies, unnecessary reinterpretation, and
reassigns the music origin of some expressions to the current parser
location, which in #{ ... #} turns out to be music-functions-init.ly
itself, hardly helpful.
Trevor Daniels [Sun, 25 Nov 2012 22:41:58 +0000 (22:41 +0000)]
Doc: ensure all level 3 and 4 headings have nodes (2967)
Without them the sections cannot be referenced,
and links in the left panel in html and entries in
the index do not link to the correct section.
Correct more level 5 headings.
Usage manual is not included.
Complete the set of files in Documentation/nl/learning
and Documentation/hu/learning with the English versions.
This is needed to avoid errors in make doc following
the change in node names. Fixes Issue 2980.
David Kastrup [Tue, 6 Nov 2012 16:43:45 +0000 (17:43 +0100)]
Issue 2951: Allow music of nominally zero duration to be typeset.
This is important for things like incipits without notes or other
material that produces output without spending time. In particular,
this is interesting for \score in markup which more often than not
only contains few notational elements and where attempts to just get
basic key/clef/timesignature drawings are sometimes failing in
frustrating manners.
David Kastrup [Wed, 7 Nov 2012 10:15:33 +0000 (11:15 +0100)]
Issue 2946: let Lyric_combine_music_iterator only listen to rhythmic events
Listening to articulations makes the rhythmic_music_iterator assume it
can just broadcast things like string numbers and right fingerings and
somebody will pick them up and deal with them which is, unfortunately,
not the case.
Listening only to rhythmic events should cure that problem.