From f114f22fd1ca52a46d76b34480bb0f19282a0e84 Mon Sep 17 00:00:00 2001
From: Patrick McCarty <pnorcks@gmail.com>
Date: Sun, 5 Jul 2009 16:51:31 -0700
Subject: [PATCH] scm/define-stencil-commands.scm: cleanup

- Create a new procedure for stencil "commands",
  the subset of stencil expressions that can be
  defined in output-*.scm.

- Add the missing `setrotation' and `resetrotation'
  expressions.

- Use ly:all-output-backend-commands for the rest
  of the stencil expressions; thus,
  `delay-stencil-evaluation' belongs here, and
  add the missing `rotate-stencil' expression.

- Document the differences between the two procedures.

- Register all of the expressions in "one go".
---
 scm/define-stencil-commands.scm | 31 ++++++++++++++++++++-----------
 1 file changed, 20 insertions(+), 11 deletions(-)

diff --git a/scm/define-stencil-commands.scm b/scm/define-stencil-commands.scm
index b2b2f92d68..6fc7188aa9 100644
--- a/scm/define-stencil-commands.scm
+++ b/scm/define-stencil-commands.scm
@@ -6,7 +6,12 @@
 ;; (c) 2005--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;
 
-(map ly:register-stencil-expression
+;; TODO:
+;;  - stencil-commands should have docstrings.
+
+(define-public (ly:all-stencil-commands)
+  "Return the list of stencil commands that can be
+defined in the output modules (output-*.scm)"
      '(beam
        bezier-sandwich
        blank
@@ -27,8 +32,10 @@
        polygon
        repeat-slash
        resetcolor
+       resetrotation
        round-filled-box
        setcolor
+       setrotation
        text
        url-link
        utf-8-string
@@ -40,19 +47,21 @@
        no-origin
        placebox
        unknown
-
-       delay-stencil-evaluation
        ))
 
 ;; TODO:
-;;  - generate this list by registering the output-backend-commands
-;;    output-backend-commands should have docstrings.
-;;  - remove hard copies in output-ps
+;;  - output-backend-commands should have docstrings.
 
 (define-public (ly:all-output-backend-commands)
-  "Return list of output backend commands."
-  '(combine-stencil
-    color
-    translate-stencil))
+  "Return the list of extra output backend commands that
+are used internally in lily/stencil-interpret.cc."
+  '(color
+    combine-stencil
+    delay-stencil-evaluation
+    rotate-stencil
+    translate-stencil
+    ))
 
-(map ly:register-stencil-expression (ly:all-output-backend-commands))
+(map ly:register-stencil-expression
+  (append (ly:all-stencil-commands)
+	  (ly:all-output-backend-commands)))
-- 
2.39.5