From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Tue, 7 Nov 2000 21:57:22 +0000 (+0100)
Subject: patch::: 1.3.104.jcn2
X-Git-Tag: release/1.3.105~2
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=6ee4612fef17f4652c62a25d90a31efc208371bd;p=lilypond.git

patch::: 1.3.104.jcn2

1.3.104.jcn2
============

* Separate interface description (test phase).

* Makeinfo --html split fix: http://appel.lilypond.org/fred/software/texinfo-4.0.jcn2.diff

* Use headers for makeinfo html output.
---

diff --git a/CHANGES b/CHANGES
index 89a2775ee0..e183985b1f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,12 @@
+1.3.104.jcn2
+============
+
+* Separate interface description (test phase).
+
+* Makeinfo --html split fix: http://appel.lilypond.org/fred/software/texinfo-4.0.jcn2.diff
+
+* Use headers for makeinfo html output.
+
 1.3.104.jcn1
 ============
 
@@ -2922,3 +2931,9 @@ pl 15.hwn1
 pl 15.jcn4
 	- direct #... to scm parser  (Thanks to Gary Houston)
 
+
+
+# Local variables:
+# mode: change-log
+# left-margin: 0
+# End:
diff --git a/Documentation/user/GNUmakefile b/Documentation/user/GNUmakefile
index 5a8db6f264..544b7f6e57 100644
--- a/Documentation/user/GNUmakefile
+++ b/Documentation/user/GNUmakefile
@@ -49,6 +49,7 @@ localclean:
 	rm -f fonts.aux fonts.log feta*.tfm feta*.*pk 
 
 backdoc-WWW: $(outdir)/lilypond-internals.html
+	$(MAKE) footify
 
 #ugh. lily/OUT/lilypond hardcoded.
 # when cross-compiling, we don't have lilypond
diff --git a/Documentation/user/lilypond.tely b/Documentation/user/lilypond.tely
index d988d77164..71a42333d1 100644
--- a/Documentation/user/lilypond.tely
+++ b/Documentation/user/lilypond.tely
@@ -80,8 +80,6 @@ than the names being similar :-)"
 @node Top, , , (dir)
 @chapter GNU LilyPond --- The music typesetter
 
-@contents
-
 @menu
 * Tutorial::                       A tutorial introduction to lilypond.
 * Invoking LilyPond::              Operation.
@@ -96,6 +94,8 @@ than the names being similar :-)"
 * Index::                          Unified index.
 @end menu
 
+@contents
+
 @macro keyindex {word}
 @cindex \word\
 
diff --git a/VERSION b/VERSION
index b4d58e1246..60051929ea 100644
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PATCH_LEVEL=104
-MY_PATCH_LEVEL=jcn1
+MY_PATCH_LEVEL=jcn2
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
diff --git a/scm/backend-documentation-lib.scm b/scm/backend-documentation-lib.scm
index a7d785a00d..529bac67e4 100644
--- a/scm/backend-documentation-lib.scm
+++ b/scm/backend-documentation-lib.scm
@@ -25,8 +25,9 @@
 	  "not set" )
       "}"))))
 
+;; First level Interface description
 ;; Second level, part of element description
-(define (document-interface interface element-description)
+(define (document-interface level interface element-description)
   (let* ((name (car interface))
 	 (desc (cadr interface))
 	 (props (caddr interface))
@@ -35,10 +36,17 @@
 		    props)))
 
     (string-append
-     (section 2 (string-append "Interface: " (symbol->string name)))
+     (section level (string-append (interface-name (symbol->string name))))
      desc
      (description-list docs))))
 
