You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
577 B
43 lines
577 B
19 years ago
|
# Copyright (C) 2006 OpenWrt.org
|
||
|
|
||
19 years ago
|
{
|
||
|
line=$0
|
||
|
gsub(/^[ \t]*/, "")
|
||
|
gsub(/[ \t]*$/, "")
|
||
|
}
|
||
|
|
||
|
$1 == "@define" {
|
||
|
v[$2] = $3
|
||
|
}
|
||
|
|
||
|
$1 == "@ifdef" {
|
||
|
if_open = 1
|
||
|
if (v[$2] != "") noprint = 0
|
||
|
else noprint = 1
|
||
|
}
|
||
|
|
||
|
$1 == "@ifndef" {
|
||
|
if_open = 1
|
||
|
if (v[$2] != "") noprint = 1
|
||
|
else noprint = 0
|
||
|
}
|
||
|
|
||
|
$1 == "@else" {
|
||
|
if (noprint == 1) noprint = 0
|
||
|
else noprint = 1
|
||
|
}
|
||
|
|
||
18 years ago
|
($1 !~ /^@[a-zA-Z0-9_]/) && (noprint != 1) {
|
||
19 years ago
|
n=split(line "@@", a, /@@/)
|
||
|
for (i=1; i<=n; i++) {
|
||
18 years ago
|
if ((i % 2) == 1) printf "%s" a[i]
|
||
|
else printf "%s" v[a[i]]
|
||
19 years ago
|
}
|
||
|
print ""
|
||
|
}
|
||
|
|
||
|
$1 == "@endif" {
|
||
|
if_open = 0
|
||
|
noprint = 0
|
||
|
}
|