aboutsummaryrefslogtreecommitdiff
path: root/packages/NetWare/get_exp.awk
diff options
context:
space:
mode:
authorGuenter Knauf <lists@gknw.net>2012-07-11 15:48:02 +0200
committerGuenter Knauf <lists@gknw.net>2012-07-11 15:48:02 +0200
commit33eac5f7fdd9d49d4b1d07468952d893e6b56adc (patch)
tree06b03d9751b6c2058334f4421105ccc045fb63b5 /packages/NetWare/get_exp.awk
parent0025770a99a040ba5673aba31038fea25695f702 (diff)
Changed NetWare build to generate export list.
Diffstat (limited to 'packages/NetWare/get_exp.awk')
-rwxr-xr-xpackages/NetWare/get_exp.awk48
1 files changed, 48 insertions, 0 deletions
diff --git a/packages/NetWare/get_exp.awk b/packages/NetWare/get_exp.awk
new file mode 100755
index 000000000..153f5d241
--- /dev/null
+++ b/packages/NetWare/get_exp.awk
@@ -0,0 +1,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])
+}
+