aboutsummaryrefslogtreecommitdiff
path: root/packages/NetWare/get_exp.awk
blob: 153f5d241019b46c29dd8c0ab7b2bb4dbff9d62f (plain)
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
# fetch exports from input header and write them to STDOUT
BEGIN {
    add_symbol("curl_strequal")
    add_symbol("curl_strnequal")
}

function add_symbol(sym_name) {
    sub(" ", "", sym_name)
    exports[++idx] = sym_name
}


/^CURL_EXTERN .* [*]?curl_.*[(]/ {
    sub("[(].*", "")
    sub("^.* ", "")
    sub("^[*]", "")
    add_symbol($0)
}

END {
    printf("Added %d symbols to export list.\n", idx) > "/dev/stderr"
    # sort symbols with shell sort
    increment = int(idx / 2)
    while (increment > 0) {
        for (i = increment+1; i <= idx; i++) {
            j = i
            temp = exports[i]
            while ((j >= increment+1) && (exports[j-increment] > temp)) {
                exports[j] = exports[j-increment]
                j -= increment
            }
            exports[j] = temp
        }
        if (increment == 2)
            increment = 1
        else
            increment = int(increment*5/11)
    }
    # print the array
    if (EXPPREFIX) {
        printf(" (%s)\n", EXPPREFIX)
    }
    while (x < idx - 1) {
        printf(" %s,\n", exports[++x])
    }
    printf(" %s\n", exports[++x])
}