home *** CD-ROM | disk | FTP | other *** search
- # ord.awk --- do ord and chr
-
- # Global identifiers:
- # _ord_: numerical values indexed by characters
- # _ord_init: function to initialize _ord_
- #
- # Arnold Robbins, arnold@gnu.org, Public Domain
- # 16 January, 1992
- # 20 July, 1992, revised
-
- BEGIN { _ord_init() }
-
- function _ord_init( low, high, i, t)
- {
- low = sprintf("%c", 7) # BEL is ascii 7
- if (low == "\a") { # regular ascii
- low = 0
- high = 127
- } else if (sprintf("%c", 128 + 7) == "\a") {
- # ascii, mark parity
- low = 128
- high = 255
- } else { # ebcdic(!)
- low = 0
- high = 255
- }
-
- for (i = low; i <= high; i++) {
- t = sprintf("%c", i)
- _ord_[t] = i
- }
- }
- function ord(str, c)
- {
- # only first character is of interest
- c = substr(str, 1, 1)
- return _ord_[c]
- }
-
- function chr(c)
- {
- # force c to be numeric by adding 0
- return sprintf("%c", c + 0)
- }
-