+;; First level Interface description
+(define (document-separate-interface interface)
+  (let ((name (car interface)))
+    (string-append
+     (node (interface-name name))
+     (document-interface 2 interface '()))))
+
 ;; First level element description
 (define (document-element iname description)
   (display (string-append "\nProcessing " iname " ... ") (current-error-port))
@@ -51,8 +59,8 @@
 	 
 	 (name (cdr (assoc 'name meta)))
 	 (ifaces (cdr (assoc 'interface-descriptions meta)))
-	 (ifacedoc (map (lambda (x) (document-interface x description))
-				(reverse ifaces))))
+	 (ifacedoc (map (lambda (x) (document-interface 3 x description))
+			(reverse ifaces))))
     
     (string-append
      (node (element-name name))
@@ -86,3 +94,23 @@
      (texi-node-menu name (map (lambda (x) (cons (element-name x) ""))
 			       names))
      doc)))
+
+;; testin.. -- how to do this
+(eval-string (ly-gulp-file "interface.scm"))
+(define interface-description-alist
+  `(
+    (general-element . ,general-element-interface)
+    (beam . ,beam-interface)
+    (clef . ,clef-interface)
+    (slur . ,slur-interface)
+    ))
+	      
+(define (document-all-interfaces name)
+  (string-append
+   (texi-node-menu name (map (lambda (x) (cons (interface-name x) ""))
+			     (map cadr interface-description-alist)))
+   (apply string-append
+	  (map document-separate-interface
+	       (map cdr interface-description-alist)))))
+
+
diff --git a/scm/documentation-lib.scm b/scm/documentation-lib.scm
index 5bc4476531..b4782af375 100644
--- a/scm/documentation-lib.scm
+++ b/scm/documentation-lib.scm
@@ -69,10 +69,12 @@
 	      items-alist))
   "\n@end menu\n"
   ;; Menus don't appear in html, so we make a list ourselves
+  "\n@ignore\n"
   "\n@ifhtml\n"
   (description-list (map (lambda (x) (cons (reffy (car x)) (cdr x)))
 			 items-alist))
-  "\n@end ifhtml\n"))
+  "\n@end ifhtml\n"
+  "\n@end ignore\n"))
 
   
 (define (texi-node-menu name items-alist)
@@ -83,13 +85,15 @@
 
 (define (texi-file-head name file-name top items-alist)
   (string-append
-   "\input texinfo @c -*-texinfo-*-\n"
-   "@settitle " name
+   "\\input texinfo @c -*-texinfo-*-"
    "\n@setfilename " file-name ".info"
+   "\n@settitle " name
    (node "Top") top
    "\n@top"
    (section 1 name)
-   (texi-menu items-alist)))
+   (texi-menu items-alist)
+   "\n@contents"
+   ))
 
 (define (context-name name)
   (string-append "Context " name))
@@ -100,6 +104,9 @@
 (define (element-name name)
   (string-append "Element " name))
 
+(define (interface-name name)
+  name)
+
 (define (reffy x)
   (string-append "@ref{" x "}"))
 
diff --git a/scm/generate-documentation.scm b/scm/generate-documentation.scm
index 2971b956ec..0af8fa789a 100644
--- a/scm/generate-documentation.scm
+++ b/scm/generate-documentation.scm
@@ -27,12 +27,13 @@
 ;; Also, copies of interfaces use up lots more space, but that's
 ;; functional because the default property values of the interfaces
 ;; are described...
-(define no-copes #f)
+(define no-copies #f)
 
 (let* ((doc (string-append
-	    (document-paper "LilyPond interpretation contexts")
-	    (document-all-engravers "LilyPond engravers")
-	    (document-all-elements "LilyPond backend")))
+	     (document-paper "LilyPond interpretation contexts")
+	     (document-all-engravers "LilyPond engravers")
+	     (document-all-elements "LilyPond backend")
+	     (document-all-interfaces "LilyPond interfaces")))
        (name "lilypond-internals")
        (outname (string-append name ".texi"))
        (out (open-output-file outname)))
@@ -46,7 +47,8 @@
      "LilyPond internals" name "(lilypond.info)"
      '(("LilyPond interpretation contexts" . "Hierarchy and grouping of Engravers")
        ("LilyPond engravers" . "Engravers create Elements")
-       ("LilyPond backend" . "Detailed description of all Elements")))
+       ("LilyPond backend" . "Detailed description of all Elements")
+       ("LilyPond interfaces" . "Element Interfaces")))
      
     doc
     "\n@bye")
diff --git a/stepmake/stepmake/texinfo-rules.make b/stepmake/stepmake/texinfo-rules.make
index 796be65295..b4a7e41117 100644
--- a/stepmake/stepmake/texinfo-rules.make
+++ b/stepmake/stepmake/texinfo-rules.make
@@ -6,7 +6,7 @@ $(outdir)/%.info: $(outdir)/%.texi
 	-$(MAKEINFO) --force --output=$@ $<
 
 $(outdir)/%.html:	$(outdir)/%.texi
-	-$(MAKEINFO) --force --output=$@ --html --no-headers $< 
+	-$(MAKEINFO) --force --output=$@ --html $<
 # we want footers even if website builds (or is built) partly
 	$(footify) $@