home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 2 / FFMCD02.bin / new / dev / misc / cweb / examples / treeprint-p.ch < prev    next >
Text File  |  1993-12-21  |  3KB  |  128 lines

  1.                                 -*-Web-*-
  2. This file, TREEPRINT-P.CH, is part of CWEB-p.  It is a changefile written
  3. by Andreas Scherer, Abt-Wolf-Straße 17, 96215 Lichtenfels, Germany, for
  4. TREEPRINT.W that provides changes appropriate for ANSI-C compilers.
  5.  
  6. This program is distributed WITHOUT ANY WARRANTY, express or implied.
  7.  
  8. The following copyright notice extends to this changefile only, not to the
  9. masterfile.
  10.  
  11. Copyright (c) 1993 Andreas Scherer
  12.  
  13. Permission is granted to make and distribute verbatim copies of this
  14. document provided that the copyright notice and this permission notice
  15. are preserved on all copies.
  16.  
  17. Permission is granted to copy and distribute modified versions of this
  18. document under the conditions for verbatim copying, provided that the
  19. entire resulting derived work is distributed under the terms of a
  20. permission notice identical to this one.
  21.  
  22. Version history:
  23.  
  24. Version    Date        Author    Comment
  25. p1    1 Sep 1993    AS    First hack.
  26. ------------------------------------------------------------------------------
  27. The internal routines deserve their declarations.
  28. @x l.17
  29. @c
  30. @<Global definitions@>@;
  31. @<Global include files@>@;
  32. @<Global declarations@>@;
  33. @y
  34. @c
  35. @<Global definitions@>@;
  36. @<Global include files@>@;
  37. @<Global declarations@>@;
  38. @<Prototypes@>@;
  39. @z
  40. ------------------------------------------------------------------------------
  41. @x l.55
  42. @c
  43. read_tree (fp, rootptr)
  44.    FILE *fp;
  45.    struct tnode **rootptr;
  46. @y
  47. @c
  48. void read_tree (fp, rootptr)
  49.    FILE *fp;
  50.    struct tnode **rootptr;
  51. @z
  52. ------------------------------------------------------------------------------
  53. Some external routines and all the internal routines need prototypes.
  54. @x l.67
  55. @ @<Global include...@>=#include <stdio.h>
  56. @y
  57. @ @<Global include...@>=
  58. #include <stdio.h>
  59. #include <stdlib.h>
  60. #include <string.h>
  61. @z
  62. ------------------------------------------------------------------------------
  63. @x l.79
  64. @c
  65. add_tree(rootptr, p)
  66.      struct tnode **rootptr;
  67.      char *p;
  68. @y
  69. @c
  70. void add_tree(rootptr, p)
  71.      struct tnode **rootptr;
  72.      char *p;
  73. @z
  74. ------------------------------------------------------------------------------
  75. |malloc| is declared in <stdlib.h>.
  76. @x l.127
  77.        (*rootptr)->data = malloc (strlen(p)+1);
  78.  
  79. @
  80. @<Global decl...@>= char *malloc();
  81.  
  82. @ In this simple implementation, we just read from standard input.
  83. @<Read...@>= read_tree(stdin,&root);
  84. @y
  85.        (*rootptr)->data = malloc (strlen(p)+1);
  86.  
  87. @ |malloc| is already declared in {\tt stdlib.h>}.
  88.  
  89. @ In this simple implementation, we just read from standard input.
  90. @<Read...@>= read_tree(stdin,&root);
  91. @z
  92. ------------------------------------------------------------------------------
  93. @x l.193
  94. @c
  95. print_node(fp, indent_string, node)
  96.      FILE *fp;
  97.      char *indent_string;
  98.      struct tnode *node;
  99. @y
  100. @c
  101. void print_node(fp, indent_string, node)
  102.      FILE *fp;
  103.      char *indent_string;
  104.      struct tnode *node;
  105. @z
  106. ------------------------------------------------------------------------------
  107. Correct a typo.
  108. @x l.217
  109.     *is=='\0';
  110. @y
  111.     *is='\0';
  112. @z
  113. ------------------------------------------------------------------------------
  114. The module numbering is preserved.
  115. @x l.247
  116. @*Index.
  117. @y
  118. @ At last we declare the function prototypes.
  119.  
  120. @<Prototypes@>=
  121. int main(int,char **);
  122. void read_tree(FILE *,struct tnode **);
  123. void add_tree(struct tnode **,char *);
  124. void print_node(FILE *,char *,struct tnode *);
  125. @* Index.
  126. @z
  127. ------------------------------------------------------------------------------
  128.