--- /dev/null
+\version "2.15.42"
+
+\header {
+ texidoc="
+A second book-level header block and headers nested in bookpart and score should not clear values from the first header block. This score should show composer, piece, subtitle and title."
+}
+
+\book {
+ \header {
+ title = "Title incorrect (to be superseded at book level)"
+ subtitle = "Subtitle incorrect (to be superseded in bookpart)"
+ composer = "Composer correct (set in book)"
+ piece = "Piece incorrect (to be superseded in score)"
+ }
+ % This should replace title without affecting other fields
+ \header {
+ title = "Title correct (superseded at book level)"
+ }
+ \bookpart {
+ % This should replace subtitle without affecting other fields
+ \header {
+ subtitle = "Subtitle correct (superseded in bookpart)"
+ }
+ \markup \vspace #2
+ \markup { \bold Note: title, subtitle, piece, and composer expected. }
+ \markup \vspace #2
+ \score {
+ \new Staff { c'1 }
+ \header {
+ % This should replace piece without affecting other fields
+ piece = "Piece correct (superseded in score)"
+ }
+ }
+ }
+}
--- /dev/null
+\version "2.15.42"
+
+\header {
+ texidoc="
+Changing the header fields in a book or a bookpart shall not have any effect on the global default values.
+"
+}
+
+\markup \vspace #2
+\markup { \bold Note: expect only title. }
+\markup \vspace #2
+
+\header {
+ title = "Title correct (set at top level)"
+}
+\score {
+ \relative c' { c1 }
+}
+
+
+\book {
+ % This should NOT set a global subtitle for the first score above:
+ \header {
+ subtitle = "Subtitle (set at book level)"
+ }
+ \markup \vspace #2
+ \markup { \bold Note: expect title and subtitle. }
+ \markup \vspace #2
+ %% Do we have a title, and is the subtitle set?
+ \score {
+ \new Staff { c'1 }
+ }
+}
--- /dev/null
+\version "2.15.42"
+
+\header {
+ texidoc="
+A second bookpart-level header block shall retain previously set values from a first header block at the same or higher levels unless overriden.
+"
+}
+
+\header { composer = "Composer correct (set at top level)" }
+\book {
+ \header {
+ title = "Title correct (set in book)"
+ subtitle = "Subtitle incorrect (to be superseded in bookpart)"
+ }
+ \bookpart {
+ \header {
+ subtitle = "Subtitle correct (superseded in bookpart)"
+ piece = "Piece incorrect (to be superseded at bookpart level)"
+ }
+ \header {
+ piece = "Piece correct (superseded at bookpart level)"
+ }
+ \markup \vspace #2
+ \markup { \bold Note: expect title, subtitle, piece and composer. }
+ \markup \vspace #2
+ \score {
+ \new Staff { c'4 }
+ }
+ }
+}
--- /dev/null
+\version "2.15.42"
+\header {
+ texidoc="
+A second score-level header block shall not entirely replace a first header block, but only update changed variables.
+"
+}
+
+\markup \vspace #3
+\markup { \bold Note: expect piece and opus. }
+\markup \vspace #3
+
+\score {
+ \new Staff { c'1 }
+ \header {
+ piece = "Piece correct (set in score)"
+ opus = "Opus incorrect (to be superseded at score level)"
+ }
+ \header {
+ % This should NOT overwrite the piece from above!
+ opus = "Opus correct (superseded at score level)"
+ }
+}
--- /dev/null
+\version "2.15.42"
+\header {
+ texidoc="
+A second top-level header block shall not entirely replace a first header block, but only changed variables.
+"
+ piece = "Piece correct (set at top level)"
+ title = "Title incorrect (to be superseded at top level)"
+}
+\header {
+ % This should NOT overwrite the piece from above!
+ title = "Title correct (superseded at top level)"
+}
+\markup \vspace #3
+\markup { \bold Note: expect title and piece. }
+\markup \vspace #3
+
+\score {
+ \new Staff { c'4 }
+}