blob: 0072be2cd35d55f30a2633a26b6ef4bab54679bd [file] [log] [blame]
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301#! /bin/sh
2##############################################################################
micky3879b9f5e72025-07-08 18:04:53 -04003# Copyright 2019-2020,2021 Thomas E. Dickey #
4# Copyright 1998-2015,2017 Free Software Foundation, Inc. #
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305# #
6# Permission is hereby granted, free of charge, to any person obtaining a #
7# copy of this software and associated documentation files (the "Software"), #
8# to deal in the Software without restriction, including without limitation #
9# the rights to use, copy, modify, merge, publish, distribute, distribute #
10# with modifications, sublicense, and/or sell copies of the Software, and to #
11# permit persons to whom the Software is furnished to do so, subject to the #
12# following conditions: #
13# #
14# The above copyright notice and this permission notice shall be included in #
15# all copies or substantial portions of the Software. #
16# #
17# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
18# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
19# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
20# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
21# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
22# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
23# DEALINGS IN THE SOFTWARE. #
24# #
25# Except as contained in this notice, the name(s) of the above copyright #
26# holders shall not be used in advertising or otherwise to promote the sale, #
27# use or other dealings in this Software without prior written #
28# authorization. #
29##############################################################################
30#
Steve Kondikae271bc2015-11-15 02:50:53 +010031# Author: Thomas E. Dickey, 1997-on
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053032#
micky3879b9f5e72025-07-08 18:04:53 -040033# $Id: MKexpanded.sh,v 1.24 2022/02/05 17:27:18 tom Exp $
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053034#
35# Script to generate 'expanded.c', a dummy source that contains functions
36# corresponding to complex macros used in this library. By making functions,
37# we simplify analysis and debugging.
38
39if test $# != 0; then
40preprocessor="$1"
41else
42preprocessor="cc -E"
43fi
44shift
45if test $# != 0 ; then
46 preprocessor="$preprocessor $*"
47else
48 preprocessor="$preprocessor -DHAVE_CONFIG_H -I. -I../include"
49fi
50
51TMP=gen$$.c
micky3879b9f5e72025-07-08 18:04:53 -040052trap "rm -f $TMP; exit 1" 1 2 3 15
53trap "rm -f $TMP" 0
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053054
55cat <<EOF
56/* generated by MKexpanded.sh */
Steve Kondikae271bc2015-11-15 02:50:53 +010057#define NEED_NCURSES_CH_T 1
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053058#include <curses.priv.h>
Steve Kondikae271bc2015-11-15 02:50:53 +010059
60#ifndef CUR
61#define CUR SP_TERMTYPE
62#endif
63
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053064#if NCURSES_EXPANDED
65EOF
66
67cat >$TMP <<EOF
68#include <ncurses_cfg.h>
69#undef NCURSES_EXPANDED /* this probably is set in ncurses_cfg.h */
70#include <curses.priv.h>
71/* these are names we'd like to see */
72#undef ALL_BUT_COLOR
73#undef PAIR_NUMBER
74#undef TRUE
75#undef FALSE
76/* this is a marker */
77IGNORE
Steve Kondikae271bc2015-11-15 02:50:53 +010078NCURSES_EXPORT(void)
79_nc_toggle_attr_on (attr_t *S, attr_t at)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053080{
81 toggle_attr_on(*S,at);
82}
Steve Kondikae271bc2015-11-15 02:50:53 +010083
84NCURSES_EXPORT(void)
micky3879b9f5e72025-07-08 18:04:53 -040085_nc_toggle_attr_off (attr_t *S, attr_t at)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053086{
87 toggle_attr_off(*S,at);
88}
Steve Kondikae271bc2015-11-15 02:50:53 +010089
90NCURSES_EXPORT(int)
91NCURSES_SP_NAME(_nc_DelCharCost) (NCURSES_SP_DCLx int count)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053092{
Steve Kondikae271bc2015-11-15 02:50:53 +010093 return DelCharCost(SP_PARM, count);
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053094}
Steve Kondikae271bc2015-11-15 02:50:53 +010095
96NCURSES_EXPORT(int)
97NCURSES_SP_NAME(_nc_InsCharCost) (NCURSES_SP_DCLx int count)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053098{
Steve Kondikae271bc2015-11-15 02:50:53 +010099 return InsCharCost(SP_PARM, count);
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530100}
Steve Kondikae271bc2015-11-15 02:50:53 +0100101
102NCURSES_EXPORT(void)
103NCURSES_SP_NAME(_nc_UpdateAttrs) (NCURSES_SP_DCLx CARG_CH_T c)
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530104{
Steve Kondikae271bc2015-11-15 02:50:53 +0100105 UpdateAttrs(SP_PARM, CHDEREF(c));
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530106}
Steve Kondikae271bc2015-11-15 02:50:53 +0100107
108@if_NCURSES_SP_FUNCS
109NCURSES_EXPORT(int)
110_nc_DelCharCost (int count)
111{
112 return NCURSES_SP_NAME(_nc_DelCharCost) (CURRENT_SCREEN, count);
113}
114
115NCURSES_EXPORT(int)
116_nc_InsCharCost (int count)
117{
118 return NCURSES_SP_NAME(_nc_InsCharCost)(CURRENT_SCREEN, count);
119}
120
121NCURSES_EXPORT(void)
122_nc_UpdateAttrs (CARG_CH_T c)
123{
124 NCURSES_SP_NAME(_nc_UpdateAttrs)(CURRENT_SCREEN,c);
125}
126@endif
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530127EOF
128
Steve Kondikae271bc2015-11-15 02:50:53 +0100129$preprocessor $TMP 2>/dev/null | \
micky3879b9f5e72025-07-08 18:04:53 -0400130 sed -e '1,/^IGNORE$/d' -e 's/^@/#/' -e 's/^#[ ]*if_/#if /' -e "s,$TMP,expanded.c,"
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530131
132cat <<EOF
133#else /* ! NCURSES_EXPANDED */
134NCURSES_EXPORT(void) _nc_expanded (void) { }
135#endif /* NCURSES_EXPANDED */
136EOF