[GDB] Hurd: Robustify the reply_mig_hack.awk script.
authorThomas Schwinge <thomas@codesourcery.com>
Sun, 19 Apr 2015 22:31:54 +0000 (00:31 +0200)
committerThomas Schwinge <thomas@codesourcery.com>
Sun, 19 Apr 2015 22:31:54 +0000 (00:31 +0200)
..., so that it also works with the GNU MIG 1.5 just released.

gdb/
* reply_mig_hack.awk: Robustify parsing.

gdb/ChangeLog
gdb/reply_mig_hack.awk

index 093686f6fa99feef4310c2078958d9fe787065c0..4bca7d6fdd9b75e1b5bf3d42b885ab98a687a722 100644 (file)
@@ -1,5 +1,7 @@
 2015-04-20  Thomas Schwinge  <thomas@codesourcery.com>
 
+       * reply_mig_hack.awk: Robustify parsing.
+
        * reply_mig_hack.awk: Don't bother to declare an intermediate
        function pointer variable.
 
index 7eab5042f4c69339fb34de29f11c54a552ff3efe..b731115994b21bb28973ff292d64c2c7b81025ce 100644 (file)
@@ -49,7 +49,7 @@ parse_phase == 2 {
   print; next;
 }
 
-parse_phase == 3 && /}/ {
+parse_phase == 3 && /} Request/ {
   # The args structure is over.
   if (num_args > 1)
     parse_phase = 5;
@@ -62,6 +62,9 @@ parse_phase == 3 && /}/ {
 
 parse_phase == 3 && num_args == 0 {
   # The type field for an argument.
+  # This won't be accurate in case of unions being used in the Request struct,
+  # but that doesn't matter, as we'll only be looking at arg_type_code_name[0],
+  # which will not be a union type.
   arg_type_code_name[num_args] = $2;
   sub (/;$/, "", arg_type_code_name[num_args]) # Get rid of the semi-colon
   parse_phase = 4;
@@ -82,6 +85,9 @@ parse_phase == 3 {
 
 parse_phase == 4 {
   # The value field for an argument.
+  # This won't be accurate in case of unions being used in the Request struct,
+  # but that doesn't matter, as we'll only be looking at arg_name[0], which
+  # will not be a union type.
   arg_name[num_args] = $2;
   sub (/;$/, "", arg_name[num_args]) # Get rid of the semi-colon
   num_args++;