*** doc/cacm.tex.old	Thu Apr  6 14:01:25 1989
--- doc/cacm.tex	Mon Apr 10 14:47:13 1989
***************
*** 182,188 ****
  \put(125,30){\line(-1,-1){10}}
  \put(115,20){\vector(-1,0){25}}
  
! \put(104,21.5){\makebox(0,0)[b]{\scriptsize\sl CWEAVE}}
  
  \put(60,15){\framebox(30,10){xtangle.c}}
  \put(60,-25){\framebox(30,10){xweave.c}}
--- 182,188 ----
  \put(125,30){\line(-1,-1){10}}
  \put(115,20){\vector(-1,0){25}}
  
! \put(104,21.5){\makebox(0,0)[b]{\scriptsize\sl CTANGLE}}
  
  \put(60,15){\framebox(30,10){xtangle.c}}
  \put(60,-25){\framebox(30,10){xweave.c}}
*** Makefile.old	Mon Apr 10 11:14:16 1989
--- Makefile	Tue Apr 11 11:51:42 1989
***************
*** 29,35 ****
  # Put everything into a tar file.  Must `make source' first, and should clean
  distribution:
  #	$(MAKE) clean
- 	cd master ; make superclean ; cd ..	# remove common .o from master
  #	$(MAKE) source
  	tar cvhf spiderweb.tar README COPYRIGHT BUGS webkernel.tex \
                   Makefile $(DIRECTORIES)
--- 29,34 ----
*** master/Makefile.old	Thu Apr  6 19:37:11 1989
--- master/Makefile	Tue Apr 11 11:55:29 1989
***************
*** 2,12 ****
  # Not to be sold, but may be used freely for any purpose
  # For more information, see file COPYRIGHT in the parent directory
  
  clean:
  	-rm -f *.tex *.dvi *.log *.wlog *~ *.toc
  
  superclean:
! 	-rm -f *.c *.o
  	-rm -f *.tex *.dvi *.log *~ *.toc
- 	-rm -f sun3/*.o vax/*.o
  
--- 2,18 ----
  # Not to be sold, but may be used freely for any purpose
  # For more information, see file COPYRIGHT in the parent directory
  
+ OBJECTDIRS=sun3 vax
+ 
  clean:
  	-rm -f *.tex *.dvi *.log *.wlog *~ *.toc
+ 	@-for i in $(OBJECTDIRS); do \
+ 		rm -f $$i/*.o; \
+ 	done
+ 	-rm -f *.o
  
  superclean:
! 	-rm -f sun3/*.o vax/*.o *.o
! 	-rm -f *.c
  	-rm -f *.tex *.dvi *.log *~ *.toc
  
*** master/spider.web.old	Tue Apr 11 13:19:58 1989
--- master/spider.web	Tue Apr 11 14:02:06 1989
***************
*** 1939,1945 ****
  	if (n%5==0)
  		print "@ @<Test for all of the productions@>=" \
  			> grammarfile ## avoids overflowing \.{WEAVE} of \.{WEAVE}
! 	#<Remove \vert\ from |inputline[n]| and put results in |this_string|#>
  	#<Make |this_string| no more than 60 characters wide#>
  	printf "if (%s) {\n\t/* %d: {\\tt %s} */\n%s",\
  		prodtest[n],n,this_string,prodtrans[n] > grammarfile
--- 1939,1945 ----
  	if (n%5==0)
  		print "@ @<Test for all of the productions@>=" \
  			> grammarfile ## avoids overflowing \.{WEAVE} of \.{WEAVE}
! 	#<Change \vert,\_, and {\tt \##} in |inputline[n]|; put results in |this_string|#>
  	#<Make |this_string| no more than 60 characters wide#>
  	printf "if (%s) {\n\t/* %d: {\\tt %s} */\n%s",\
  		prodtest[n],n,this_string,prodtrans[n] > grammarfile
