]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/document-translation.scm
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / scm / document-translation.scm
index 9aa54b4f8ead82c4ceedb0993df70a113a7d11f4..9b4d7a23f6e252cb611cba3d34511b9c3f982b48 100644 (file)
@@ -2,7 +2,7 @@
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c)  2000--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;;; (c) 2000--2006 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define (engraver-makes-grob? name-symbol grav)
 
 (define (document-engraver-by-name name)
   "NAME is a symbol."
-  (let* ((eg (find-engraver-by-name name )))
+  
+  (let* ((eg (find-engraver-by-name name)))
 
     (cons (string-append "@code{" (ref-ify (symbol->string name)) "}")
          (engraver-doc-string eg #f))))
 
 (define (document-property-operation op)
   (let ((tag (car op))
-       (body (cdr op))
-       (sym (cadr op)))
+       (context-sym (cadr op))
+       (args (cddr op))
+       )
 
     (cond
      ((equal?  tag 'push)
+      (let*
+         ((value (car args))
+          (path (cdr args)))
+
       (string-append
-       "@item "
-       (if (null? (cddr body))
-          "Revert "
-          "Set ")
-       "grob-property @code{"
-       (symbol->string (cadr body))
-       "} in @ref{" (symbol->string sym)
-       "}"
-       (if (not (null? (cddr body)))
-          (string-append " to @code{" (scm->texi (cadr (cdr body))) "}" ))
-       "\n"))
-     ((equal? (object-property sym 'is-grob?) #t) "")
-     ((equal? (car op) 'assign)
-      (string-append
-       "@item Set translator property @code{"
-       (symbol->string (car body))
-       "} to @code{"
-       (scm->texi (cadr body))
-       "}\n")))))
+       "@item Set "
+       (format "grob-property @code{~a} " (string-join (map symbol->string path) " "))
+       (format " in @ref{~a} to @code{~a}.  " context-sym (scm->texi value))
+       "\n")))
+     ((equal? (object-property context-sym 'is-grob?) #t) "")
+     ((equal? tag 'assign)
+      (format "@item Set translator property @code{~a} to @code{~a}"
+             context-sym
+             (scm->texi (car args))))
+     )))
+     
 
 (define (context-doc context-desc)
   (let* ((name-sym (cdr (assoc 'context-name context-desc)))
                   (cdr desc-handle) "(not documented)"))
         
         (accepts (cdr (assoc 'accepts context-desc)))
-        (group (assq-ref context-desc 'group-type))
-
-        (consists (append
-                   (if group (list group)
-                       '())
-                   (cdr (assoc 'consists context-desc))))
+        (consists (cdr (assoc 'consists context-desc)))
         (props (cdr (assoc 'property-ops context-desc)))
         (grobs  (context-grobs context-desc))
-        (grob-refs (map (lambda (x) (ref-ify x)) grobs)) )
+        (grob-refs (map (lambda (x) (ref-ify x)) grobs)))
 
     (make <texi-node>
       #:name name
       (string-append 
        desc
        (if (pair? aliases)
-          (string-append "\n\n This context is also known as: \n\n"
+          (string-append "\n\n This context also accepts commands for the following context(s):\n\n"
                          (human-listify aliases))
           "")
        "\n\nThis context creates the following layout objects: \n\n"