fix manual build under texinfo 5
authorChristophe Rhodes <c.rhodes@gold.ac.uk>
Wed, 31 Jul 2013 13:06:43 +0000 (14:06 +0100)
committerChristophe Rhodes <c.rhodes@gold.ac.uk>
Wed, 31 Jul 2013 13:06:43 +0000 (14:06 +0100)
Texinfo 5 is more assertive about its syntax: macros with
non-alphanumerics have never actually been allowed, but we used to be
able to get away with @& to escape an ampersand under @iftex, and
defining @&key macros under @iffnottex.  Nuh-uh, not any more.  (fixes
lp#1189146)

The details of the indexes, particularly in html format, differ slightly
under texinfo 4 and 5 (related to the trickery around hiding package
prefixes for decent alphabetization).  It might be nice to sort this out
Once And For All, eventually.

NEWS
doc/manual/docstrings.lisp
doc/manual/sbcl.texinfo
doc/manual/texinfo-macros.texinfo

diff --git a/NEWS b/NEWS
index a2657ba..c90875e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,8 @@
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
+changes relative to sbcl-1.1.10
+  * enhancement: support building the manual under texinfo version 5.
+    (lp#1189146)
+
 changes in sbcl-1.1.10 relative to sbcl-1.1.9:
   * enhancement: ASDF has been updated to 3.0.2.
   * optimization: stack frames are packed more efficiently on x86oids, which
index 67dc0d1..8bd36b0 100644 (file)
@@ -743,10 +743,10 @@ followed another tabulation label or a tabulation body."
             (title-name doc)
             ;; &foo would be amusingly bold in the pdf thanks to TeX/Texinfo
             ;; interactions,so we escape the ampersand -- amusingly for TeX.
-            ;; sbcl.texinfo defines macros that expand @&key and friends to &key.
+            ;; sbcl.texinfo defines macros that expand @andkey and friends to &key.
             (mapcar (lambda (name)
                       (if (member name lambda-list-keywords)
-                          (format nil "@~A" name)
+                          (format nil "@and~A{}" (remove #\- (subseq (string name) 1)))
                           name))
                     (lambda-list doc)))))
 
index 6c316dc..f6f02f8 100644 (file)
@@ -48,26 +48,26 @@ provided with absolutely no warranty. See the @file{COPYING} and
 @w{ } @w{ } @url{\text\}
 @end macro
 
-@ifnottex
-
-@c We use @&key, etc to escape & from TeX in lambda lists --
+@c We use @andkey, etc to escape & from TeX in lambda lists --
 @c so we need to define them for info as well.
-@macro &allow-other-keys
+@macro andallowotherkeys
 &allow-other-keys
 @end macro
-@macro &optional
+@macro andoptional
 &optional
 @end macro
-@macro &rest
+@macro andrest
 &rest
 @end macro
-@macro &key
+@macro andkey
 &key
 @end macro
-@macro &body
+@macro andbody
 &body
 @end macro
 
+@ifnottex
+
 @node Top
 @comment  node-name,  next,  previous,  up
 @top sbcl
index ef28045..6ec1b15 100644 (file)
 @c A Texinfo binding for the plain TeX above.  Analogous to Texinfo's
 @c @w, but for Lisp symbols.  AFAICT, the comment characters are
 @c necessary to prevent treating the newline as a space.
-@macro lw{word}
 @iftex
+@macro lw{word}
 @tex
 \\lw{\word\}%
 @end tex
+@end macro
 @end iftex
 @ifnottex
-\word\@c
-@end ifnottex
+@macro lw{word}
+\word\
 @end macro
+@end ifnottex
 
 @c Some index prettification helper macros, for tricking the texindex
 @c collation "engine"