[NLUUG]   Welcome to ftp.vim.org,
Hosted by ftp.nluug.nl
Current directory: /ibiblio/distributions/CTAN/web/knit/
Contents of README:
% This is README
The PATCHWORK system consists of two programs
   KNIT    a version of TANGLE that can handle multiple changefiles
   TWIST   a version of WEAVE that can handle multiple changefile
and
   PATHCHMAC.TEX   a modified version of WEBMAC.TEX which must be used
	   for TeX'ing the output of TWIST.

To install the system you should proceed as follows. (The description
is for SUN UNIX but an implementation on other UNIX systems or even
non-UNIX systems should be possible without major problems.)

1. Make a new directory with the files
      knit.ch     twist.ch   patchmac.tex
      demo.web    demo.ch1   demo.ch2      demo.ch3
   and copy (temporarily) also
      tangle.web  weave.web
   which you will surely have already.

2. Tangle tangle.web with knit.ch giving you tangle.p:
      tangle tangle.web knit.ch

3. Rename tangle.p to knit.p and compile it.
      mv tangle.p. knit.p; pc -o knit knit.p

4. If your compiler complains you should modify knit.ch (after
   you have saved the original version). All the necessary modifications
   should be found in your local tangle.ch. Then start at step 2 again.
   (You should record all changes to knit.ch in a separate changefile
    which you might call knit.ch.local. If you have successfully installed
    knit and twist later on, you can reproduce knit from tangle with
    the original (system-independent) knit.ch and your (system-dependent)
    knit.ch.local, e.g.,
       knit tangle.web knit.ch knit.ch.local
   For obvious reasons, the orinal knit.ch is not completely system-
   independent, but it is a version with works for SUN UNIX. However,
   the system-dependencies are rather small.)

5. Repeat steps 2 to 4 correspondingly for weave and twist:
      tangle weave.web twist.ch
      mv weave.p twist.p; pc -o twist twist.p

6. You now have a first version of the PATCHMAC system and might want
   to test how it works:
      ln demo.web webfile
      ln demo.ch1 chfile1
      ln demo.ch2 chfile2
      ln demo.ch3 chfile3
      knit
      mv Pascalfile demo.p; pc -o demo demo.p
      demo
   and you should see on your terminal
      I am line1 from changefile1
      I am line2 from changefile1
      I am line3 from changefile1
      I am line4 from changefile1
      I am line3
      I am line2 from changefile3
      I am line3 from changefile3
      I am line7
      I am line8
      I am line9
      I am line2 from changefile2
      I am line3 from changefile2
      I am line4 from changefile3
      I am line12
   Afterwards you could run twist and TeX it's output:
      twist
      mv texfile demo.tex; tex demo [print or preview it]

7. As you will have noticed in step 6, these versions of twist
   and knit are rather simple and do not allow the usual parsing
   of the command line as your tangle and weave will probably do,
   i.e., the file names for twist and knit have to be
      webfile  chfile1  chfile2 chfile3
   Since you will probably not like this you could write, as a first
   exercise, two changefiles, say
      knit.ch.args  twist.ch.args
   which implement the parsing of the arguments in the command line.
   With
      ln tangle.web webfile
      ln knit.ch chfile1
      ln knit.ch.args chfile2
      knit
      mv Pascalfile knit.p
      pc -o knit knit.p
   (and a similar procedure for twist) you then will get a version
   of knit (and twist) which allows the usual usuage:
      knit name_of_webfile name_of_first_cf name_of_second_cf ...

Wolfgang Appelt
GMD
Schlo\ss Birlinghoven
Postfach 1240
D-5205 Sankt Augustin
Germany FR

19 October 1988

Icon  Name                             Last modified      Size  
[DIR] Parent Directory - [TXT] README 23-Sep-1992 01:00 3.5K [   ] demo.ch1 23-Sep-1992 01:00 261 [   ] demo.ch2 23-Sep-1992 01:00 219 [   ] demo.ch3 23-Sep-1992 01:00 375 [TXT] demo.web 23-Sep-1992 01:00 673 [TXT] knit.ch 23-Sep-1992 01:00 34K [TXT] origin 23-Sep-1992 01:00 578 [TXT] twist.ch 23-Sep-1992 01:00 42K

NLUUG - Open Systems. Open Standards
Become a member and get discounts on conferences and more, see the NLUUG website!