***************
*** 1991,2005 ****
  # It's desirable to put the production in a comment, but we have to
  get rid of the confusing \vert, or \.{WEAVE} will think it introduces
  code.
! #<Remove \vert\ from |inputline[n]| and put results in |this_string|#>=
! 		this_string = inputline[n]
  		tempi = index(this_string,"|")
! 		while (tempi != 0) {
! 			tempa = substr(this_string,1,tempi-1)
! 			tempb = substr(this_string,tempi+1)
! 			this_string = tempa "\\vert " tempb
! 			tempi = index(this_string,"|")
! 			}
  
  
  # We have to keep these productions from making an input line too long.
--- 1991,2025 ----
  # It's desirable to put the production in a comment, but we have to
  get rid of the confusing \vert, or \.{WEAVE} will think it introduces
  code.
! We also have to escape underscores and sharp signs, otherwise \TeX\ will 
! think we want math mode.
! #<Change \vert,\_, and {\tt \##} in |inputline[n]|; put results in |this_string|#>=
! 	this_string = inputline[n]
! 	tempi = index(this_string,"|")
! 	while (tempi != 0) {
! 		tempa = substr(this_string,1,tempi-1)
! 		tempb = substr(this_string,tempi+1)
! 		this_string = tempa "\\vert " tempb
  		tempi = index(this_string,"|")
! 		}
!         templ = ""; tempr = this_string
! 	tempi = index(tempr,"_")
! 	while (tempi != 0) {
! 		tempa = substr(tempr,1,tempi-1)
! 		tempr = substr(tempr,tempi+1)
! 		templ = templ tempa "\\_"
! 		tempi = index(tempr,"_")
! 		}
!         this_string = templ tempr
!         templ = ""; tempr = this_string
! 	tempi = index(tempr,"##")
! 	while (tempi != 0) {
! 		tempa = substr(tempr,1,tempi-1)
! 		tempr = substr(tempr,tempi+1)
! 		templ = templ tempa "\\##"
! 		tempi = index(tempr,"##")
! 		}
!         this_string = templ tempr
  
  
  # We have to keep these productions from making an input line too long.
*** doc/spiderwebman.tex.old	Thu Apr  6 14:01:32 1989
--- doc/spiderwebman.tex	Tue Apr 11 14:24:39 1989
***************
*** 579,599 ****
  can define two kinds of macros to make the programs shorter and more
  readable.
  
! \yskip\hang`\.{@d} \\{identifier} \PASCAL\ text' defines a {\sl
  simple\/} macro, where the identifier will be replaced by the \PASCAL\ text
  when \.{TANGLE} produces its output.
  
! \yskip\hang`\.{@d} \\{identifier}\.{(\\{ actual identifiers})} \PASCAL\ text' defines a
  {\sl parametric\/} macro, where the identifier will be replaced by the \PASCAL\
  text and where occurrences of the \\{identifiers} in that \PASCAL\ text will be
  replaced by arguments.
  
! C programmers will recognize the C macro processor.
! The implementation relies on the C preprocessor to expand the macros.
! The author of \.{Spider} \.{WEB} intends to correct this unfortunate
! historical accident at the earliest opportunity, by restoring
! \.{WEB}'s built-in macro processor. 
! 
  
  
  
--- 579,595 ----
  can define two kinds of macros to make the programs shorter and more
  readable.
  
! \yskip\hang`\.{@d} \\{identifier} = \PASCAL\ text' defines a {\sl
  simple\/} macro, where the identifier will be replaced by the \PASCAL\ text
  when \.{TANGLE} produces its output.
  
! \yskip\hang`\.{@d} \\{identifier}\.{(\\{ actual identifiers})} = \PASCAL\ text' defines a
  {\sl parametric\/} macro, where the identifier will be replaced by the \PASCAL\
  text and where occurrences of the \\{identifiers} in that \PASCAL\ text will be
  replaced by arguments.
  
! For C programmers, this is similar to the C macro processor.
! \endnewstuff