genman revision 1.1
11.1Sroy#!/bin/sh 21.1Sroy# $NetBSD: genman,v 1.1 2010/02/03 15:16:32 roy Exp $ 31.1Sroy 41.1Sroy# Copyright (c) 2009 The NetBSD Foundation, Inc. 51.1Sroy# 61.1Sroy# This code is derived from software contributed to The NetBSD Foundation 71.1Sroy# by Roy Marples. 81.1Sroy# 91.1Sroy# Redistribution and use in source and binary forms, with or without 101.1Sroy# modification, are permitted provided that the following conditions 111.1Sroy# are met: 121.1Sroy# 1. Redistributions of source code must retain the above copyright 131.1Sroy# notice, this list of conditions and the following disclaimer. 141.1Sroy# 2. Redistributions in binary form must reproduce the above copyright 151.1Sroy# notice, this list of conditions and the following disclaimer in the 161.1Sroy# documentation and/or other materials provided with the distribution. 171.1Sroy# 181.1Sroy# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 191.1Sroy# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 201.1Sroy# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 211.1Sroy# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 221.1Sroy# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 231.1Sroy# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 241.1Sroy# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 251.1Sroy# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 261.1Sroy# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 271.1Sroy# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 281.1Sroy 291.1Sroy 301.1Sroy# Generate variable tables for terminfo.5 from our source files. 311.1Sroy 321.1Sroy: ${TOOL_SED:=sed} 331.1Sroy: ${TOOL_SORT:=sort} 341.1Sroy 351.1SroyTERMM=${1:-terminfo.5.in} 361.1SroyTERMH=${2:-term.h} 371.1SroyTERMC=${3:-termcap_map.c} 381.1Sroy 391.1Sroygentab() 401.1Sroy{ 411.1Sroy local ti=$1 tc=$2 tab=$3 421.1Sroy 431.1Sroy # Generate a list of long names and codes 441.1Sroy $TOOL_SED -n \ 451.1Sroy -e "s/#define t_\([^(]*\).*>$tab\[TICODE_\([^]]*\).*/\1 \2/p" \ 461.1Sroy $ti | $TOOL_SORT | while read name code foo; do 471.1Sroy cap=`$TOOL_SED -ne "s/.*{ \"\(..\)\", TICODE_$code }.*/\1/p" $tc | 481.1Sroy head -n 1` 491.1Sroy echo ".It Li \"$name\" Ta Sy \"\\&$code\" Ta Sy \"\\&$cap\"" 501.1Sroy done 511.1Sroy} 521.1Sroy 531.1Sroyboolcaps=`gentab $TERMH $TERMC flags` 541.1Sroynumcaps=`gentab $TERMH $TERMC nums` 551.1Sroystrcaps=`gentab $TERMH $TERMC strs` 561.1Sroy 571.1Sroywhile read -r line; do 581.1Sroy case "$line" in 591.1Sroy "@BOOLCAPS@") echo "$boolcaps";; 601.1Sroy "@NUMCAPS@") echo "$numcaps";; 611.1Sroy "@STRCAPS@") echo "$strcaps";; 621.1Sroy *) echo "$line";; 631.1Sroy esac 641.1Sroydone <$TERMM 65