mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-04 06:00:15 +00:00
33 lines
1.2 KiB
Awk
33 lines
1.2 KiB
Awk
|
# $Id$
|
||
|
|
||
|
# This file is part of OpenTTD.
|
||
|
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||
|
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||
|
# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||
|
|
||
|
BEGIN {
|
||
|
# Very basic variant function; barely any error checking.
|
||
|
# Just use the first argument as the file to start from when assembling everything
|
||
|
path = ARGV[1];
|
||
|
gsub("[^/\\\\]*$", "", path);
|
||
|
assemble(ARGV[1]);
|
||
|
}
|
||
|
|
||
|
# Recursive function for assembling by means of resolving the #includes.
|
||
|
function assemble(filename) {
|
||
|
while ((getline < filename) > 0) {
|
||
|
if (NF == 2 && $1 == "#include" ) {
|
||
|
# Remove the quotes.
|
||
|
gsub("[\"'<>]", "", $2);
|
||
|
assemble(path $2);
|
||
|
} else {
|
||
|
print $0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (close(filename) < 0) {
|
||
|
print "Could not open " filename > "/dev/stderr";
|
||
|
exit -1;
|
||
|
}
|
||
|
}
|