|
|
1.1 root 1: Awk had the following problem.
2:
3: Normally tokens are delimited by whitespace rules. That is any
4: number of spaces or tabs counts as a single delimiter. In normal
5: awk as long as FS = " \t" whitespace rules always apply. If FS
6: is anything else normal delimeter rules should apply. That is if
7: FS=":" the line a::c has 3 tokens, a, NULL, and c.
8:
9: We were always applying whitespace rules. That is with FS=":"
10: a::c had two tokens a and c.
11:
12: This is now fixed.
13: ---------------------------------------------------------------
14:
15: Awk had the following problem
16: { print ($1 + 10) * 5 }
17: Gave a syntax error because print ( was detected first.
18:
19: This is now fixed.
20:
21: Steve made an improved make that uses $SRCPATH the Makefile now
22: takes advantage of this.
23: ---------------------------------------------------------------
24:
25: Awk had the following problem
26: \ new line did not allow continuation lines.
27: { print \
28: $1 }
29: Gave a syntax error.
30: This is now fixed.
31: ---------------------------------------------------------------
32:
33: Awk had the following problem.
34: There was no provision for unary minus. It was treated as
35: a syntax error.
36:
37: This is now fixed.
38:
39: ---------------------------------------------------------------
40:
41: Awk had the following bug. The input line
42: b c
43: Intrepeted b as field 1 and c as field 2.
44:
45: This is now fixed. b is field 2 and c is field 3.
46:
47: ---------------------------------------------------------------
48: If awk tried to store at say $3 on a line with only one field It
49: would end up storing at the famous unitialized pointer. Now it
50: will attempt to add the correct number of trailing delimeters
51: and then add the field at the end. If white space rules are in
52: effect and more than one trailing delimeter is needed there will
53: be a warning message and the field will be added at the end as
54: though whitespace rules were not in effect.
55:
56: ---------------------------------------------------------------
57: Awk would not allow concatination as a pattern.
58: ($1 $2) == "abc" { some stuff }
59: Was a syntax error. This now works.
60:
61: ---------------------------------------------------------------
62: If awk used a split() to break up a line multiple delimeters
63: were always counted as one and leading delimeters were skipped.
64: This is now fixed.
65:
66: ---------------------------------------------------------------
67: If awk tried to store $3 on a line with an insufficient number
68: of fields and trailing delimeters it added new delimeters
69: without removing the old ones.
70: ---------------------------------------------------------------
71: Awk reported the wrong number of fields where there were trailing
72: delimeters. It failed to update the number of fields when new
73: fields were added at the end. This is fixed. (awk[35].c)
74: ---------------------------------------------------------------
75: Awk did not accept names with underscores. This is fixed (awk1.c)
76: ---------------------------------------------------------------
77: Thu Feb 4 13:50:09 1993 PST
78: Changes by steve to support "for (; cond; incr)" with absent initializer:
79: awk.h Deleted bogus sprintf declaration.
80: awk.y Added new FOR_ production with absent initializer.
81: awk3.c Changed AFOR code to evaluate initializer only if present.
82: ---------------------------------------------------------------
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.