xref: /freebsd/contrib/ncurses/progs/MKtermsort.sh (revision 0e3d540892016a47f6a68ec9ba2879d35ce5f7c2)
10e3d5408SPeter Wemm#!/bin/sh
20e3d5408SPeter Wemm#
30e3d5408SPeter Wemm# MKtermsort.sh -- generate indirection vectors for the various sort methods
40e3d5408SPeter Wemm#
50e3d5408SPeter Wemm# The output of this script is C source for nine arrays that list three sort
60e3d5408SPeter Wemm# orders for each of the three different classes of terminfo capabilities.
70e3d5408SPeter Wemm#
80e3d5408SPeter WemmAWK=${1-awk}
90e3d5408SPeter WemmDATA=${2-../include/Caps}
100e3d5408SPeter Wemm
110e3d5408SPeter Wemmecho "/*";
120e3d5408SPeter Wemmecho " * termsort.c --- sort order arrays for use by infocmp.";
130e3d5408SPeter Wemmecho " *";
140e3d5408SPeter Wemmecho " * Note: this file is generated using termsort.sh, do not edit by hand.";
150e3d5408SPeter Wemmecho " */";
160e3d5408SPeter Wemm
170e3d5408SPeter Wemmecho "static const int bool_terminfo_sort[] = {";
180e3d5408SPeter Wemm$AWK <$DATA '
190e3d5408SPeter WemmBEGIN           {i = 0;}
200e3d5408SPeter Wemm/^#/            {next;}
210e3d5408SPeter Wemm$3 == "bool"    {printf("%s\t%d\n", $2, i++);}
220e3d5408SPeter Wemm' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
230e3d5408SPeter Wemmecho "};";
240e3d5408SPeter Wemmecho "";
250e3d5408SPeter Wemm
260e3d5408SPeter Wemmecho "static const int num_terminfo_sort[] = {";
270e3d5408SPeter Wemm$AWK <$DATA '
280e3d5408SPeter WemmBEGIN           {i = 0;}
290e3d5408SPeter Wemm/^#/            {next;}
300e3d5408SPeter Wemm$3 == "num"     {printf("%s\t%d\n", $2, i++);}
310e3d5408SPeter Wemm' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
320e3d5408SPeter Wemmecho "};";
330e3d5408SPeter Wemmecho "";
340e3d5408SPeter Wemm
350e3d5408SPeter Wemmecho "static const int str_terminfo_sort[] = {";
360e3d5408SPeter Wemm$AWK <$DATA '
370e3d5408SPeter WemmBEGIN           {i = 0;}
380e3d5408SPeter Wemm/^#/            {next;}
390e3d5408SPeter Wemm$3 == "str"     {printf("%s\t%d\n", $2, i++);}
400e3d5408SPeter Wemm' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
410e3d5408SPeter Wemmecho "};";
420e3d5408SPeter Wemmecho "";
430e3d5408SPeter Wemm
440e3d5408SPeter Wemmecho "static const int bool_variable_sort[] = {";
450e3d5408SPeter Wemm$AWK <$DATA '
460e3d5408SPeter WemmBEGIN           {i = 0;}
470e3d5408SPeter Wemm/^#/            {next;}
480e3d5408SPeter Wemm$3 == "bool"    {printf("%s\t%d\n", $1, i++);}
490e3d5408SPeter Wemm' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
500e3d5408SPeter Wemmecho "};";
510e3d5408SPeter Wemmecho "";
520e3d5408SPeter Wemm
530e3d5408SPeter Wemmecho "static const int num_variable_sort[] = {";
540e3d5408SPeter Wemm$AWK <$DATA '
550e3d5408SPeter WemmBEGIN           {i = 0;}
560e3d5408SPeter Wemm/^#/            {next;}
570e3d5408SPeter Wemm$3 == "num"     {printf("%s\t%d\n", $1, i++);}
580e3d5408SPeter Wemm' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
590e3d5408SPeter Wemmecho "};";
600e3d5408SPeter Wemmecho "";
610e3d5408SPeter Wemm
620e3d5408SPeter Wemmecho "static const int str_variable_sort[] = {";
630e3d5408SPeter Wemm$AWK <$DATA '
640e3d5408SPeter WemmBEGIN           {i = 0;}
650e3d5408SPeter Wemm/^#/            {next;}
660e3d5408SPeter Wemm$3 == "str"     {printf("%s\t%d\n", $1, i++);}
670e3d5408SPeter Wemm' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
680e3d5408SPeter Wemmecho "};";
690e3d5408SPeter Wemmecho "";
700e3d5408SPeter Wemm
710e3d5408SPeter Wemmecho "static const int bool_termcap_sort[] = {";
720e3d5408SPeter Wemm$AWK <$DATA '
730e3d5408SPeter WemmBEGIN           {i = 0;}
740e3d5408SPeter Wemm/^#/            {next;}
750e3d5408SPeter Wemm$3 == "bool"    {printf("%s\t%d\n", $4, i++);}
760e3d5408SPeter Wemm' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
770e3d5408SPeter Wemmecho "};";
780e3d5408SPeter Wemmecho "";
790e3d5408SPeter Wemm
800e3d5408SPeter Wemmecho "static const int num_termcap_sort[] = {";
810e3d5408SPeter Wemm$AWK <$DATA '
820e3d5408SPeter WemmBEGIN           {i = 0;}
830e3d5408SPeter Wemm/^#/            {next;}
840e3d5408SPeter Wemm$3 == "num"     {printf("%s\t%d\n", $4, i++);}
850e3d5408SPeter Wemm' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
860e3d5408SPeter Wemmecho "};";
870e3d5408SPeter Wemmecho "";
880e3d5408SPeter Wemm
890e3d5408SPeter Wemmecho "static const int str_termcap_sort[] = {";
900e3d5408SPeter Wemm$AWK <$DATA '
910e3d5408SPeter WemmBEGIN           {i = 0;}
920e3d5408SPeter Wemm/^#/            {next;}
930e3d5408SPeter Wemm$3 == "str"     {printf("%s\t%d\n", $4, i++);}
940e3d5408SPeter Wemm' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
950e3d5408SPeter Wemmecho "};";
960e3d5408SPeter Wemmecho "";
970e3d5408SPeter Wemm
980e3d5408SPeter Wemmecho "static const int bool_from_termcap[] = {";
990e3d5408SPeter Wemm$AWK <$DATA '
1000e3d5408SPeter Wemm$3 == "bool" && substr($5, 1, 1) == "-"       {print "0,\t/* ", $2, " */";}
1010e3d5408SPeter Wemm$3 == "bool" && substr($5, 1, 1) == "Y"       {print "1,\t/* ", $2, " */";}
1020e3d5408SPeter Wemm'
1030e3d5408SPeter Wemmecho "};";
1040e3d5408SPeter Wemmecho "";
1050e3d5408SPeter Wemm
1060e3d5408SPeter Wemmecho "static const int num_from_termcap[] = {";
1070e3d5408SPeter Wemm$AWK <$DATA '
1080e3d5408SPeter Wemm$3 == "num" && substr($5, 1, 1) == "-"        {print "0,\t/* ", $2, " */";}
1090e3d5408SPeter Wemm$3 == "num" && substr($5, 1, 1) == "Y"        {print "1,\t/* ", $2, " */";}
1100e3d5408SPeter Wemm'
1110e3d5408SPeter Wemmecho "};";
1120e3d5408SPeter Wemmecho "";
1130e3d5408SPeter Wemm
1140e3d5408SPeter Wemmecho "static const int str_from_termcap[] = {";
1150e3d5408SPeter Wemm$AWK <$DATA '
1160e3d5408SPeter Wemm$3 == "str" && substr($5, 1, 1) == "-"        {print "0,\t/* ", $2, " */";}
1170e3d5408SPeter Wemm$3 == "str" && substr($5, 1, 1) == "Y"        {print "1,\t/* ", $2, " */";}
1180e3d5408SPeter Wemm'
1190e3d5408SPeter Wemmecho "};";
1200e3d5408SPeter Wemmecho "";
1210e3d5408SPeter Wemm
122