summaryrefslogtreecommitdiffstats
path: root/contrib/fixinc/fixincl.tpl
blob: 04b67ab537729bbe2d4b50f44cd846ff257550ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
[= autogen template -*- Mode: C -*-
x =]
/*
[= _eval "# * " _DNE =]
 *
 * Install modified versions of certain ANSI-incompatible system header
 * files which are fixed to work correctly with ANSI C and placed in a
 * directory that GNU C will search.
 *
 * This script contains [=_eval fix _hilim 1 +=] fixup scripts.
 *
 * See README-fixinc for more information.
 *
[=_eval inclhack "# *  " _gpl=]
 *[=


_FOR fix =]
 *
 *  Description [=_eval _index 1 + "#%3d -" _printf=] [=hackname _Cap=] fix
 */
tSCC z[=hackname _cap=]Name[] =
     [=hackname _cap _str=];
/*
 *  File name selection pattern
 */[=

  _IF files _exist=]
tSCC z[=hackname _cap=]List[] =[=
    _FOR files=]
        "|" [=files _str=][=
    /files=] "|";[=

  _ELSE =]
#define z[=hackname _cap=]List (char*)NULL[=
  _ENDIF "files _exist" =]
/*
 *  Machine/OS name selection pattern
 */[=

  _IF mach _exist=]
tSCC* apz[=hackname _cap=]Machs[] = {[=
    _FOR mach =]
        [=mach _str=],[=
    /mach=]
        (const char*)NULL };[=

  _ELSE =]
#define apz[=hackname _cap=]Machs (const char**)NULL[=
  _ENDIF "files _exist" =][=

  _IF exesel _exist=]

/*
 *  content selection pattern
 */[=
    _FOR exesel =]
tSCC z[=hackname _cap=]Select[=_eval _index=][] =
       [=exesel _str=];[=
    /exesel =][=

  _ELIF select _exist=]

/*
 *  content selection pattern
 */[=
    _FOR select =]
tSCC z[=hackname _cap=]Select[=_eval _index=][] =
       [=select _str=];[=
    /select =][=
  _ENDIF =][=

  _IF bypass _exist=]

/*
 *  content bypass pattern
 */[=
    _FOR bypass =]
tSCC z[=hackname _cap=]Bypass[=_eval _index=][] =
       [=bypass _str=];[=
    /bypass =][=
  _ENDIF =][=

  _IF test _exist=]

/*
 *  content test pattern.  A shell will deal with it later.
 */[=
    _FOR test =]
tSCC z[=hackname _cap=]Test[=_eval _index=][] =
       [=test _str=];[=
    /test =][=
  _ENDIF =][=

  _IF exesel _exist select _exist bypass _exist test _exist | | |
=]

#define    [=hackname _up =]_TEST_CT  [=
    _IF exesel _exist =][=
       _eval test _count bypass _count exesel _count + + =][=
    _ELSE =][=
       _eval test _count bypass _count select _count + + =][=
    _ENDIF =]
tTestDesc a[=hackname _cap=]Tests[] = {[=

    _IF test _exist =][=
      _FOR test=]
    { TT_TEST,   z[=hackname _cap=]Test[=_eval _index=], 0 /* unused */ },[=
      /test =][=
    _ENDIF =][=

    _IF bypass _exist =][=
      _FOR bypass=]
    { TT_NEGREP, z[=hackname _cap=]Bypass[=_eval _index=], (regex_t*)NULL },[=
      /bypass =][=
    _ENDIF =][=

    _IF exesel _exist =][=
      _FOR exesel ,=]
    { TT_EGREP,  z[=hackname _cap=]Select[=_eval _index=], (regex_t*)NULL }[=
      /exesel =][=

    _ELIF select _exist =][=
      _FOR select ,=]
    { TT_EGREP,  z[=hackname _cap=]Select[=_eval _index=], (regex_t*)NULL }[=
      /select =][=
    _ENDIF =] };[=
  _ELSE =]
#define [=hackname _up=]_TEST_CT  0
#define a[=hackname _cap=]Tests   (tTestDesc*)NULL[=
  _ENDIF =]

/*
 *  Fix Command Arguments for [=hackname _cap=]
 */
const char* apz[=hackname _cap=]Patch[] = {[=
    _IF   sed         _exist =] "sed"[=_FOR sed=],
    "-e" [=sed _str=][=/sed=][=
    _ELIF replacement _exist =] "sed",
    "s@[=select[]=]@[=replacement=]@"[=
    _ELIF shell       _exist =] "sh", "-c",
    [=shell _str=][=
    _ELSE =][=_ERROR hackname _get "Error:  %s has two fixup specifications"
                 _printf =][=
    _ENDIF=],
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *[=
/fix=]
 *
 *  List of all fixes
 */
#define  REGEX_COUNT  [=_eval fix.select _count
                              fix.bypass _count + =]
#define  FIX_COUNT    [=_eval fix _count =]
tFixDesc fixDescList[ [=_eval fix _count =] ] = {[=


_FOR fix ",\n" =]
  {  z[=hackname _cap=]Name,    z[=hackname _cap=]List,
     apz[=hackname _cap=]Machs, (regex_t*)NULL,
     [=hackname  _up=]_TEST_CT, [=
       _IF not_machine _exist =]FD_MACH_IFNOT[=
       _ELSE                  =]FD_MACH_ONLY[=
       _ENDIF =],
     a[=hackname _cap=]Tests,   apz[=hackname _cap=]Patch }[=

/fix=]
};
OpenPOWER on IntegriCloud