genlist.sh 929 Bytes
Newer Older
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
#!/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