Fix 2241: Proper copyright/header/tagline handling with multiple bookparts
If we have several bookparts inside a book, this patch prints the
copyright on the first page of each bookpart (and no header), and
the tagline on the last page of each bookpart.
The original design of the accidental code apparently had two modes
for entries: a (notename . alter) pair for entries belonging to the
key signature, and a ((octave . notename) . (alter barnum . measurepos))
construct for actually occuring accidentals affecting the key signature
locally. The documentation, however, also specifies an
((octave . notename) . alter) form for key signatures. The code in general
has not been quite prepared for this. This changes at least the accessor
functions for either car or cdr of a notename entry to only look at
their part of the signature entry.
John Mandereau [Sun, 12 Aug 2012 09:26:04 +0000 (11:26 +0200)]
Fix Issue 2529 "configure should error for any missing software"
This is not an optimal fix, as by the moment this change is committed,
GUB bypasses configure for enabling documentation build, so
developers/packagers who call "configure --disable-documentation" will
still get warnings about missing requirements for documentation
build. The issues this patch addresses are
* adding missing documentation build requirements,
* enforcing all documentation build requirements in case
documentation build is enabled in configure.
John Mandereau [Fri, 3 Aug 2012 13:03:31 +0000 (15:03 +0200)]
Make targets: improve *clean, remove bin, cvs-clean and maintainerclean
* distclean was usable from any directory in theory, make it
toplevel-only and call clean, doc-clean, test-clean and log-clean
(previous behaviour can now be obtained with make clean && make
local-distclean),
* remove maintainerclean, which was a broken distclean-like, and
cvs-clean that can be substituted by some "git clean" incantation,
* remove bin, which does not work in a clean tree, and that can be
replaced by make bin-clean && make all in an already built tree,
John Mandereau [Thu, 2 Aug 2012 21:25:54 +0000 (23:25 +0200)]
Remove StepMake as a separate package
Rationale:
* there are no publicly-known current usage cases of StepMake outside
LilyPond,
* StepMake installation has been disabled for a decade,
* generic templates (stepmake/stepmake) have been so heavily
customized lately for our heavy documentation that they can no longer
be qualifed as "generic",
* only a few build scripts have remained in stepmake/bin, whereas
most of them now live in scripts/build.
This commit removes everything in stepmake/ except included makefiles;
scripts that are still used are moved to config/ (Autoconf helpers) or
scripts/build (build and install scripts).
Remove config make target to avoid potential conflict with new
config/ directory.
For clarity, a merge of all stepmake templates, from stepmake/stepmake
and make/ into stepmake/ (or similar), will be done in another commit.
John Mandereau [Wed, 1 Aug 2012 10:22:43 +0000 (12:22 +0200)]
Make distributed tarball from Git file list
This removes the requirement of having a GNUmakefile
in each and every directory of the source tree; this commit
also deletes GNUmakefiles made unnecessary this way.
dist-toplevel-txt-files toplevel target is also removed,
because it is unneeded outside of dist target and it
prevents linking of toplevel generated txt docs to
distdir when these docs are already generated.
In addition, on suggestions from Han-Wen, if dist is made with a
source directory tracked by Git, then
* the source directory is required to have no uncommitted changes nor
non-ignored untracked files,
* the time stamp of all files in the tarball is set to the time stamp
of the head of the checked-out branch.
Benkő Pál [Sat, 21 Jul 2012 07:21:06 +0000 (09:21 +0200)]
small changes of the line_count fixing series
- enhance support of non-standard staves by checking staff bounds or
being on staff line by juggling not line_count but staff_span or on_line
- eliminate an unnecessary call and a warning
Benkő Pál [Thu, 19 Jul 2012 21:07:57 +0000 (23:07 +0200)]
time signature positioning for non-standard staves
the only non-standardness the old code catered for is altered line-count.
the aim here is to position time signature similarly with any of the following:
\override StaffSymbol #'line-count = #'4
\override StaffSymbol #'line-positions = #'(-2 0 2 4)
\override StaffSymbol #'line-positions = #'(-4 -2 0 2)
Properly implement fromproperty markup handing in the pdftitle header field
The pdftitle header field is obtained by trying to convert the markup into a pure string.
Fromproperty markups need to be handled specially, since we have to mimick the header field
lookup in the conversion function... Thus we have to pass the header block to the
markup->string function and extract the header property values for fromproperty markups.
To keep the previous public API without the header argument working, the header
block is passed as an optional argument.
To prevent infinite loops, after looking up a header field, we temporarily
set it to an empty string for the following lookups. This is done by creating
a temporary guile module with that variable cleared.
David Kastrup [Sun, 29 Jul 2012 14:05:10 +0000 (16:05 +0200)]
Unify the lexer's idea of words and commands across all modes.
A "word" (a string recognized even when not quoted) and a "command"
(something starting with \ and followed by letters and other folderol,
indicating a Scheme control sequence or similar) get the same syntax
in all modes:
A "word" is a sequence of alphabetic characters possibly containing
single dashes or underlines inside (not at the beginning or end).
David Kastrup [Mon, 30 Jul 2012 16:10:13 +0000 (18:10 +0200)]
Issue 2705: Parse music inside of output definitions in "notes" mode.
This makes \midi { \tempo 4. = 120 } work properly (without parsing
4. as a REAL token).
The next token after music will in rare circumstances be scanned still
in the lexer's "notes" mode. This could be problematic because of the
currently different word syntax of "notes" and "INITIAL" mode
(cf. issue 2702).