From eca54df9cd4917ddf1edf485d6beed0e2fad681f Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Wed, 31 Jul 2013 14:06:43 +0100 Subject: [PATCH] fix manual build under texinfo 5 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 | 4 ++++ doc/manual/docstrings.lisp | 4 ++-- doc/manual/sbcl.texinfo | 16 ++++++++-------- doc/manual/texinfo-macros.texinfo | 8 +++++--- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/NEWS b/NEWS index a2657ba..c90875e 100644 --- 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 diff --git a/doc/manual/docstrings.lisp b/doc/manual/docstrings.lisp index 67dc0d1..8bd36b0 100644 --- a/doc/manual/docstrings.lisp +++ b/doc/manual/docstrings.lisp @@ -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))))) diff --git a/doc/manual/sbcl.texinfo b/doc/manual/sbcl.texinfo index 6c316dc..f6f02f8 100644 --- a/doc/manual/sbcl.texinfo +++ b/doc/manual/sbcl.texinfo @@ -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 diff --git a/doc/manual/texinfo-macros.texinfo b/doc/manual/texinfo-macros.texinfo index ef28045..6ec1b15 100644 --- a/doc/manual/texinfo-macros.texinfo +++ b/doc/manual/texinfo-macros.texinfo @@ -15,16 +15,18 @@ @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" -- 1.7.10.4