diff options
Diffstat (limited to 'tools/sed-callbacks')
| -rw-r--r-- | tools/sed-callbacks | 11 | 
1 files changed, 10 insertions, 1 deletions
| diff --git a/tools/sed-callbacks b/tools/sed-callbacks index 4a2e27f..42051ba 100644 --- a/tools/sed-callbacks +++ b/tools/sed-callbacks @@ -1,11 +1,20 @@ +# drop if don't start with typedef +/^\s*typedef/ ! b +# one line typedef xxx (...); we are done  s/^\s*typedef\s+(.*)(\(\*?\w+\))?\s*(\(.*\));.*$/typedef \1 \2 \3;/  t finish +# if ends with ,  s/^\s*typedef\s+(.*)(\(\*?\w+\))?\s*(\(.*,)/typedef \1 \2 \3/ +# drop if substitution fail, copy pattern to  hold space  T;h  :loop;n +# append each parameters  /,$/ { H; b loop } -/;$/ { H;x} +# when ; reached, append a swap hold space to pattern space +/;.*$/ { H;x}  :finish +# drop \n  s/\n//g +# replace multi spaces with one  s/ {2,}/ /g  p | 
