xref: /freebsd/contrib/ncurses/include/MKncurses_def.sh (revision 21817992b3314c908ab50f0bb88d2ee750b9c4ac)
118259542SPeter Wemm#! /bin/sh
2*21817992SBaptiste Daroussin# $Id: MKncurses_def.sh,v 1.5 2022/07/16 17:03:59 tom Exp $
318259542SPeter Wemm##############################################################################
4*21817992SBaptiste Daroussin# Copyright 2020,2022 Thomas E. Dickey                                       #
5e1865124SBaptiste Daroussin# Copyright 2000,2003 Free Software Foundation, Inc.                         #
618259542SPeter Wemm#                                                                            #
718259542SPeter Wemm# Permission is hereby granted, free of charge, to any person obtaining a    #
818259542SPeter Wemm# copy of this software and associated documentation files (the "Software"), #
918259542SPeter Wemm# to deal in the Software without restriction, including without limitation  #
1018259542SPeter Wemm# the rights to use, copy, modify, merge, publish, distribute, distribute    #
1118259542SPeter Wemm# with modifications, sublicense, and/or sell copies of the Software, and to #
1218259542SPeter Wemm# permit persons to whom the Software is furnished to do so, subject to the  #
1318259542SPeter Wemm# following conditions:                                                      #
1418259542SPeter Wemm#                                                                            #
1518259542SPeter Wemm# The above copyright notice and this permission notice shall be included in #
1618259542SPeter Wemm# all copies or substantial portions of the Software.                        #
1718259542SPeter Wemm#                                                                            #
1818259542SPeter Wemm# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
1918259542SPeter Wemm# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
2018259542SPeter Wemm# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
2118259542SPeter Wemm# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
2218259542SPeter Wemm# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
2318259542SPeter Wemm# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
2418259542SPeter Wemm# DEALINGS IN THE SOFTWARE.                                                  #
2518259542SPeter Wemm#                                                                            #
2618259542SPeter Wemm# Except as contained in this notice, the name(s) of the above copyright     #
2718259542SPeter Wemm# holders shall not be used in advertising or otherwise to promote the sale, #
2818259542SPeter Wemm# use or other dealings in this Software without prior written               #
2918259542SPeter Wemm# authorization.                                                             #
3018259542SPeter Wemm##############################################################################
3118259542SPeter Wemm#
3218259542SPeter Wemm# MKncurses_def.sh -- generate fallback definitions for ncurses_cfg.h
3318259542SPeter Wemm#
344a1a9510SRong-En Fan# Author: Thomas E. Dickey 2000
3518259542SPeter Wemm#
3618259542SPeter Wemm# Given the choice between constructs such as
3718259542SPeter Wemm#
3818259542SPeter Wemm#	#if defined(foo) && foo
3918259542SPeter Wemm#	#if foo
4018259542SPeter Wemm#
4118259542SPeter Wemm# we chose the latter.  It is guaranteed by the language standard, and there
4218259542SPeter Wemm# appear to be no broken compilers that do not honor that detail.  But some
4318259542SPeter Wemm# people want to use gcc's -Wundef option (corresponding to one of the less
4418259542SPeter Wemm# useful features in Watcom's compiler) to check for misspellings.  So we
4518259542SPeter Wemm# generate a set of fallback definitions to quiet the warnings without making
4618259542SPeter Wemm# the code ugly.
4718259542SPeter Wemm#
4818259542SPeter WemmDEFS="${1-ncurses_defs}"
4918259542SPeter Wemmcat <<EOF
5018259542SPeter Wemm/*
5118259542SPeter Wemm * This file is generated by $0
5218259542SPeter Wemm */
5318259542SPeter Wemm
5418259542SPeter Wemm#ifndef NC_DEFINE_H
5518259542SPeter Wemm#define NC_DEFINE_H 1
5618259542SPeter Wemm
5718259542SPeter WemmEOF
5818259542SPeter Wemm
59*21817992SBaptiste Daroussin"${AWK-awk}" <"$DEFS" '
6018259542SPeter Wemm!/^[@#]/ {
6118259542SPeter Wemm	if ( NF == 1 )
6218259542SPeter Wemm	{
6318259542SPeter Wemm		print "#ifndef", $1
6418259542SPeter Wemm		print "#define", $1, "0"
6518259542SPeter Wemm		print "#endif"
6618259542SPeter Wemm		print ""
6718259542SPeter Wemm	} else if ( NF != 0 ) {
6818259542SPeter Wemm		print "#ifndef", $1
6918259542SPeter Wemm		printf "#define"
7018259542SPeter Wemm		for (n = 1; n <= NF; n++) {
7118259542SPeter Wemm			printf " %s", $n
7218259542SPeter Wemm		}
7318259542SPeter Wemm		print ""
7418259542SPeter Wemm		print "#endif"
7518259542SPeter Wemm		print ""
7618259542SPeter Wemm	}
7718259542SPeter Wemm}
7818259542SPeter WemmEND	{
7918259542SPeter Wemmprint "#endif /* NC_DEFINE_H */"
8018259542SPeter Wemm	}
8118259542SPeter Wemm'
82