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