101e04c3fSmrg#!/usr/bin/env bash
201e04c3fSmrgset -e
301e04c3fSmrg
401e04c3fSmrgif [ -z "$srcdir" ]
501e04c3fSmrgthen
601e04c3fSmrg  srcdir=$(dirname "$0")
701e04c3fSmrgfi
801e04c3fSmrg
901e04c3fSmrg# extract enum definition
1001e04c3fSmrgdispatch_list=$(sed '/__GLXdispatchIndex/,/__GLXdispatchIndex/!d' \
1101e04c3fSmrg  "$srcdir"/../g_glxglvnddispatchindices.h)
1201e04c3fSmrg
1301e04c3fSmrg# extract values inside of enum
1401e04c3fSmrgdispatch_list=$(sed '1d;$d' <<< "$dispatch_list")
1501e04c3fSmrg
1601e04c3fSmrg# remove indentation
1701e04c3fSmrgdispatch_list=$(sed 's/^\s\+//' <<< "$dispatch_list")
1801e04c3fSmrg
1901e04c3fSmrg# extract function names
2001e04c3fSmrgdispatch_list=$(sed 's/DI_//;s/,//' <<< "$dispatch_list")
2101e04c3fSmrg
2201e04c3fSmrg# same for commented functions, we want to keep them sorted too
2301e04c3fSmrgdispatch_list=$(sed 's#// ##;s/ implemented by [a-z]\+//' <<< "$dispatch_list")
2401e04c3fSmrg
2501e04c3fSmrg# remove LAST_INDEX, as it will not be in alphabetical order
2601e04c3fSmrgdispatch_list=$(sed '/LAST_INDEX/d' <<< "$dispatch_list")
2701e04c3fSmrg
2801e04c3fSmrgsorted=$(LC_ALL=C sort <<< "$dispatch_list")
2901e04c3fSmrg
3001e04c3fSmrgtest "$dispatch_list" = "$sorted"
31