mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
		
			577 B
		
	
	
	
		
			Awk
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			577 B
		
	
	
	
		
			Awk
		
	
	
	
	
	
# Copyright (C) 2006 OpenWrt.org
 | 
						|
 | 
						|
{
 | 
						|
	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
 | 
						|
}
 | 
						|
 | 
						|
($1 !~ /^@[a-zA-Z0-9_]/) && (noprint != 1) {
 | 
						|
	n=split(line "@@", a, /@@/)
 | 
						|
	for (i=1; i<=n; i++) {
 | 
						|
		if ((i % 2) == 1) printf "%s" a[i]
 | 
						|
		else printf "%s" v[a[i]]
 | 
						|
	}
 | 
						|
	print ""
 | 
						|
}
 | 
						|
 | 
						|
$1 == "@endif" {
 | 
						|
	if_open = 0
 | 
						|
	noprint = 0
 | 
						|
}
 |