summaryrefslogtreecommitdiff
path: root/biblio/tib/NONUNIX
blob: bb29da5d910533ed7a90f1c843cfbe5ab5fbc2e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
1. All file names are eight letters or less with an .extension of
   three or less letters.  Most variables are six or less letters; in any 
   case, the first six letters determine the variables.  Also there are both
   caps and lower-case letters used, in file names, but if they are all made
   one case, there is no conflict.

2. The program outfname in tibargs.c creates an output file name of the form
           file-t.tex
   or
           file.ref-t.tex
   for tib and tiblist.  If this is illegal change the code in the routine
   `outfname' in tibargs.c appropriately (maybe look for the last `.' in
   the name and add extension).

                             *** WARNING ***
   If your system has a limit on the length of file names and/or extensions
   and silently truncates ones that are too long, there is a danger that tib
   or tiblist could overwrite existing input files.  The subroutine `outfname'
   should be rewritten to prevent this possibility.  One way, although
   somewhat inconvenient for the user, is to give the output a different
   extension.  A second way, also possibly inconvenient, is to test for the
   existence of a file with the proposed name before opening the file.
   If your system will not open an open file, it would be possible to delay
   closing the input file (fclose(fd)) until the end of the run, although
   this is not necessarily 100% safe, since for example tiblist could take
   `test.ref' as input and overwrite `test.tex' as output.  The author assumes
   no responsibility for overwritten files.

3. The directory separator character is '/' for unix.  If this is not
   your separator character, make appropriate changes in tib.h and
   at the top of tibargs.c in <sys/types.h> and <sys/stat.h>.
   Also redefine \DIRSEP at the beginning of tibdoc.tex.  Similarly,
   the option character on the program calls is '-' for unix.  If this
   is not your option character, make appropriate changes in tib.h
   and redefine \OPTCH in tibdoc.tex.

4. The routine qsort is used several places.  If qsort is unavailable,
   an equivalent routine should be used.

5. Tibdex uses a unix routine sort.  If sort is unavailable, see the
   discussion at the beginning of tibdex.c.

6. The files <sys/types.h> and <sys/stat.h> are used in the routine
   chkindex in tibargs.c in an error check.  If they are unavailable,
   rewrite chkindex to do nothing but return.

7. If make is unavailable, compile and link the programs as indicated:
      tibdex requires tibdex, streams, makekey;
      tiblook requires tiblook, locate, seek, streams, makekey;
      tiblist requires tiblist, tibargs, streams, makekey;
      tib requires tib, tibargs, locate, seek, streams, makekey.

8. If everything else seems OK and Tib gives lots of "no references found"
   or "multiple references found", it may be counting end-of-line or new-line
   characters differently.  Make your counting unix compatible or some other
   fix.

9. The file tib.man is for a unix manual file and can be discarded.

10. Remark.  Word-definition pairs are read into memory one at a time, and
  are sorted as they are read.  For large sorted files of such pairs (such
  as amsabb.ttz, amsfll.ttz), this is a rather inefficient way to do things
  (it will be reworked in a future version), and may be unacceptable for
  your system.  It may be preferable to either a) rewrite the appropriate
  code (case 'D' in tibargs.c), or b) not use large files of such pairs.  Most
  of the time at the beginning of a run of tib is used processing these pairs.