# Fixup case statements. # Copyright (c) 1992-2012 by Hamilton Laboratories. All rights reserved. # case word in switch (word) # a) case "a": # : : # ;; break # b|c) --> case "b": # : case "c": # : # break FixBreak <-- Hand-Fixup required # *) default: # : : # esac end /^[ ]*case/,/^[ ]*esac/{ s/case[ ][ ]*\([^ ].*\)[ ][ ]*in/switch (\1)/ /^[^(]*)/{ s/\([ ]*\)\([^)]*\))/\1case "\2": \1 / :case /".*|.*"/{ s/\([ ]*\)\(case "[^|]*\)|\(.*":\)/\1\2": \1case "\3/ b case } } s/case "\*":/default:/ s/break/FixBreak/ /;;/s/^\([ ]*\)\([^ ].*\);;/\1\2 \1break/ /;;/s/;;/break/ s/esac/end/ } |