source: Daodan/MinGW/msys/1.0/share/awk/ord.awk@ 1122

Last change on this file since 1122 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

File size: 937 bytes
RevLine 
[1046]1# ord.awk --- do ord and chr
2
3# Global identifiers:
4# _ord_: numerical values indexed by characters
5# _ord_init: function to initialize _ord_
6#
7# Arnold Robbins, arnold@skeeve.com, Public Domain
8# 16 January, 1992
9# 20 July, 1992, revised
10
11BEGIN { _ord_init() }
12
13function _ord_init( low, high, i, t)
14{
15 low = sprintf("%c", 7) # BEL is ascii 7
16 if (low == "\a") { # regular ascii
17 low = 0
18 high = 127
19 } else if (sprintf("%c", 128 + 7) == "\a") {
20 # ascii, mark parity
21 low = 128
22 high = 255
23 } else { # ebcdic(!)
24 low = 0
25 high = 255
26 }
27
28 for (i = low; i <= high; i++) {
29 t = sprintf("%c", i)
30 _ord_[t] = i
31 }
32}
33function ord(str, c)
34{
35 # only first character is of interest
36 c = substr(str, 1, 1)
37 return _ord_[c]
38}
39
40function chr(c)
41{
42 # force c to be numeric by adding 0
43 return sprintf("%c", c + 0)
44}
Note: See TracBrowser for help on using the repository browser.