aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/Xaw/genlist.sh
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/lib/Xaw/genlist.sh')
-rw-r--r--nx-X11/lib/Xaw/genlist.sh41
1 files changed, 41 insertions, 0 deletions
diff --git a/nx-X11/lib/Xaw/genlist.sh b/nx-X11/lib/Xaw/genlist.sh
new file mode 100644
index 000000000..e920337fd
--- /dev/null
+++ b/nx-X11/lib/Xaw/genlist.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+tmp=/tmp/gl.$$
+nm $* | egrep '(Widget|Obj|Object)Class' | \
+awk '{ if ($2 == "D" || $2 == "G") print $3; }' | sed -e 's/^_//' | \
+(cat - ; echo "objectClass") | sort -u | egrep -v 'ClassRec$' | \
+egrep -v 'vPanedWidgetClass$' | \
+egrep -v 'ascii(Disk|String)WidgetClass$' | \
+awk '
+{
+ printf "extern WidgetClass %s;\n", $1;
+ printf "{ \"%s\", &%s },\n", $1, $1;
+}' | sed -e 's/WidgetClass"/"/' -e 's/ObjClass"/"/' \
+ -e 's/ObjectClass"/"/' -e 's/objectClass"/object"/' \
+ -e 's/widgetClass"/widget"/' >$tmp
+
+cat <<EOF
+/*
+ * This file is generated by the genlist.sh script and contains an array of
+ * all the widgets in Athena widget set.
+ *
+ * \$XConsortium\$
+ */
+#include <X11/IntrinsicP.h>
+#include <X11/Xmu/WidgetNode.h>
+
+EOF
+egrep '^extern WidgetClass' $tmp
+echo ""
+cat <<EOF
+XmuWidgetNode XawWidgetArray[] = {
+EOF
+egrep '^{' $tmp
+cat <<EOF
+};
+
+int XawWidgetCount = XtNumber(XawWidgetArray);
+
+EOF
+
+rm $tmp