zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/ap/build/uClibc/test/API/html2input.sh b/ap/build/uClibc/test/API/html2input.sh
new file mode 100755
index 0000000..9ea68fe
--- /dev/null
+++ b/ap/build/uClibc/test/API/html2input.sh
@@ -0,0 +1,119 @@
+#!/bin/sh
+# vi: ft=awk :
+#
+# Script to extract functions and external variables off SUS html docs
+#
+# Copyright (C) 2010 Bernhard Reutner-Fischer
+# Public Domain
+
+# Usage:
+# wget http://www.opengroup.org/onlinepubs/9699919799/download/susv4.tgz
+# tar xzf susv4.tgz
+# SUS=susv4 html2input.sh -vFULL_DECLARATIONS=1
+# or
+# SUS=susv4 html2input.sh -vFULL_DECLARATIONS=0 -vSTDNAME=SUSv4
+# 
+# Bug in time.h.html of SUSv4:
+# It inconsistently reads "as variables" instead of "external variables" that
+# is used everywhere except in time.h.html
+
+test "x$SUS" = "x" && SUS="susv4"
+test "x$AWK" = "x" && AWK="AWK"
+test "x$GREP" = "x" && GREP="GREP"
+for h in \
+  $($GREP -l "shall be declared as functions" $SUS/basedefs/*.h.html) \
+  $($GREP -l "shall declare the following as variables" $SUS/basedefs/*.h.html) \
+  $($GREP -l "shall declare the following external variables" $SUS/basedefs/*.h.html)
+do
+$AWK $* '
+function get_filename () {
+	if (NR == 1) {
+		x=FILENAME
+		sub(".*/", "", x)
+		split(x, f , ".")
+		fname=f[1]
+		if (STDNAME)
+			fname=fname "." STDNAME
+		fname=fname ".in"
+		printf "" > fname
+	}
+}
+function unhtml (l) {
+	sub("<tt>", "", l)
+	sub("</tt>", "", l)
+	sub("<sup>", "", l)
+	sub("</sup>", "", l)
+	sub("<a [^>]*>", "", l)
+	sub("</a>", "", l)
+	if (l ~ /<img[^>]*Option[[:space:]][[:space:]]*Start[^>]*>/) {
+		sub("<img[^>]*>", "[Option Start]", l)
+	} else if (l ~ /<img[^>]*Option[[:space:]][[:space:]]*End[^>]*>/) {
+		sub("<img[^>]*>", "[Option End]", l)
+	}
+	sub("<.*>", "", l)
+	return l
+}
+function get_funcname (l) {
+	if (FULL_DECLARATIONS)
+		return l
+	if (l !~ /;$/)
+		return l
+	cnt = split(l, foo, " ")
+	if (cnt >= 2 && foo[2] ~ /^\(\*/) {
+		cnt = split(l, foo, "(")
+		# good enough for signal() and sigset()
+		if (cnt >= 2)
+			l=foo[2]
+	} else {
+		sub("\\(.*", "", l)
+	}
+	gsub("[[\\]\\*]", "", l)
+	i = split(l, a, " ")
+	if (i)
+		l = a[i]
+	return l
+}
+function get_varname (l) {
+	if (FULL_DECLARATIONS)
+		return l
+	if (l !~ /;$/)
+		return l
+	gsub(",[[:space:]][[:space:]]*", ",", l)
+	sub(";$", "", l)
+	i = split(l, a, " ")
+	if (i)
+		l = a[i]
+	gsub("[[\\]\\*]", "", l)
+	gsub(",", "\n", l)
+	return l
+}
+BEGIN{data=0;l=""}
+get_filename()
+/shall be declared as functions/{data=1;isvar=0;next;}
+/shall declare the following as variables/{data=1;isvar=1;next;}
+/shall declare the following external variables/{data=1;isvar=1;next;}
+/<pre>/{data++;next;}
+/<\/pre>/{data=0;next;}
+/.*/{
+	if (data == 2 && fname) {
+		tmp = $0
+		sub("^[[:space:]][[:space:]]*", " ", tmp)
+		l = l tmp
+		tmp = unhtml(l)
+		if (!tmp)
+			next
+		l = tmp
+		if (tmp !~ /;$/ && tmp !~ />$/ &&
+			tmp !~ /Option Start\]$/ && tmp !~ /Option End\]$/)
+			next
+		if (!isvar)
+			l = get_funcname(l)
+		else
+			l = get_varname(l)
+		if (l)
+			print l >> fname
+		l=""
+	}
+}
+' $h
+done