Import upstream 2.3.14
[packages/xinetd.git] / libs / src / str / README
1 ======================================================================
2 NOTE: I use vi with a tabstop value of 3. Using the same tabstop
3                 value will make the text/code look properly indented.
4 ======================================================================
5
6
7 1. What is this library about ?
8
9 The STR library consists of string handling functions. These
10 functions can be separated into 4 groups:
11
12 A. String matching functions. A variety of algorithms are available
13         for string matching:
14                         brute force
15                         Rabin-Karp
16                         Knuth-Morris-Pratt
17                         Boyer-Moore
18                         Shift-or
19
20 B. String printing functions (similar to sprintf). These functions offer
21         2 significant advantages over sprintf:
22                 1) they include functions that will *not* overrun the string buffer 
23                         provided
24                 2) they include functions returning "char *" as well as functions
25                         returning "int" so that one can pick the most appropriate one.
26
27 C. String parsing functions. These functions offer an easy way of breaking
28         a string into pieces.
29
30 D. String utility functions. This group includes functions that will
31         convert a string to upper/lower case etc.
32
33
34 2. Setting up the STR library
35
36 All you need to do is type 'make'. This will create the library in the
37 current directory.  The string printing functions use (and therefore
38 require) the underlying format conversion facility of my SIO (Stream
39 I/O) library.  If you don't want to bother with it, you can define the
40 flag NO_SIO in the Makefile (check the Makefile comments on how to do
41 this) which will turn all string printing functions to no-ops.  The SIO
42 library is available from mystique.cs.colorado.edu in the directory
43 pub/libs (it may also be available at other places).  Make sure you get
44 SIO version 1.6.2 or later; versions prior to 1.6.2 will result in
45 identical behavior between the strx_*print* and the str_*print*
46 functions.
47
48 To install the library and the associated man pages and include files
49 type 'make install'. This will install the library in LIBDIR, the man
50 pages in MANDIR and the include files in INCLUDEDIR.  LIBDIR,
51 INCLUDEDIR, and MANDIR are Makefile variables that you can edit in the
52 Makefile or override when you invoke 'make'.
53
54
55
56 3. Epilogue
57
58 Please send bug-reports/comments to panos@cs.colorado.edu
59
60 You can obtain the latest version of this library from
61 mystique.cs.colorado.edu in the directory pub/libs.
62
63 Feel free to modify the library to suit your needs.  If you want to
64 distribute modifications to this library, please read the COPYRIGHT
65 file.  It basically says that you are free to redistribute as long as
66 you retain the original copyright notice and you make sure that your
67 modifications are identifiable. In order to achieve this I have
68 reserved the first 3 components of the version number (for example,
69 1.4.2) and you can identify your mods by appending another component to
70 that version number (for example, 1.4.2.A2). Also, if you distribute a
71 modified version of the library, you take full responsibility for any
72 bugs in the code (not just your code; the whole thing).
73