|
RTR's Win95Pak: The GAWK Manual - Index
Go to the previous chapter.
Unresolved Issues:
------------------
1. From: (Michal Jaegermann)
Examples of usage tend to suggest that /../ and ".." delimiters
can be used for regular expressions, even if definition is consistently
using /../. I am not sure what the real rules are and in particular
what of the following is a bug and what is a feature:
# This program matches everything
'"\(" { print }'
# This one complains about mismatched parenthesis
'$0 ~ "\(" { print }'
# This one behaves in an expected manner
'/\(/ { print }'
You may also try to use "\(" as an argument to match() to see what
will happen.
2. From ADR.
The posix (and original Unix!) notion of awk values as both number
and string values needs to be put into the manual. This involves
major and minor rewrites of most of the manual, but should help in
clarifying many of the weirder points of the language.
3. From ADR.
The manual should be reorganized. Expressions should be introduced
early, building up to regexps as expressions, and from there to their
use as patterns and then in actions. Built-in vars should come earlier
in the manual too. The 'expert info' sections marked with comments
should get their own sections or subsections with nodes and titles.
The manual should be gone over thoroughly for indexing.
4. From ADR.
Robert J. Chassell points out that awk programs should have some indication
of how to use them. It would be useful to perhaps have a "programming
style" section of the manual that would include this and other tips.
5. From ADR in response to
(This would make the beginnings of a good "puzzles" section...)
Date: Mon, 2 Dec 91 10:08:05 EST
From: gatech!cc!arnold (Arnold Robbins)
To: cs.dal.ca!david, uunet.ca!moraes
Subject: redirecting to /dev/stderr
Cc: skeeve!arnold, boeing.com!brennan, research.att.com!bwk
In 2.13.3 the following program no longer dumps core:
BEGIN { print "hello" > /dev/stderr ; exit(1) }
Instead, it creates a file named `0' with the word `hello' in it. AWK
semantics strikes again. The meaning of the statement is
print "hello" > (($0 ~ /dev/) stderr)
/dev/ tests $0 for the pattern `dev'. This yields a 0. The variable stderr,
having never been used, has a null string in it. The concatenation yields
a string value of "0" which is used as the file name. Sigh.
I think with some more time I can come up with a decent fix, but it will
probably only print a diagnostic with -Wlint.
Arnold
|