qui ne se rencontrent que sur les rails-roads
de l'Union
XXX. Dans lequel Phileas Fogg fait tout simplement
son devoir
XXXI. Dans lequel l'inspecteur Fix prend très
sérieusement les intérêts de Phileas Fogg
XXXII. Dans lequel Phileas Fogg engage une lutte
directe contre la mauvaise chance
XXXIII. Où Phileas Fogg se montre à la hauteur des
circonstances
XXXIV. Qui procure à Passepartout l'occasion de
faire un jeu de mots atroce, mais peut-être
inédit
XXXV. Dans lequel Passepartout ne se fait pas
répéter deux fois l'ordre que son maître lui a
donné
XXXVI. Dans lequel Phileas Fogg fait de nouveau
prime sur le marché
XXXVII. Dans lequel il est prouvé que Phileas Fogg
n'a rien gagné à faire ce tour du monde, si ce
n'est le bonheur
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
/*
Encode an ISO 8859/1 Etext into LaTeX or HTML
Rules for writing Etexts compatible with this formatting program
are included in the Etext with which this program is supplied.
Designed and implemented by John Walker (kelvin@fourmilab.ch) in
December of 1996.
This program is in the public domain and may be used and modified
in any manner without restrictions.
Warning: this program and the corresponding specifications for
writing Etexts which are both human readable and suitable for
machine typesetting are in a state of rapid evolution and can be
expected to change as additional Etexts are prepared in this form.
Since future versions may or may not be compatible, Etexts which
use this program or programs derived from it should *include* the
source for the translator program to guarantee compatibility.
*/
#define VERSION "2.0"
#define REVDATE "13.12.96"
#include <stdio.h>
#include <ctype.h>
#define EOS '\0'
#define FormatWidth 70 /* Format width of original text */
#define QuoteIndent 4 /* Indentation for block quotes */
#define SectionSep \
"<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>\n"
#define PUNCTUATION "?!:;»" /* Punctuation set after a space in French
text processed with the -f option */
#define abs(x) (((x) < 0) ? (-(x)) : (x))
static int italics = 0, /* Currently in italics mode ? */
quoth = 0, /* Quote parity */
saith = 0, /* In block quotation ? */
inpara = 0, /* In paragraph ? */
inmath = 0, /* Currently in math mode ? */
author = 0, /* Looking for author ? */
firstchap = 0, /* Outputting first chapter break */
chapout = 0, /* Chapter title found */
footcount = 0, /* Footnote number */
infoot = 0, /* In footnote ? */
textstate = 0, /* Text state: 0 = prologue,
1 = text,
2 = appendices. */
nonbreak = 0, /* Use nonbreaking spaces for French punctuation */
html = 0; /* Generate HTML ? */
static FILE *foot = NULL; /* Footnote file */
/* The following table is indexed by ISO codes 161 to 255, and gives
the LaTeX rendering of the ISO character. */
static char *texform[] = {
"!`", "\\makebox{\\rm\\rlap/c}", "\\pounds", "$\\otimes$",
"\\makebox{\\rm\\rlap Y{\\hspace*{0.07em}\\scriptsize =}}", "$|$",
"{\\S}", "\\\"{}", "{\\copyright}", "\\b{a}",
"{$\\ll$}",
"$\\neg$", "$-$",
"{\\ooalign{\\hfil\\raise.07ex\\hbox{\\sc r}\\hfil\\crcr\\mathhexbox20D}}",
"-", "$^{\\circ}$", "$\\pm$", "$^2$", "$^3$", "\\'{}", "$\\mu$",
"{\\P}", "$\\cdot$", "\\c{}", "$^1$", "\\b{o}",
"{$\\gg$}",
"{\\small $1/4$}", "{\\small $1/2$}", "{\\small $3/4$}", "?`",
"\\`{A}", "\\'{A}", "\\^{A}", "\\~{A}", "\\\"{A}", "{\\AA}",
"{\\AE}", "\\c{C}", "\\`{E}", "\\'{E}", "\\^{E}", "\\\"{E}",
"\\`{I}", "\\'{I}", "\\^{I}", "\\\"{I}", "Eth", "\\~{N}",
"\\`{O}", "\\'{O}", "\\^{O}", "\\~{O}", "\\\"{O}", "$\\times$",
"{\\O}", "\\`{U}", "\\'{U}", "\\^{U}", "\\\"{U}", "\\'{Y}",
"Thorn", "{\\ss}", "\\`{a}", "\\'{a}", "\\^{a}", "\\~{a}",
"\\\"{a}", "{\\aa}", "{\\ae}", "\\c{c}", "\\`{e}", "\\'{e}",
"\\^{e}", "\\\"{e}", "\\`{\\i}", "\\'{\\i}", "\\^{\\i}",
"\\\"{\\i}", "eth", "\\~{n}", "\\`{o}", "\\'{o}", "\\^{o}",
"\\~{o}", "\\\"{o}", "$\\div$", "{\\o}", "\\`{u}", "\\'{u}",
"\\^{u}", "\\\"{u}", "\\'{y}", "thorn", "\\\"{y}"
};
/* GIF navigation button images for HTML files. */
static unsigned char d_foot[] = {
71,73,70,56,55,97,15,0,15,0,241,0,0,191,191,191,231,231,231,111,111,111,
0,0,0,44,0,0,0,0,15,0,15,0,0,2,40,132,15,129,139,225,188,156,132,102,
78,118,211,107,251,228,204,41,224,34,148,64,41,64,232,177,34,45,107,26,
175,107,206,36,154,82,114,172,203,80,1,0,59
};
static unsigned char d_next[] = {
71,73,70,56,55,97,32,0,32,0,231,0,0,230,230,250,190,190,190,47,79,79,
255,255,255,112,128,144,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,
0,0,32,0,32,0,64,8,222,0,1,4,32,64,176,160,193,131,8,19,18,24,24,0,192,
128,0,16,35,74,44,80,64,162,69,137,4,5,44,116,104,145,162,199,143,32,
43,98,36,160,177,225,195,139,17,41,162,188,152,113,227,128,147,43,99,
90,36,89,146,227,196,144,31,99,182,52,217,17,167,71,157,36,55,66,92,40,
19,168,70,1,53,7,0,88,202,180,169,211,167,77,135,186,44,74,85,106,82,
153,57,101,238,180,153,210,103,214,153,65,121,222,244,170,146,101,88,
174,40,191,174,220,42,176,170,214,157,3,145,42,156,107,16,169,221,134,
110,243,50,124,201,183,175,223,191,125,151,14,189,170,23,101,70,194,43,
69,82,221,10,51,109,217,183,136,33,146,133,60,117,172,215,181,103,27,
7,32,171,214,106,229,174,156,21,71,100,220,115,178,225,204,88,59,131,
141,124,241,103,81,210,49,69,83,110,216,182,240,234,146,82,233,234,62,
44,96,176,221,223,192,131,11,183,27,16,0,59
};
static unsigned char d_next_gr[] = {
71,73,70,56,55,97,32,0,32,0,231,0,0,40,72,72,216,216,216,184,184,184,
224,224,248,255,255,255,112,128,144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,
0,0,0,0,32,0,32,0,64,8,222,0,7,8,40,64,176,160,193,131,8,19,22,24,40,
96,0,1,1,16,35,74,12,16,64,162,69,137,4,1,44,116,104,145,162,199,143,
32,43,98,44,160,177,225,195,139,17,41,162,188,152,113,35,129,147,43,99,
90,36,89,146,227,196,144,31,99,182,52,217,17,167,71,157,36,55,66,92,40,
19,168,70,0,53,9,12,88,202,180,169,211,167,77,135,186,44,74,85,106,82,
153,57,101,238,180,153,210,103,214,153,65,121,222,244,170,146,101,88,
174,40,191,174,220,42,176,170,214,157,3,145,42,156,107,16,169,221,134,
110,243,50,124,201,183,175,223,191,125,151,14,189,170,23,101,70,194,43,
69,82,221,10,51,109,217,183,136,33,146,133,60,117,172,215,181,103,27,
11,32,171,214,106,229,174,156,21,71,100,220,115,178,225,204,88,59,131,
141,124,241,103,81,210,49,69,83,110,216,182,240,234,146,82,233,234,62,
12,96,176,221,223,192,131,11,183,27,16,0,59
};
static unsigned char d_prev[] = {
71,73,70,56,55,97,32,0,32,0,231,0,0,230,230,250,190,190,190,47,79,79,
255,255,255,112,128,144,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,
0,0,32,0,32,0,64,8,223,0,1,4,32,64,176,160,193,131,8,19,18,24,24,0,192,
128,0,16,35,74,132,88,160,192,196,139,4,5,44,116,40,177,162,199,143,32,
45,78,204,184,241,225,197,137,21,79,74,36,217,112,128,73,149,48,71,10,
208,216,82,101,72,144,24,9,208,228,120,242,230,199,156,59,33,46,140,9,
147,228,204,146,0,146,42,93,202,180,233,82,161,37,137,74,133,186,243,
101,79,143,68,89,242,236,232,243,231,72,157,81,81,118,197,250,181,106,
76,175,69,193,54,20,56,53,102,65,154,3,143,42,156,251,118,230,204,134,
109,243,50,116,201,183,175,223,191,125,147,10,53,171,247,100,70,194,68,
69,166,69,108,51,165,91,181,91,47,142,5,26,86,236,228,178,149,41,142,
37,187,18,178,213,0,155,57,71,212,250,89,243,229,206,140,45,59,94,156,
249,170,98,149,164,167,190,54,12,153,109,225,178,112,7,210,221,93,87,
192,96,187,192,131,11,31,110,55,32,0,59
};
static unsigned char d_prev_gr[] = {
71,73,70,56,55,97,32,0,32,0,231,0,0,40,72,72,216,216,216,184,184,184,
224,224,248,255,255,255,112,128,144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,
0,0,0,0,32,0,32,0,64,8,223,0,7,8,40,64,176,160,193,131,8,19,22,24,40,
96,0,1,1,16,35,74,132,24,32,192,196,139,4,1,44,116,40,177,162,199,143,
32,45,78,204,184,241,225,197,137,21,79,74,36,217,144,128,73,149,48,71,
2,208,216,82,101,72,144,24,11,208,228,120,242,230,199,156,59,33,46,140,
9,147,228,204,146,3,146,42,93,202,180,233,82,161,37,137,74,133,186,243,
101,79,143,68,89,242,236,232,243,231,72,157,81,81,118,197,250,181,106,
76,175,69,193,54,20,56,53,102,65,154,3,143,42,156,251,118,230,204,134,
109,243,50,116,201,183,175,223,191,125,147,10,53,171,247,100,70,194,68,
69,166,69,108,51,165,91,181,91,47,142,5,26,86,236,228,178,149,41,142,
37,187,18,178,85,1,155,57,71,212,250,89,243,229,206,140,45,59,94,156,
249,170,98,149,164,167,190,54,12,153,109,225,178,112,7,210,221,93,23,
192,96,187,192,131,11,31,110,55,32,0,59
};
static unsigned char d_up[] = {
71,73,70,56,55,97,32,0,32,0,231,0,0,230,230,250,190,190,190,47,79,79,
255,255,255,112,128,144,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,
0,0,32,0,32,0,64,8,215,0,1,4,32,64,176,160,193,131,8,19,18,24,24,0,192,
128,0,16,35,74,156,72,81,34,65,1,11,29,78,44,192,177,163,199,143,19,47,
102,124,88,177,164,73,145,13,7,144,52,201,50,34,1,1,24,83,154,252,200,
241,228,203,145,21,105,122,44,137,82,32,195,150,60,111,194,28,9,160,168,
209,163,72,147,30,133,72,80,38,80,160,61,87,150,236,216,50,106,78,157,
84,41,90,133,136,181,107,77,166,55,157,110,236,26,52,102,209,167,85,81,
14,28,170,176,109,65,152,112,27,162,157,203,80,165,221,187,120,243,222,
61,187,22,39,221,138,23,205,74,253,107,49,172,198,150,5,160,26,30,60,
54,107,89,191,20,201,2,94,28,217,235,215,194,130,37,90,166,137,25,178,
102,201,90,41,87,198,250,88,236,103,210,147,51,19,14,109,214,231,106,
151,47,99,130,117,75,59,176,0,166,112,115,235,222,205,59,119,64,0,59
};
/* OUTGIF -- Create GIF navigation buttons for HTML trees. */
static void outgif(basename, button, source, length)
char *basename, *button;
unsigned char *source;
int length;
{
char s[256];
FILE *f;
sprintf(s, "%s/%s.gif", basename, button);
f = fopen(s, "wb"); /* "b" is for binary mode on brain-dead
PCs. Shouldn't do any harm on reasonable
UNIX boxes. */
fwrite(source, 1, length, f);
fclose(f);
}
/* TRIM -- Trim trailing white space and delete any carriage
return characters which might have crept into the
text. This allows us to process input in a variety
of end of line conventions (Unix, MS-DOS, VMS). */
static void trim(lp)
unsigned char *lp;
{
unsigned char *ap = lp;
while (*ap) {
if (*ap == '\r') {
unsigned char *ep = ap;
do {
*ep = ep[1];
ep++;
} while (*ep);
}
ap++;
}
/* Trim any trailing spaces. */
while (isspace(lp[strlen(lp) - 2])) {
lp[strlen(lp) - 2] = '\n';
lp[strlen(lp) - 1] = EOS;
}
}
/* PROTEXT -- Output text with character-level transformations. */
static void protext(lp, tout, basename)
unsigned char *lp;
FILE *tout;
char *basename;
{
if (html) {
/* H T M L */
#define out (infoot ? foot : tout)
int c;
/* Now process the input file character by character and translate
each character, if required, emitting the results to the output
stream. */
while ((c = *lp++) != EOS) {
/* It's a control character. Emit as ^<letter> unless it is
considered as white space (for example, carriage return and
line feed), in which case it's sent directly to the output. */
if (c < ' ') {
if (isspace(c)) {
fputc(c, out);
} else {
fputs("<KBD>^", out);
fputc(c + '@', out);
fputs("</KBD>", out);
}
/* ISO graphic character. */
} else if (c > 160) {
fputc(c, out);
if (nonbreak && c == '«' && *lp != 0 && isspace(*lp)) {
fputs(" ", out);
lp++;
}
/* Normal ASCII 7 bit graphic character. */
} if (c >= ' ' && c <= '~') {
/* Italic switch character */
if (!inmath && c == '_') {
italics = !italics;
if (italics) {
fputs("<i>", out);
} else {
fputs("</i>", out);
}
/* Math mode start and end sequences. */
} else if (c == '\\' && (*lp == '(' || *lp == ')')) {
fputc(c, out);
inmath = *lp == '(';
/* Start footnote */
} else if (!inmath && (c == '[' || (c == ' ' && *lp == '[') ||
(c == ' ' && *lp == ' ' && lp[1] == '['))) {
if (foot == NULL) {
char s[256];
sprintf(s, "%s/%s_foot.html", basename, basename);
foot = fopen(s, "w");
fputs("<HTML>\n<HEAD>\n<TITLE>Footnotes</TITLE>\n</HEAD>\n<BODY>\n<P>\n", foot);
}
fprintf(out, "<A HREF=\"%s_foot.html#F%d\">", basename, ++footcount);
fputs("<IMG ALIGN=MIDDLE SRC=\"foot.gif\" HEIGHT=15 WIDTH=15 ALT=\"¹\"></A>", out);
infoot++;
if (c == ' ') {
if (*lp == ' ') {
lp++;
}
lp++;
}
fprintf(foot, "<A NAME=F%d>", footcount);
/* End footnote */
} else if (!inmath && infoot && c == ']') {
int i;
fputs("</A>", foot);
fputs("\n<PRE>", foot);
for (i = 0; i < 30; i++) {
fputs("<P>\n", foot);
}
fputs("</PRE>\n", foot);
infoot--;
if (infoot < 0) {
infoot = 0;
}
/* ASCII characters requiring verbatim handling */
} else if (c == '<') {
fputs("<", out);
} else if (c == '>') {
fputs(">", out);
} else if (c == '&') {
fputs("&", out);
} else if (c == '"') {
fputs(""", out);
} else if (c == '<') {
fputs("<", out);
/* Try to convert dumb ASCII quotes to open and close quotes. */
} else if (!inmath && c == '"') {
fputs(quoth ? "''" : "``", out);
quoth = !quoth;
/* Normal character */
} else {
if (nonbreak && isspace(c) && *lp != 0 &&
strchr(PUNCTUATION, *lp) != NULL) {
fputs(" ", out);
} else {
fputc(c, out);
}
}
}
/* Note that other characters, specifically those in the
range from 127 through 160, get dropped. */
}
#undef out
} else {
/* L A T E X */
#define out tout
int c;
/* Now process the input file character by character and translate
each character, if required, emitting the results to the output
stream. */
while ((c = *lp++) != EOS) {
/* It's a control character. Emit as ^<letter> unless it is
considered as white space (for example, carriage return and
line feed), in which case it's sent directly to the output. */
if (c < ' ') {
if (isspace(c)) {
putc(c, out);
} else {
fputs("\\verb+^", out);
putc(c + '@', out);
putc('+', out);
}
/* ISO graphic character. */
} else if (c > 160) {
fputs(texform[c - 161], out);
if (nonbreak && c == '«' && *lp != 0 && isspace(*lp)) {
putc('~', out);
lp++;
}
/* Normal ASCII 7 bit graphic character. */
} if (c >= ' ' && c <= '~') {
/* Italic switch character */
if (!inmath && c == '_') {
italics = !italics;
if (italics) {
fputs("{\\it ", out);
} else {
fputs("}", out);
}
/* Math mode start and end sequences. */
} else if (c == '\\' && (*lp == '(' || *lp == ')')) {
fputc(c, out);
inmath = *lp == '(';
/* Start footnote */
} else if (!inmath && (c == '[' || (c == ' ' && *lp == '[') ||
(c == ' ' && *lp == ' ' && lp[1] == '['))) {
fputs("\\footnote{", out);
if (c == ' ') {
if (*lp == ' ') {
lp++;
}
lp++;
}
/* End footnote */
} else if (!inmath && c == ']') {
fputs("}", out);
/* Dash */
} else if (c == '-' && *lp == '-') {
/* Turn "--" into "---" for M-dash. */
fputs("---", out);
lp += 1;
/* Ellipsis */