diff options
Diffstat (limited to 'nx-X11/lib/Xaw/genlist.sh')
-rw-r--r-- | nx-X11/lib/Xaw/genlist.sh | 41 |
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 |