summaryrefslogtreecommitdiffstats
path: root/tools/sed-enums
diff options
context:
space:
mode:
Diffstat (limited to 'tools/sed-enums')
-rw-r--r--tools/sed-enums16
1 files changed, 13 insertions, 3 deletions
diff --git a/tools/sed-enums b/tools/sed-enums
index 46d236d..3a07671 100644
--- a/tools/sed-enums
+++ b/tools/sed-enums
@@ -21,14 +21,24 @@ T next;H;b attrs
:next
# try again if } not found
/^\s*\}/ ! b attrs
-# read enumeration name
+# read enumeration name if any
s/^\s*}\s*(\w+).*$/ } \1;/
t finish
:close
+n
+# eat all comments
+/^\s*\/\*/ {
+ :comment2
+ /\*\/\s*$/ { n; b nocomment2 }
+ n; b comment2
+}
+:nocomment2
+# eat empty lines
+/^\s*$/ b close
# read the enum typedef
s/^\s*typedef\s+enum\s+\w+\s+(\w+)\s*;/ } \1/
-# leave if substitution works, or read next line and retry
-t finish;n;b close
+# finish if substitution fail
+T
:finish
# append pattern, exchange hold space and pattern space
H;x