changeset 6177:ed54dc50aeaf draft

(svn r8948) -Change: some sed implementations have problems with \n so rewrite r8832 using awk
author glx <glx@openttd.org>
date Wed, 28 Feb 2007 23:52:04 +0000
parents 863c86137fc1
children e9cecfb299c6
files projects/generate
diffstat 1 files changed, 19 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/projects/generate
+++ b/projects/generate
@@ -130,27 +130,33 @@
 generate() {
 	echo "Generating $2..."
 	# Everything above the !!FILES!! marker
-	RES="`cat \"$ROOT_DIR/projects/$2\".in | tr '\r' '\n' | awk '
+	cat "$ROOT_DIR/projects/$2".in | tr '\r' '\n' | awk '
 		/^$/ { next }
 		/!!FILES!!/ { stop = 1; }
 		{
 			if (stop == 0) { print $0 }
 		}
-	' > \"$ROOT_DIR/projects/$2\"`"
+	' > "$ROOT_DIR/projects/$2"
 
 	# The files-list
-	if [ "$3" = "msvc2003" ]; then
-		echo "$1" | sed 's@\&#x0D;\&#x0A;@\n@' >> "$ROOT_DIR/projects/$2"
-	else
-		echo "$1" | sed '
-			s@Filter="">@>@;
-			s@^\([	]*\)\([^	<].*[^/]\)>$@\1\2\n\1>@g;
-			s@^	\([	]*\)\([^	<].*\)/>$@	\1\2\n\1/>@g;
-		' >> "$ROOT_DIR/projects/$2"
-	fi
+	echo "$1" | awk -v type="$3" '
+		/&#x0D;&#x0A;/ {
+			if (type == "msvc2003") gsub("&#x0D;&#x0A;", "\n", $0);
+		}
+		/Filter="">/ {
+			if (type == "msvc2005") gsub("Filter=\"\">", ">", $0);
+		}
+		/"\/>/ {
+			if (type == "msvc2005") gsub("/>", "\n" substr($0, 1, index($0, $1) - 2) "/>", $0);
+		}
+		/">/ {
+			if (type == "msvc2005") gsub(">", "\n" substr($0, 1, index($0, $1) - 1) ">", $0);
+		}
+		{ print $0 }
+	' >> "$ROOT_DIR/projects/$2"
 
 	# Everything below the !!FILES!! marker
-	RES="`cat \"$ROOT_DIR/projects/$2\".in | tr '\r' '\n' | awk '
+	cat "$ROOT_DIR/projects/$2".in | tr '\r' '\n' | awk '
 		BEGIN { stop = 1; }
 		/^$/ { next }
 		/!!FILES!!/ { stop = 2; }
@@ -158,7 +164,7 @@
 			if (stop == 0) { print $0 }
 			if (stop == 2) { stop = 0 }
 		}
-	' >> \"$ROOT_DIR/projects/$2\"`"
+	' >> "$ROOT_DIR/projects/$2"
 }
 
 load_main_data "$ROOT_DIR/source.list" openttd