home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 2 / FFMCD02.bin / new / dev / misc / cweb / cweave-p.ch < prev    next >
Text File  |  1993-12-21  |  40KB  |  1,300 lines

  1.                                 -*-Web-*-
  2. This file, CWEAVE-P.CH, is part of CWEB-p.
  3. It is a changefile for CWEAVE.W, Version 3.0.
  4.  
  5. Authors and Contributors:
  6. (H2B) Hans-Hermann Bode, Universität Osnabrück,
  7.   (hhbode@@dosuni1.rz.uni-osnabrueck.de or HHBODE@@DOSUNI1.BITNET).
  8.  
  9. (KG) Klaus Guntermann, TH Darmstadt,
  10.   (guntermann@@iti.informatik.th-darmstadt.de).
  11.  
  12. (AS) Andreas Scherer,
  13.   Abt-Wolf-Straße 17, 96215 Lichtenfels, Germany.
  14.  
  15. (CS) Carsten Steger, Universität München,
  16.   carsten.steger@informatik.tu-muenchen.de
  17.  
  18. Caveat utilitor:  Some of the source code introduced by this change file is
  19. made conditional to the use of specific compilers on specific systems.
  20. This applies to places marked with `#ifdef __TURBOC__' and `#ifdef _AMIGA'.
  21.  
  22. This program is distributed WITHOUT ANY WARRANTY, express or implied.
  23.  
  24. The following copyright notice extends to this changefile only, not to
  25. the masterfile CWEAVE.W.
  26.  
  27. Copyright (C) 1993 Andreas Scherer
  28. Copyright (C) 1991, 1993 Carsten Steger
  29. Copyright (C) 1991, 1992 Hans-Hermann Bode
  30.  
  31. Permission is granted to make and distribute verbatim copies of this
  32. document provided that the copyright notice and this permission notice
  33. are preserved on all copies.
  34.  
  35. Permission is granted to copy and distribute modified versions of this
  36. document under the conditions for verbatim copying, provided that the
  37. entire resulting derived work is distributed under the terms of a
  38. permission notice identical to this one.
  39.  
  40. Version history:
  41.  
  42. Version    Date        Author    Comment
  43. a1/t1    10 Oct 1991    H2B    First attempt for CWEAVE.W 2.1.
  44. p2    13 Feb 1992    H2B    Updated for CWEAVE.W 2.4, ANSI and Turbo
  45.                 changefiles merged together, typesetting of
  46.                 certain ANSI and special constructions fixed.
  47. p3    16 Apr 1992    H2B    Updated for CWEAVE.W 2.5.
  48. p4    22 Jun 1992    H2B    Updated for CWEAVE.W 2.6, retaining hack for
  49.                 underlining of customized iddentifiers.
  50. p5    21 Jul 1992    H2B    Extensions for C++ implemented.
  51. p5a    24 Jul 1992    KG    adaptions for other ANSI C compiler
  52. p5b    28 Jul 1992    H2B    Remaining headers converted to ANSI style.
  53. p5c    30 Jul 1992    KG    removed comments used after #endif
  54. p6    06 Sep 1992    H2B    Updated for CWEAVE.W 2.7, |dot_dot_dot| added,
  55.                 proper typesetting of formatted macro
  56.                 identifiers provided, bug in processing
  57.                 short comments fixed.
  58. p6a     15 Mar 1993     AS      adaptions for SAS/C 6.0 and use of German
  59.                                 macro file gcwebmac.tex
  60. p6b     28 Jul 1993     AS      new patch level due to minor changes
  61.         01 Aug 1993     AS      missing `ptrdiff_t' datatype included
  62. p6c    04 Sep 1993    AS    new patch level in accordance with Common
  63. p6d    09 Oct 1993    AS    Updated for CWEAVE.W 2.8. (This was p7)
  64. p7    13 Nov 1992    H2B    Converted to master change file, updated for
  65.                 CWEAVE.W 2.8. [Not released.]
  66. p7.5    29 Nov 1992    H2B    Updated for CWEAVE.W 2.9beta. [Not released.]
  67. p8    04 Dec 1992    H2B    Updated for CWEAVE.W 2.9++ (stuff went into
  68.                 the source file). [Not released.]
  69. p8a    10 Mar 1993    H2B    Restructured for public release. [Not released.]
  70. p8b    15 Apr 1993    H2B    Updated for CWEAVE.W 3.0beta. [Not released.]
  71. p8c    21 Jun 1993    H2B    Updated for final CWEAVE.W 3.0.
  72. p8d    25 Oct 1993    AS    Incorporated with Amiga version 2.8 [p7] and
  73.                 updated to version 3.0.
  74. ------------------------------------------------------------------------------
  75. @x l.1
  76. % This file is part of CWEB.
  77. % This program by Silvio Levy and Donald E. Knuth
  78. % is based on a program by Knuth.
  79. % It is distributed WITHOUT ANY WARRANTY, express or implied.
  80. % Version 3.0 --- June 1993
  81.  
  82. % Copyright (C) 1987,1990,1993 Silvio Levy and Donald E. Knuth
  83. @y
  84. % This file, CWEAVE.W, is part of CWEB-p.
  85. % This program by Silvio Levy and Donald E. Knuth
  86. % is based on a program by Knuth.
  87. % It is distributed WITHOUT ANY WARRANTY, express or implied.
  88. % Version 2.6 --- Don Knuth, June 1992
  89. % Version 2.6 [p5] --- Hans-Hermann Bode, July 1992
  90. % Version 2.6 [p5a] --- Klaus Guntermann, July 1992
  91. % Version 2.6 [p5b] --- Hans-Hermann Bode, July 1992
  92. % Version 2.6 [p5c] --- Klaus Guntermann, July 1992
  93. % Version 2.7 --- Don Knuth, July 1992
  94. % Version 2.7 [p6] --- Hans-Hermann Bode, September 1992
  95. % Version 2.7 [p6a] --- Andreas Scherer, March 1993
  96. % Version 2.7 [p6b] --- Andreas Scherer, July 1993
  97. % Version 2.7 [p6c] --- Andreas Scherer, September 1993
  98. % Version 2.8 --- Don Knuth, September 1992
  99. % Version 2.8 [p7] --- Andreas Scherer, October 1993
  100. % Version 3.0 --- Don Knuth, June 1993
  101. % Version 3.0 [p8c] --- Hans-Hermann Bode, June 1993
  102. % Version 3.0 [p8d] --- Andreas Scherer, October 1993
  103.  
  104. % Copyright (C) 1987,1990,1993 Silvio Levy and Donald E. Knuth
  105. % Copyright (C) 1991,1992,1993 Hans-Hermann Bode
  106. % Copyright (C) 1991,1993 Carsten Steger
  107. % Copyright (C) 1993 Andreas Scherer
  108. @z
  109. ------------------------------------------------------------------------------
  110. @x l.30
  111. \def\title{CWEAVE (Version 3.0)}
  112. @y
  113. \def\title{CWEAVE (Version 3.0 [p8d])}
  114. @z
  115. ------------------------------------------------------------------------------
  116. @x l.34
  117.   \centerline{(Version 3.0)}
  118. @y
  119.   \centerline{(Version 3.0 [p8d])}
  120. @z
  121. ------------------------------------------------------------------------------
  122. @x l.40
  123. Copyright \copyright\ 1987, 1990, 1993 Silvio Levy and Donald E. Knuth
  124. @y
  125. Copyright \copyright\ 1987, 1990, 1993 Silvio Levy and Donald E. Knuth
  126. \smallskip\noindent
  127. Copyright \copyright\ 1991, 1992, 1993 Hans-Hermann Bode
  128. \smallskip\noindent
  129. Copyright \copyright\ 1991, 1993 Carsten Steger
  130. \smallskip\noindent
  131. Copyright \copyright\ 1993 Andreas Scherer
  132. @z
  133. ------------------------------------------------------------------------------
  134. Activate this, if only the changed modules should be printed.
  135. x l.51
  136. \let\maybe=\iftrue
  137. y
  138. \let\maybe=\iffalse
  139. z
  140. ------------------------------------------------------------------------------
  141. @x l.54
  142. This is the \.{CWEAVE} program by Silvio Levy and Donald E. Knuth,
  143. based on \.{WEAVE} by Knuth.
  144. @y
  145. This is the \.{CWEAVE} program by Silvio Levy and Donald E. Knuth,
  146. based on \.{WEAVE} by Knuth, with {\mc ANSI-C} conforming changes
  147. and {\mc TURBO}-\CPLUSPLUS/ implementation made by Hans-Hermann Bode.
  148. Use of German macros and {\mc SAS/C~6.0} implementation made by Andreas
  149. Scherer based on ideas by Carsten Steger.
  150. @z
  151. ------------------------------------------------------------------------------
  152. @x l.64
  153. @d banner "This is CWEAVE (Version 3.0)\n"
  154. @y
  155. @d banner "This is CWEAVE (Version 3.0 [p8d])\n"
  156. @z
  157. ------------------------------------------------------------------------------
  158. @x l.78
  159. @<Predecl...@>=
  160. extern int strlen(); /* length of string */
  161. extern int strcmp(); /* compare strings lexicographically */
  162. extern char* strcpy(); /* copy one string to another */
  163. extern int strncmp(); /* compare up to $n$ string characters */
  164. extern char* strncpy(); /* copy up to $n$ string characters */
  165. @y
  166. @<Include files@>=
  167. #include <string.h>
  168. @z
  169. ------------------------------------------------------------------------------
  170. @x l.94
  171. int main (ac, av)
  172. int ac; /* argument count */
  173. char **av; /* argument values */
  174. @y
  175. int main (int ac, char **av)
  176. /* argument count and argument values */
  177. @z
  178. ------------------------------------------------------------------------------
  179. @x l.139
  180. @i common.h
  181. @y
  182. @i common-p.h
  183. @z
  184. ------------------------------------------------------------------------------
  185. @x l.223
  186. typedef struct xref_info {
  187.   sixteen_bits num; /* section number plus zero or |def_flag| */
  188.   struct xref_info *xlink; /* pointer to the previous cross-reference */
  189. } xref_info;
  190. typedef xref_info *xref_pointer;
  191. @y
  192. typedef struct xref_info {
  193.   sixteen_bits num; /* section number plus zero or |def_flag| */
  194.   struct xref_info HUGE *xlink; /* pointer to the previous cross-reference */
  195. } xref_info;
  196. typedef xref_info HUGE *xref_pointer;
  197. @z
  198. ------------------------------------------------------------------------------
  199. @x l.230
  200. xref_info xmem[max_refs]; /* contains cross-reference information */
  201. xref_pointer xmem_end = xmem+max_refs-1;
  202. @y
  203. #ifdef __TURBOC__
  204. xref_info HUGE *xmem; /* contains cross-reference information */
  205. xref_pointer xmem_end;
  206. #else
  207. xref_info xmem[max_refs]; /* contains cross-reference information */
  208. xref_pointer xmem_end = xmem+max_refs-1;
  209. #endif
  210. @z
  211. ------------------------------------------------------------------------------
  212. @x l.244
  213. xref_ptr=xmem; name_dir->xref=(char*)xmem;