Check-in [0219a4ded0]
Overview
Comment:Updated to include "strtonum" implementation (public domain)
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 0219a4ded0ac9a9138fd6ca269310f5cf999a664
User & Date: rkeene on 2014-06-21 04:43:36
Other Links: manifest | tags
Context
2014-06-21
04:44
Updated to work on older autoconf implementations and support the new versionscript.m4 interface check-in: 5ade025cc5 user: rkeene tags: trunk
04:43
Updated to include "strtonum" implementation (public domain) check-in: 0219a4ded0 user: rkeene tags: trunk
2014-06-18
19:50
Added new API tests check-in: 2a9dcf9840 user: rkeene tags: trunk
Changes

Modified headers.awk from [2628bc220f] to [50cddefa11].












































1
2
3
4
5
6
7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+







# strtonum --- convert string to number

#
# Arnold Robbins, arnold@skeeve.com, Public Domain
# February, 2004

function mystrtonum(str,        ret, chars, n, i, k, c)
{
    if (str ~ /^0[0-7]*$/) {
        # octal
        n = length(str)
        ret = 0
        for (i = 1; i <= n; i++) {
            c = substr(str, i, 1)
            if ((k = index("01234567", c)) > 0)
                k-- # adjust for 1-basing in awk

            ret = ret * 8 + k
        }
    } else if (str ~ /^0[xX][0-9a-fA-f]+/) {
        # hexadecimal
        str = substr(str, 3)    # lop off leading 0x
        n = length(str)
        ret = 0
        for (i = 1; i <= n; i++) {
            c = substr(str, i, 1)
            c = tolower(c)
            if ((k = index("0123456789", c)) > 0)
                k-- # adjust for 1-basing in awk
            else if ((k = index("abcdef", c)) > 0)
                k += 9

            ret = ret * 16 + k
        }
    } else if (str ~ /^[-+]?([0-9]+([.][0-9]*([Ee][0-9]+)?)?|([.][0-9]+([Ee][-+]?[0-9]+)?))$/) {
        # decimal number, possibly floating point
        ret = str + 0
    } else
        ret = "NOT-A-NUMBER"

    return ret
}

/^End of search list/{
	in_searchpath = 0;
}

(in_searchpath == 1){
	searchpath = $0;
	sub(/^  */, "", searchpath);
62
63
64
65
66
67
68
69

70
71
72
73
74
75
76
105
106
107
108
109
110
111

112
113
114
115
116
117
118
119







-
+







}

END{
	for (key in copy) {
		split(key, parts, SUBSEP);

		src = parts[1];
		idx = strtonum(parts[2]);
		idx = mystrtonum(parts[2]);
		dest = copy[key];

		destcopy[dest,idx] = src;
		destcopyfiles[dest] = 1;
	}

	for (destfile in destcopyfiles) {