Index: trunk/mkstructinfo.awk
===================================================================
--- trunk/mkstructinfo.awk	(revision 52)
+++ trunk/mkstructinfo.awk	(revision 169)
@@ -4,4 +4,7 @@
 	brace = 0;
 	buffer_len = 0;
+}
+/^#/ {
+	next;
 }
 /^}.*;/ {
@@ -51,4 +54,5 @@
 {
 	if (brace == 1 && instruct) {
+		gsub(/\/\*(.+?)\*\//, " "); # removes one line comment
 		sub(/.*[{}]/, "");
 		gsub(/\[[^\]]+\]/, ""); # ignore [...]
@@ -69,13 +73,18 @@
 				next;
 			}
+			# unsigned int *a,  b; int c;
 			gsub(/[*]/, " ");
+			# unsigned int a,  b; int c;
 			gsub(/ +/, " ");
+			# unsigned int a, b; int c;
 			gsub(/ *[,;]/, ";");
+			# unsigned int a; b; int c;
 			if (!match($0, /;/)) {
 				next;
 			}
 			split($0, chunks, ";");
-			# get var of "int *var, var;" etc
-			for (i in chunks) {
+			# [unsigned int a, b, c]
+
+			for (i = 1; i in chunks; i ++) {
 				if (chunks[i] == "") {
 					delete chunks[i];
@@ -83,16 +92,25 @@
 				}
 				split(chunks[i], pieces, " ");
+				# [unsigned, int, a]
+				# [b]
+				# [c]
 
-				for (j in pieces) {
+				last_piece = "";
+				for (j = 1; j in pieces; j ++) {
 					last_piece = pieces[j];
-					delete pieces[i];
+					delete pieces[j];
 				}
 				if (last_piece == "") {
 					print "=====" chunks[i];
 				}
+				# a
+				# b
+				# c
+
 				buffer[buffer_len] = last_piece;
 				buffer_len ++;
-				delete chunks[i];
+				delete chunks[i]
 			}
+			last_piece = "";
 		}
 		next;
