Program listings

There are some things to watch out for when doing program listings. Let's say that we want to put the following fragment of code into DocBook:

#include <stdio.h>
int main ()
{
        int count = 3;
        while (count—)
                printf ("Count is now %d\n", count);
}
    
    

To do this you need to enclose it in a programlisting tag, and also make it into CDATA (i.e. literal text) so that <stdio.h> isn't interpreted as an SGML tag. The tags you need for this are:

<programlisting><![CDATA[
…
]]></programlisting>
   

The next thing to bear in mind is that Tab characters will not be expanded to spaces, so you will need to do all the indenting with spaces.

Warning

There used to be a bug in openjade that caused incorrect TeX output for "" (i.e. two dashes). This bug is fixed in CVS, and in the openjade-1.3-17 Red Hat Linux package.