1b8e80941Smrg#!/usr/bin/env bash
2b8e80941Smrgset -e
3b8e80941Smrg
4b8e80941Smrgif [ -z "$srcdir" ]
5b8e80941Smrgthen
6b8e80941Smrg  srcdir=$(dirname "$0")
7b8e80941Smrgfi
8b8e80941Smrg
9b8e80941Smrg# extract enum definition
10b8e80941Smrgdispatch_list=$(sed '/__GLXdispatchIndex/,/__GLXdispatchIndex/!d' \
11b8e80941Smrg  "$srcdir"/../g_glxglvnddispatchindices.h)
12b8e80941Smrg
13b8e80941Smrg# extract values inside of enum
14b8e80941Smrgdispatch_list=$(sed '1d;$d' <<< "$dispatch_list")
15b8e80941Smrg
16b8e80941Smrg# remove indentation
17b8e80941Smrgdispatch_list=$(sed 's/^\s\+//' <<< "$dispatch_list")
18b8e80941Smrg
19b8e80941Smrg# extract function names
20b8e80941Smrgdispatch_list=$(sed 's/DI_//;s/,//' <<< "$dispatch_list")
21b8e80941Smrg
22b8e80941Smrg# same for commented functions, we want to keep them sorted too
23b8e80941Smrgdispatch_list=$(sed 's#// ##;s/ implemented by [a-z]\+//' <<< "$dispatch_list")
24b8e80941Smrg
25b8e80941Smrg# remove LAST_INDEX, as it will not be in alphabetical order
26b8e80941Smrgdispatch_list=$(sed '/LAST_INDEX/d' <<< "$dispatch_list")
27b8e80941Smrg
28b8e80941Smrgsorted=$(LC_ALL=C sort <<< "$dispatch_list")
29b8e80941Smrg
30b8e80941Smrgtest "$dispatch_list" = "$sorted"
31