Annotation of 43BSD/bin/awk/README, revision 1.1.1.1

1.1       root        1: CHANGES as of July 12:
                      2: 
                      3: 1. \ddd allowed in regular expressions.
                      4: 
                      5: 2. exit <expression> causes the expression to
                      6: to be the status return upon completion.
                      7: 
                      8: 3. a new builtin called "getline" causes the next
                      9: input line to be read immediately.  Fields, NR, etc.,
                     10: are all set, but you are left at exactly the same place
                     11: in the awk program.  Getline returns 0 for end of file;
                     12: 1 for a normal record.
                     13: 
                     14: 
                     15: CHANGES SINCE MEMO:
                     16: Update to TM of Sept 1, 1978:
                     17: 
                     18: 1. A new form of for loop
                     19:        for (i in array)
                     20:                statement
                     21: is now available. It provides a way to walk
                     22: along the members of an array, most usefully
                     23: for associative arrays with non-numeric subscripts.
                     24: Elements are accessed in an unpredictable order,
                     25: so don't count on anything.
                     26: Futhermore, havoc ensues if elements are created
                     27: during this operation, or if the index variable
                     28: is fiddled.
                     29: 
                     30: 2. index(s1, s2) returns the position in s1
                     31: where s2 first occurs, or 0 if it doesn't.
                     32: 
                     33: 3. Multi-line records are now supported more
                     34: conveniently. If the record separator is null
                     35:        RS = ""
                     36: then a blank line terminates a record, and newline
                     37: is a default field separator, along with
                     38: blank and tab.
                     39: 
                     40: 4. The syntax of split has been changed.
                     41:        n = split(str, arrayname, sep)
                     42: splits the string str into the array using
                     43: the separator sep (a single character).
                     44: If no sep field is given, FS is used instead.
                     45: The elements are array[1] ... array[n]; n
                     46: is the function value.
                     47: 
                     48: 5. some minor bugs have been fixed.
                     49: 
                     50: IMPLEMENTATION NOTES:
                     51: 
                     52: Things to watch out for when trying to make awk:
                     53: 
                     54: 1. The yacc -d business creates a new file y.tab.h
                     55: with the yacc #defines in it. this is compared to
                     56: awk.h on each successive compile, and major recompilation
                     57: is done only if the files differ. (This permits editing
                     58: the grammar file without causing everything in sight
                     59: to be recompiled, so long as the definitions don't
                     60: change.)
                     61: 
                     62: 2. The program proc.c is compiled into proc, which
                     63: is used to create proctab.c. proctab.c is the
                     64: table of function pointers used by run to actually
                     65: execute things. Don't try to load proc.c with the
                     66: other .c files; it also contains a "main()".
                     67: 
                     68: 3. Awk uses structure assignment. Be sure your
                     69: version of the C compiler has it.
                     70: 
                     71: 4. The loader flag -lm is used to fetch the standard
                     72: math library on the Research system. It is more likely
                     73: that you will want to use -lS on yours.
                     74: run.c also includes "math.h", which contains sensible
                     75: definitions for log(), sqrt(), etc. If you don't have this
                     76: include file, comment the line out, and all will be well
                     77: anyway.
                     78: 
                     79: 5. The basic sequence of events (in case make doesn't
                     80: seem to do the job) is
                     81:        yacc -d awk.g.y
                     82:        cc -O -c y.tab.c
                     83:        mv y.tab.o awk.g.o
                     84:        lex awk.lx.l
                     85:        cc -O -c lex.yy.c
                     86:        mv lex.yy.o awk.lx.o
                     87:        cc -O -c b.c
                     88:        cc -O -c main.c
                     89:        e - <tokenscript
                     90:        cc -O -c token.c
                     91:        cc -O -c tran.c
                     92:        cc -O -c lib.c
                     93:        cc -O -c run.c
                     94:        cc -O -c parse.c
                     95:        cc -O -c proc.c
                     96:        cc -o proc proc.c token.o
                     97:        proc >proctab.c
                     98:        cc -O -c proctab.c
                     99:        cc -i -O awk.g.o awk.lx.o b.o main.o token.o tran.o lib.o run.o parse.o proctab.o -lm

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.